G5NR Data Access Guide: Difference between revisions
Line 170: | Line 170: | ||
==== Free clients ==== | ==== Free clients ==== | ||
In this section we read air temperature, compute it min/max (as with the 'programming' examples) and display it. | |||
===== Python ===== | ===== Python ===== | ||
Line 183: | Line 184: | ||
import numpy as np | import numpy as np | ||
import netCDF4 as nc4 | import netCDF4 as nc4 | ||
import matplotlib.pyplot as plt | |||
from mpl_toolkits.basemap import Basemap | |||
rootgrp = nc4.Dataset('http://opendap.nccs.nasa.gov:9090/dods/OSSE/GEOS-5.12/BETA9/0.5000_deg/inst/inst01hr_3d_T_Cv', 'r') | rootgrp = nc4.Dataset('http://opendap.nccs.nasa.gov:9090/dods/OSSE/GEOS-5.12/BETA9/0.5000_deg/inst/inst01hr_3d_T_Cv', 'r') | ||
Line 194: | Line 198: | ||
print 'min(T):', np.min(Ttime37) | print 'min(T):', np.min(Ttime37) | ||
print 'max(T):', np.max(Ttime37) | print 'max(T):', np.max(Ttime37) | ||
# set up cylindrical map | |||
m = Basemap( | |||
projection='cyl', | |||
llcrnrlat=-90, urcrnrlat=90, | |||
llcrnrlon=-180, urcrnrlon=180, | |||
resolution='c' | |||
) | |||
m.drawcoastlines(linewidth=0.5) | |||
m.drawmapboundary() | |||
# plot contour | |||
level = 71 | |||
X = np.arange(-180.0, 180.0, .5) | |||
Y = np.arange(-90.0, 90.1, .5) # 90 is the last element | |||
cp = plt.contour(X, Y, T[0,level,:,:], 20, zorder=2) | |||
plt.clabel(cp, inline=1, fontsize=9) | |||
plt.title('Air temperature at the surface') | |||
plt.show() | |||
</nowiki> | </nowiki> | ||