Revision: 4582
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4582&view=rev
Author: jswhit
Date: 2007-12-04 10:48:02 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
use num2date
Modified Paths:
--------------
trunk/toolkits/basemap/examples/fcstmaps.py
Modified: trunk/toolkits/basemap/examples/fcstmaps.py
===================================================================
--- trunk/toolkits/basemap/examples/fcstmaps.py 2007-12-04 18:37:40 UTC (rev
4581)
+++ trunk/toolkits/basemap/examples/fcstmaps.py 2007-12-04 18:48:02 UTC (rev
4582)
@@ -6,35 +6,9 @@
import sys
from numpy import ma
import datetime
-from matplotlib.toolkits.basemap import Basemap, NetCDFFile, addcyclic
+from matplotlib.toolkits.basemap import Basemap, NetCDFFile, addcyclic,
num2date
-hrsgregstart = 13865688 # hrs from 00010101 to 15821015 in Julian calendar.
-# times in many datasets use mixed Gregorian/Julian calendar, datetime
-# module uses a proleptic Gregorian calendar. So, I use datetime to compute
-# hours since start of Greg. calendar (15821015) and add this constant to
-# get hours since 1-Jan-0001 in the mixed Gregorian/Julian calendar.
-gregstart = datetime.datetime(1582,10,15) # datetime.datetime instance
-
-def dateto_hrs_since_day1CE(curdate):
- """given datetime.datetime instance, compute hours since 1-Jan-0001"""
- if curdate < gregstart:
- msg = 'date must be after start of gregorian calendar (15821015)!'
- raise ValueError, msg
- difftime = curdate-gregstart
- hrsdiff = 24*difftime.days + difftime.seconds/3600
- return hrsdiff+hrsgregstart
-
-def hrs_since_day1CE_todate(hrs):
- """return datetime.datetime instance given hours since 1-Jan-0001"""
- if hrs < 0.0:
- msg = "hrs must be positive!"
- raise ValueError, msg
- delta = datetime.timedelta(hours=1)
- hrs_sincegreg = hrs - hrsgregstart
- curdate = gregstart + hrs_sincegreg*delta
- return curdate
-
# today's date is default.
if len(sys.argv) > 1:
YYYYMMDD = sys.argv[1]
@@ -62,14 +36,17 @@
longitudes = data.variables['lon']
fcsttimes = data.variables['time']
times = fcsttimes[0:6] # first 6 forecast times.
+# change 0.0 to 00 at end of time units string
+# (so strptime will understand it).
+timeunits = fcsttimes.units[:-2]+'0'
ntimes = len(times)
# put forecast times in YYYYMMDDHH format.
verifdates = []
fcsthrs=[]
-print times
for time in times:
+ print time, times[0]
fcsthrs.append(int((time-times[0])*24))
- fdate = hrs_since_day1CE_todate(int(time*24.0))
+ fdate = num2date(time,'days since 0001-01-01 00:00:00')
verifdates.append(fdate.strftime('%Y%m%d%H'))
print fcsthrs
print verifdates
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins