Dear all Thanks for these interesting contributions. In CF terms, it seems that UTC and GPS time are different calendars, because of the leap seconds in UTC. A given YMDhms date-time will sometimes be a different number of time-units since reference-time in the two calendars. We ought to clarify the CF document, which current assumes that the default calendar (the real-world Julian/Gregorian one) is UTC for modern times. Since udunits and most software doesn't support leap seconds, as Seth says, maybe we should amend the document to point out that the default calendar is not exactly UTC because of this, and note that it has a fixed offset to GPS time. Then we would need to introduce a new calendar of utc, valid only for dates since UTC was defined. We could do it the other way round, and define the default as UTC, but that would probably not be right for (nearly) all existing data, and not convenient for (nearly) all software. Is this correct?
Best wishes Jonathan ----- Forwarded message from Seth McGinnis <[email protected]> ----- > Date: Thu, 23 Apr 2015 13:06:21 -0600 > From: Seth McGinnis <[email protected]> > To: [email protected] > Subject: Re: [CF-metadata] How to define time coordinate in GPS? > User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) > Gecko/20100101 Thunderbird/31.6.0 > > Julien, > > I would say that you don't need to do anything. Your data is already in > GPS time. > > Strictly speaking, you can't specify a different time referential, > because CF says to specify the time units following the recommendations > of udunits, and udunits assumes that all times are relative to UTC. > > HOWEVER, udunits ignores leap seconds, and time under CF is represented > as a continuous count of constant-size units from some starting point. > Which I believe means that although both spec documents say "UTC", in > practice CF-netcdf is actually representing time as GPS/TAI time instead. > > Moreover, as far as I can tell, practically all the software out there > that converts netcdf times to dates is unaware of leap seconds anyway, > and even if you wanted them you would have to do extra work to get them. > > So I think if you set the units attribute as given in your example, > you'll be fine. If you want to be extra-careful, you could annotate the > time variable with a "note" attribute indicating that it's GPS time, not > UTC time, with no leap seconds. > > There was a discussion on the mailing list about leap seconds last July: > http://mailman.cgd.ucar.edu/pipermail/cf-metadata/2014/057556.html > > Cheers, > > --Seth > > > On 4/23/15 8:19 AM, Julien Demaria wrote: > > Dear Jonathan, > > > > > > > > I?m also not an expert on this: > > > > ?GPS, Global Positioning System time, is the atomic time scale > > implemented by the atomic clocks in the GPS ground control stations and > > the GPS satellites themselves. GPS time was zero at 0h 6-Jan-1980 and > > since it is not perturbed by leap seconds GPS is now ahead of UTC by 16 > > seconds.? > > > > http://www.leapsecond.com/java/gpsclock.htm > > > > a more detailed explanation: > > > > https://confluence.qps.nl/display/KBE/UTC+to+GPS+Time+Correction > > > > > > > > Thanks in advance, > > > > > > > > Julien > > > > > > > >>Jonathan Gregory j.m.gregory at reading.ac.uk > > > >>Thu Apr 23 07:58:09 MDT 2015 > > > >> > > > >>Dear Julien > > > >> > > > >>Could you explain what the difference is between GPS time and UTC (for a > >>non- > > > >>expert such as me)? > > > >> > > > >>Thanks > > > >> > > > >>Jonathan > > > > > > > > *De :*Julien Demaria > > *Envoy? :* jeudi 23 avril 2015 14:51 > > *? :* '[email protected]' > > *Objet :* How to define time coordinate in GPS? > > > > > > > > Hi, > > > > > > > > I need to define a time coordinate variable which use the GPS time > > referential instead of UTC, but I did not found how to specify this. > > > > For the moment my variable look like this : > > > > > > > > int64 time_stamp(rows) ; > > > > time_stamp:standard_name = "time" ; > > > > time_stamp:units = "microseconds since > > 2000-01-01 00:00:00" ; > > > > time_stamp:_FillValue = -1L ; > > > > > > > > Thanks in advance, > > > > > > > > Julien > > > > > > > > > > > > _______________________________________________ > > CF-metadata mailing list > > [email protected] > > http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata > > > _______________________________________________ > CF-metadata mailing list > [email protected] > http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata ----- End forwarded message ----- _______________________________________________ CF-metadata mailing list [email protected] http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
