In [1]:
import netCDF4 as nc
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import numpy as np

In [2]:
pylab.rcParams['figure.figsize'] = (10.0, 10.0)

In [3]:
url='http://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/ncep.reanalysis.derived/pressure/omega.mon.mean.nc'
f = nc.Dataset(url)

In [4]:
fv = f.variables
print fv['omega']


<type 'netCDF4.Variable'>
int16 omega(time, level, lat, lon)
    long_name: Monthly Mean of Omega
    actual_range: [-0.49596989  0.78370774]
    units: Pascal/s
    add_offset: 29.765
    scale_factor: 0.001
    missing_value: 32766
    precision: 3
    least_significant_digit: 3
    var_desc: Omega (dp/dt)
    dataset: CDC Derived NCEP Reanalysis Products
    level_desc: Multiple levels
    statistic: Mean
    parent_stat: Other
    unpacked_valid_range: [-3.  7.]
    valid_range: [-32765 -22765]
unlimited dimensions: time
current shape = (794, 12, 73, 144)


In [5]:
omg = f.variables['omega'][2,5,:,:]
lon = f.variables['lon'][:]
lat = f.variables['lat'][:]
times = f.variables['time'][:]

In [6]:
# Set up a map 
map = Basemap(projection='cyl',llcrnrlat=0.,urcrnrlat=10.,llcrnrlon=97.,urcrnrlon=110.,resolution='i')
x,y=map(*np.meshgrid(lon,lat))
map.drawcoastlines()
map.drawcountries()
map.drawparallels(np.arange(-90.,90.,3),labels=[1,0,0,0],fontsize=10)
map.drawmeridians(np.arange(-180.,180.,3),labels=[0,0,0,1],fontsize=10)

#contour data
#clevs=np.arange(0.,1.,0.1) # contour interval
#cs = map.contourf(x,y,omg,clevs,extent='both')
cs = map.contourf(x,y,omg,20,extent='both')

cb = map.colorbar(cs,'bottom',size='2%',pad="5%") #plot the colorbar 

cb.set_label('m/s')
plt.title('Omega-test');