使用python3绘制TRMM nc4的问题

使用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使用相同的脚本时,它不是 工作 以下是我的代码(忽略未使用的库): 数据很小,如下所示: 所以,这里是我运行脚本时得到的(没有什么异常,但我得到了一个空的

我试图绘制这个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()