⇐ ⇒

[CF-metadata] How to define time coordinate in GPS?

From: Jonathan Gregory <j.m.gregory>
Date: Fri, 24 Apr 2015 17:26:01 +0100

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 <mcginnis at ucar.edu> -----

> Date: Thu, 23 Apr 2015 13:06:21 -0600
> From: Seth McGinnis <mcginnis at ucar.edu>
> To: cf-metadata at cgd.ucar.edu
> 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
> > *? :* 'cf-metadata at cgd.ucar.edu'
> > *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
> > CF-metadata at cgd.ucar.edu
> > http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
> >
> _______________________________________________
> CF-metadata mailing list
> CF-metadata at cgd.ucar.edu
> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

----- End forwarded message -----
Received on Fri Apr 24 2015 - 10:26:01 BST

This archive was generated by hypermail 2.3.0 : Tue Sep 13 2022 - 23:02:42 BST

⇐ ⇒