On 3/15/11 12:18 PM, John Caron wrote:
I'd propose that a good way of thinking about the distinction between
dates and times is that "time" is a geospatial unit of measure ,
whereas "date" (which includes "time of day") is a way of formatting
time units for human readability.
Hmm. the time libs I've used use the term "datetime" to mean a
particular instance:
Jan 5th, 2011, 12:45:20
(in a defined calendar)
Then they use the term "timedelta" to specify what really is a unit in time:
hours, seconds, milliseconds, etc. I don't think I've seen one that
expresses a timedelta in months or years.
ISO 8601 has standardized the formatting of dates, which is definitely
a good thing. But too often we are tempted to borrow this standard
into science a an encoding of time.
right -- ISO8601 is a representation of a "datetime" NOT a timedelta.
In a good lib, a timedelta is it's own thing -- ideally you don't even
know how it is being stored internally (*seconeds? milliseconds? who knows?)
So the CF standard of "time_units since date"
Can be though of as "timedelta" since datetime.
So what are reasonable units to express timedeltas in?
I think the point here is that "months" or "years" is simply not
appropriate for that, period.
It can be usefull to express monthly averages, and the like -- it does
help with our ordinary way of expressing and thinking about time,
season, etc, but in that case I wouldn't have data stored as:
months since Jan, 1960.
I'd rather have it labeled:
January
February
March
etc....
as it's really a category, rather than a value.
a calendar date/time (Feb 23, 1999 13:33 Z) is a representation of an
instance of time which is human readable, and therefore less prone to
errors because it can be easily noticed. So that representation has
advantages over something that requires software to interpret.
That is a fine way to express some things, and in common use. A lot of
meteorological and oceanographic data is expressed that way, with a
datetime stamp and the value, but it's not expressed as "months since"
The "hours since...' representation is a convience for storing and
workign with timeseries of data on a computer. Either way, you can
either convert to make things human-readable, or convert to make it easy
to work with on a computer.
I've lost track a bit about what is being considered here:
1) Is anyone proposing that "months since.." and "years since..." is a
good way to express a time series? I would personal say not.
2) Sorry for my CF-ignorance, but is it currently accepted to express
the time axis as an array of ISO date strings? If so, I think that's
fine for some uses, anyway, but it should be used judiciously.
As for libs, the Python NetCDF4 lib (Thanks, Jeff Whitaker) provides
converters to/from "time_units since" from/to python datetime objects --
this is very handy, indeed, and probably should be built into the C and
Java libs, though I don't know if there is any standard for a datetime
object in C or Java.
I suppose we could propose a binary representation for datetime and
timedelta objects to be used in netcdf -- but is it worth the effort?
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
[email protected]
_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata