import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.basemap import Basemap, addcyclic from netCDF4 import Dataset # ncep 1 monthly air temperature from ICDC filename='/data/icdc/reanalyses/ncep_reanalysis1/DATA/2m_airtemp_monthly/air2m.mon.mean.nc' fid=Dataset(filename,'r') # open file and create file identifier # show all variables and their units for i in fid.variables.keys(): print i, fid.variables[i].units lat=fid.variables['lat'][:] lon=fid.variables['lon'][:] air=fid.variables['air'][0,:,:] # first time step # basemap instance with lat/lon corner values m = Basemap(projection='cyl',llcrnrlat=-90,llcrnrlon=0,urcrnrlat=90,urcrnrlon=360,resolution='l') # meshgrid returns coordinate matrices from 2 vectors # basemap instance can take 2 arguments to convert lat,lon matrices to x,y x, y = m(*np.meshgrid(lon,lat)) # min, max, step width for color bar (unit Kelvin) ps=np.linspace(225,310,50) m.contourf(x,y,air,ps) m.drawcoastlines() m.drawmeridians(np.arange(0, 360, 30), labels=[1,0,0,1]) m.drawparallels(np.arange(-90, 90, 30), labels=[0,1,1,0]) plt.title('NCEP') plt.colorbar(shrink=0.5) plt.show()