Revision: 6834
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6834&view=rev
Author: jswhit
Date: 2009-01-26 20:27:17 +0000 (Mon, 26 Jan 2009)
Log Message:
-----------
specify calendar
Modified Paths:
--------------
trunk/toolkits/basemap/examples/plotsst.py
trunk/toolkits/basemap/examples/pnganim.py
Modified: trunk/toolkits/basemap/examples/plotsst.py
===================================================================
--- trunk/toolkits/basemap/examples/plotsst.py 2009-01-26 20:01:58 UTC (rev
6833)
+++ trunk/toolkits/basemap/examples/plotsst.py 2009-01-26 20:27:17 UTC (rev
6834)
@@ -15,8 +15,8 @@
dataset =
NetCDFFile('http://nomads.ncdc.noaa.gov/thredds/dodsC/oisst/totalAagg')
# find index of desired time.
time = dataset.variables['time']
-nt = date2index(date, time)
-print num2date(time[nt],time.units)
+nt = date2index(date, time, calendar='standard')
+print num2date(time[nt],time.units, calendar='standard')
# read sst. Will automatically create a masked array using
# missing_value variable attribute.
sst = dataset.variables['sst'][nt]
Modified: trunk/toolkits/basemap/examples/pnganim.py
===================================================================
--- trunk/toolkits/basemap/examples/pnganim.py 2009-01-26 20:01:58 UTC (rev
6833)
+++ trunk/toolkits/basemap/examples/pnganim.py 2009-01-26 20:27:17 UTC (rev
6834)
@@ -9,15 +9,13 @@
import matplotlib.mlab as mlab
import numpy.ma as ma
import datetime, sys, time, subprocess
-from mpl_toolkits.basemap import Basemap, shiftgrid, NetCDFFile, num2date
+from mpl_toolkits.basemap import Basemap, shiftgrid, NetCDFFile, date2index,
num2date
# times for March 1993 'storm of the century'
-YYYYMMDDHH1 = '1993031000'
-YYYYMMDDHH2 = '1993031700'
+date1 = datetime.datetime(1993,3,10,0)
+date2 = datetime.datetime(1993,3,17,0)
+print date1, date2
-YYYY = YYYYMMDDHH1[0:4]
-if YYYY != YYYYMMDDHH2[0:4]:
- raise ValueError,'dates must be in same year'
# set OpenDAP server URL.
URL="http://nomad1.ncep.noaa.gov:9090/dods/reanalyses/reanalysis-2/6hr/pgb/pgb"
@@ -32,18 +30,10 @@
latitudes = data.variables['lat'][:]
longitudes = data.variables['lon'][:].tolist()
times = data.variables['time']
-# convert numeric time values to datetime objects.
-fdates = num2date(times[:],units=times.units,calendar='standard')
-# put times in YYYYMMDDHH format.
-dates = [fdate.strftime('%Y%m%d%H') for fdate in fdates]
-if YYYYMMDDHH1 not in dates or YYYYMMDDHH2 not in dates:
- raise ValueError, 'date1 or date2 not a valid date (must be in form
YYYYMMDDHH, where HH is 00,06,12 or 18)'
-# find indices bounding desired times.
-ntime1 = dates.index(YYYYMMDDHH1)
-ntime2 = dates.index(YYYYMMDDHH2)
+ntime1 = date2index(date1,times,calendar='standard')
+ntime2 = date2index(date2,times,calendar='standard')
print 'ntime1,ntime2:',ntime1,ntime2
-if ntime1 >= ntime2:
- raise ValueError,'date2 must be greater than date1'
+print num2date(times[ntime1],times.units,calendar='standard'),
num2date(times[ntime2],times.units,calendar='standard')
# get sea level pressure and 10-m wind data.
slpdata = data.variables['presmsl']
udata = data.variables['ugrdprs']
@@ -52,7 +42,7 @@
slpin = 0.01*slpdata[ntime1:ntime2+1,:,:]
uin = udata[ntime1:ntime2+1,0,:,:]
vin = vdata[ntime1:ntime2+1,0,:,:]
-datelabels = dates[ntime1:ntime2+1]
+dates = num2date(times[ntime1:ntime2+1], times.units, calendar='standard')
# add cyclic points
slp = np.zeros((slpin.shape[0],slpin.shape[1],slpin.shape[2]+1),np.float64)
slp[:,:,0:-1] = slpin; slp[:,:,-1] = slpin[:,:,0]
@@ -68,13 +58,12 @@
print uin.min(), uin.max()
print vin.min(), vin.max()
print 'dates'
-print datelabels
+print dates
# make orthographic basemaplt.
m = Basemap(resolution='c',projection='ortho',lat_0=60.,lon_0=-60.)
plt.ion() # interactive mode on.
uin = udata[ntime1:ntime2+1,0,:,:]
vin = vdata[ntime1:ntime2+1,0,:,:]
-datelabels = dates[ntime1:ntime2+1]
# make orthographic basemaplt.
m = Basemap(resolution='c',projection='ortho',lat_0=60.,lon_0=-60.)
plt.ion() # interactive mode on.
@@ -94,7 +83,7 @@
l, b, w, h = pos.bounds
# loop over times, make contour plots, draw coastlines,
# parallels, meridians and title.
-for nt,date in enumerate(datelabels[1:]):
+for nt,date in enumerate(dates):
CS =
m.contour(x,y,slp[nt,:,:],clevs,linewidths=0.5,colors='k',animated=True)
CS = m.contourf(x,y,slp[nt,:,:],clevs,cmap=plt.cm.RdBu_r,animated=True)
# plot wind vectors on lat/lon grid.
@@ -117,7 +106,7 @@
m.drawcoastlines(linewidth=1.5)
m.drawparallels(parallels)
m.drawmeridians(meridians)
- plt.title('SLP and Wind Vectors '+date)
+ plt.title('SLP and Wind Vectors '+str(date))
if nt == 0: # plot colorbar on a separate axes (only for first frame)
cax = plt.axes([l+w-0.05, b, 0.03, h]) # setup colorbar axes
fig.colorbar(CS,drawedges=True, cax=cax) # draw colorbar
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins