使用python3绘制TRMM nc4的问题
我试图绘制这个TRMM数据,但它是空的。 有几件事:使用python3绘制TRMM nc4的问题,python,matplotlib,netcdf4,Python,Matplotlib,Netcdf4,我试图绘制这个TRMM数据,但它是空的。 有几件事: 我已经(并且一直在使用)*.nc文件的TRMM月平均数据,它是罚款 我最近下载了每日TRMM数据,它们都在*.nc4扩展中。它的Lon和Lat看起来是颠倒的:(pcp,Lon,Lat)而不是(pcp,Lat,Lon)或类似的东西 我可以打印旧的TRMM文件(*.nc),但当我对*.nc4使用相同的脚本时,它不是 工作 以下是我的代码(忽略未使用的库): 数据很小,如下所示: 所以,这里是我运行脚本时得到的(没有什么异常,但我得到了一个空的
我怀疑Lon和Lat的问题(它们的奇怪维度?好吧,我已经在一些东西和地图上做了实验。轮廓(y,x,pcpt1)代替了地图。轮廓(x,y,pcpt1)。我需要进一步检查这个。好的,我已经在一些东西和地图上做了实验。contourf(y,x,pcpt1)代替了地图。contourf(x,y,pcpt1)。我需要进一步检查一下。
import netCDF4 as nc
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator
from mpl_toolkits.basemap import Basemap
from matplotlib.font_manager import FontProperties
from pylab import *
f1 = nc.Dataset('3B42_Daily.20030925.7.nc4.nc4')
pcpt1 = f1.variables['precipitation'][:,:]
pcpt1 = pcpt1*24
print (pcpt1.shape)
lon = f1.variables['lon'][:]
lat = f1.variables['lat'][:]
fig=plt.figure()
ax=plt.subplots_adjust(left=0.08,bottom=0.15)
map = Basemap(projection='cyl',llcrnrlat= 0,urcrnrlat=15,llcrnrlon=90.,urcrnrlon=120,resolution='i')
x,y=np.meshgrid(lat,lon)
cs = map.contourf(x,y,pcpt1)
map.drawcoastlines()
map.drawcountries()
map.drawparallels(np.arange(-90.,90.,3),labels=[1,0,0,0],fontsize=9,linewidth=0.1)
map.drawmeridians(np.arange(-180.,180.,3),labels=[0,0,0,1],fontsize=9,linewidth=0.1)
plt.title('Precipitation TRMM',fontsize=10)
cax = fig.add_axes([0.015,0.,0.80,0.02])#0.015,0.25,0.97,0.02])
aa=fig.colorbar(cs,cax=cax,orientation='horizontal',format='%0.1f')
aa.set_label('mm/hr',fontsize=10)
aa.ax.tick_params(labelsize=7)
plt.show()
In [39]: runfile('/Users/fadzilnor/fmonorovgmail/a-ANALYSIS/py/casestudy_percentile/trmm_nc4_test.py', wdir='/Users/fadzilnor/fmonorovgmail/a-ANALYSIS/py/casestudy_percentile')
(1440, 400)
/Users/fadzilnor/fmonorovgmail/a-ANALYSIS/py/casestudy_percentile/trmm_nc4_test.py:62: MatplotlibDeprecationWarning:
The dedent function was deprecated in Matplotlib 3.1 and will be removed in 3.3. Use inspect.cleandoc instead.
map = Basemap(projection='cyl',llcrnrlat= 0,urcrnrlat=15,llcrnrlon=90.,urcrnrlon=120,resolution='i')
/Users/fadzilnor/fmonorovgmail/a-ANALYSIS/py/casestudy_percentile/trmm_nc4_test.py:69: MatplotlibDeprecationWarning:
The dedent function was deprecated in Matplotlib 3.1 and will be removed in 3.3. Use inspect.cleandoc instead.
map.drawcountries()