[CF-metadata] [netcdf-java] problem with times in PSD dataset
Cathy Smith (NOAA Affiliate)
cathy.smith at noaa.gov
Thu Dec 6 16:34:13 MST 2012
There is some meteorological data that is available pre-Gregorian
calendar (paleo data, some temperature datasets) and of course there are
other scientific fields where data is pre-1500 (e.g. astronomy,
archeology) . Given that netCDF files with data dates spanning ~1550 probably already exist and the large number of preexisting files that
use the 1-1-1 base (we have over 2000), it doesn't seem reasonable to
request that files be changed to accommodate what is essentially a bug;
the date values we store are correct. We started using the 1-1-1 base in the mid
1990's (almost 20 years ago) as part of the COARDS (now CF) agreed upon standard.
It is reasonable for us to consider future changes but I don't think it reasonable for us to have to change our files because the Java interface is not backwards compatible.
On 12/5/12 12:25 PM, John Caron wrote:
> Hi all:
> Its probably the right thing to do to make gregorian ("Mixed
> Gregorian/Julian calendar") the default calendar for COARDS/CF, for
> backwards compatibility. However, CDM may leave proleptic_gregorian
> (ISO8601) as its default.
> And I would strongly suggest that data writers stop using "time since
> 1-1-1". Ive never seen a dataset where "time since 1-1-1" using the
> mixed gregorian calendar was actually needed. If any one has a real
> example, Id like to hear about it.
> If you really need "historical accuracy", then put in an ISO8601
> formatted string, and an explicit calendar attribute. CDM handles
> those ok. CF should be upgraded to allow ISO strings also. "time since
> reference date" is not good for very large ranges of time.
> Ill just add that udunits never wanted to be a calendaring library,
> and shouldnt be used anymore for that. Im relying on joda-time (and
> its successor threeten) to be the expert in calendering, so i dont
> have to. I think the netcdf-C library now uses some CDAT (?) code for
> its calendaring, but Im sure theres other standard libraries that
> could be used. Anyone have candidate libraries in C or Python for
> robust calendering>
> In short, we should rely on clear encoding standards (eg ISO8601) with
> reference software, rather than implementations like udunits that
> eventually go away.
> PS: I think ill cross post to cf, just to throw some gasoline on the
> fire ;), and maybe some broader viewpoints.
> On 12/5/2012 10:24 AM, Don Murray (NOAA Affiliate) wrote:
>> Hi Gerry-
>> On 12/5/12 9:42 AM, Gerry Creager - NOAA Affiliate wrote:
>>> There are other datasets with reference to 1-1-1. I've seen them most
>>> recently in some ocean models.
>> And the ESRL/PSD NCEP reanalysis datasets use it.
>>> On Wed, Dec 5, 2012 at 10:16 AM, Don Murray (NOAA Affiliate)
>>> <don.murray at noaa.gov <mailto:don.murray at noaa.gov>> wrote:
>>> I meant to send this to support-netcdf-java, but perhaps others on
>>> the list might have the same problem.
>>> On 12/4/12 4:51 PM, John Caron wrote:
>>> On 12/4/2012 4:09 PM, Don Murray (NOAA Affiliate) wrote:
>>> I was just trying to access the NOAA/ESRL/PSD Outgoing
>>> Radiation (OLR) data using netCDF-Java 4.3 ToolsUI and
>>> noticed that the
>>> times are wrong. If you open:
>>> in the ToolsUI grid viewer, the last time in the file is
>>> shown as
>>> 2012-12-04 00Z. However, the last time in the file is
>>> 2012-12-02 00Z. Here is the time variable in that file:
>>> double time(time=3989);
>>> :units = "hours since 1-1-1 00:00:0.0";
>>> :long_name = "Time";
>>> :actual_range = 1.7540448E7, 1.763616E7; // double
>>> :delta_t = "0000-00-01 00:00:00";
>>> :avg_period = "0000-00-01 00:00:00";
>>> :standard_name = "time";
>>> :axis = "T";
>>> netCDF-Java 4.2 and ncdump -t -v time (C version) show the
>>> hours from 1-1-1 is rather problematic, since you are crossing
>>> julian/gregorian weirdness line (i think thats the technical
>>> term ;)
>>> Im guessing the trouble lies here:
>>> "Default calendar: for udunits, and therefore for CF, the
>>> calendar is gregorian ("Mixed Gregorian/Julian calendar"). For
>>> CDM, the
>>> default calendar is proleptic_gregorian (ISO8601 standard).
>>> matters for dates before 1582."
>>> Joda time supports the GJ calendar (Historically accurate calendar
>>> with Julian followed by Gregorian) which seems it would be backward
>>> compatible with the CF/udunits. Perhaps that should be the default
>>> for backward compatibility.
>>> I have to say relying uncritically on a calendar
>>> implementation like
>>> udunits is a mistake. putting the reference date
>>> unnecessarily to
>>> include the problem is, um, unnecessary.
>>> But it is historically accurate. For climate datasets, this would
>>> be important.
>>> is there any way those files can be updated? specifying the
>>> calendar explicitly should do it, but changing to use a
>>> reference date
>>> after 1582 would be much better.
>>> How's your FORTRAN? ;-) I'm not sure why this was chosen
>>> originally, but it doesn't seem reasonable to make people change
>>> their datasets.
>>> Does anyone else on the list know of datasets (other than
>>> climatologies) that might use a reference of 1-1-1 that will be
>>> affected by this change?
>>> BTW, is there an easier way to see human readable dates
>>> through toolsUI
>>> than loading it into the grid viewer (akin to ncdump -t)?
>>> open in coordSys tab; in bottom table, select time coord,
>>> and choose "show values as date"
>>> Thanks, that's easier.
>>> Don Murray
>>> NOAA/ESRL/PSD and CIRES
>>> 303-497-3596 <tel:303-497-3596>
>>> netcdf-java mailing list
>>> netcdf-java at unidata.ucar.edu <mailto:netcdf-java at unidata.ucar.edu>
>>> For list information or to unsubscribe, visit:
> CF-metadata mailing list
> CF-metadata at cgd.ucar.edu
NOAA/ESRL PSD and CIRES CDC
Emails about data/webpages may get quicker responses from emailing
esrl.psd.data at noaa.gov
More information about the CF-metadata