Chris,

I agree with you. So, going with the approach of defining new calendars, how about this?

Define gregorian_mst (or gregorian_nls) as using Mean Solar Time as its time system, and say that uncertainties of less than 0.5 minutes in the time variable values are to be viewed with suspicion.

Grace and peace,

Jim

On 5/29/15 1:05 PM, Chris Barker wrote:
On Thu, May 28, 2015 at 10:06 AM, Jim Biard <[email protected] <mailto:[email protected]>> wrote:

    Now for the "encoding" you are talking about. No time variable
    should ever contain leap second artifacts within its elapsed time
    values, no matter what calendar is used.


Exactly -- so the Calendar is ONLY for defining the reference timestamp in the units. Period. End of story. The actual values are seconds, or days, or .. and should always be clearly defined units in a nice continuous time.

However, it seems from this discussion that there is concern that while the actual times SHOULD be "clean", the reality is that there maybe some "contaminated" data sets out there, and there should be some standard way to communicate this to the end-user of the data.

If that's the case, then it shouldn't be the Calendar attribute.

On the other hand, if you are a data provider, and you know that you're time axis is "messed up" -- you should probably fix it, rather than indicating that it's messed up.

-Chris





    We don't do it for days with Gregorian vs Julian calendars, and we
    shouldn't do it for finer grained times with UTC vs GPS, etc time
    systems.

    The only way I am remotely good with telling people it is OK to
    allow leap second artifacts in the values in a time variable is if
    we define yet another calendar - gregorian_posix. It would be
    defined as having an epoch date of 1970-01-01 00:00:00.000 UTC and
    an unknown presence of leap second artifacts in both the reference
    time and the elapsed time values, and would include an explanation
    of how the lack of leap second handling in POSIX system time
    handling functions coupled with imprecise internal clocks in
    computers and the widespread use of the Network Time Protocol
    makes precision time accounting problematic when using such systems.

    And again, we should keep in mind that for time resolutions of 1
    minute or less, it won't matter what time system you pick. They
    all agree to within 35 seconds in the worst possible case.

    We could also redefine gregorian as an alias for gregorian_posix
    as a way of warning users not to be too trusting, but deprecating
    gregorian is OK too.

    Grace and peace,

    Jim


    On 5/28/15 3:50 AM, Jonathan Gregory wrote:
    Dear Jim

    Thanks for your email. I see what you mean. The calendar attribute does not
    indicate only which set of rules are used for encoding and decoding, but it
    also indicates the time coordinate reference system in which the timestamps
    are interpreted (both the reference timestep in the units and the decoded 
time
    coordinates). I had not distinguished these in my mind because they go 
together
    in all the cases CF currently distinguishes. The difference in this new 
debate
    is that the GPS and TAI time reference system use the same set of rules
    (Gregorian no-leap-second) but a given timestep doesn't refer to the same
    instant in the real-world in the two systems, so you need to know which one 
it
    is, as you have pointed out. Thanks for pursuing this.

    Therefore here's my latest suggestion. We should have *four* calendars,
    gregorian_gps, gregorian_tai (this hasn't been requested yet, so according 
to
    our usual practice we could omit it for the moment since we haven't been 
given
    a use-case), gregorian_utc and gregorian. The first two calendars use the
    no-leap-second encoding. gregorian_gps is for the GPS time reference system 
and
    is not allowed for timestamps earlier than 1980-1-6 or with ref times 
earlier
    than that (the GPS epoch), and TAI correspondingly not before the TAI epoch
    (1958-1-1 I think you said). If you are using either of those time systems, 
it
    can't be meaningful to extend them before their epochs, can it? 
gregorian_utc
    is for encoding UTC time with leap seconds. This calendar can be used for 
any
    previous time before UTC began as well (with the Julian/Gregorian calendar
    change as in udunits, except that we might exclude years before 1 - we can 
come
    back to that).

    The gregorian calendar encodes UTC time (and before) *without* leap 
seconds. I
    anticipate you might not be happy with this, but I'm putting it forward 
because
    I think we agree that this is what is often, or usually, done with 
real-world
    time, since most software doesn't support leap seconds. In the description, 
we
    must point out that this encoding is faulty, because when leap seconds are
    inserted or removed the encoded time coordinate may have a missing or 
repeated
    second. Therefore it shouldn't be used for purposes where precision to the
    second is important, but clearly for most real-world purposes it's fine in
    practice, because that's what's done and people don't report problems. I 
think
    it is better to be explicit about the choice between gregorian_utc and
    gregorian, rather than leave it vague which has been used.

    If we think it's preferable we could also define gregorian_nls with the same
    meaning and deprecate gregorian, so that a warning is generated by the 
checker,
    in order to encourage data-writers to check if they're making the right 
choice.
    I assume that all the other calendars are also no-leap-second ones since 
they
    are for model data (including proleptic_gregorian) and this should be 
stated.

    For reference, I repeat what else I proposed earlier, to make this complete:

    * Don't mention "UTC" in the description of time units. Instead say the time
    zone of the Greenwich meridian, without summmer/daylight-saving time.

    * Clarify that in the CF convention the choice of "calendar" implies the
    particular set of rules that is used to convert between date-times 
(YYYY-MM-DD
    hh:mm:ss i.e. sets of six numbers) and time coordinates in units of elapsed
    time since a reference time. The calendar is identified by the calendar att 
of
    of the time coordinate variable. It's a property of the time coord variable.

    ... and now we also have to point out that calendar has an additional
    implication of reference system for the real world

    * Require the calendar to be specified i.e. no default, and abolish the
    "standard" calendar (currently a synonym for the default). These are 
backward-
    incompatible changes for data-writers, but of course they do not invalidate 
any
    data written with old CF versions.

    Best wishes and thanks

    Jonathan

    ----- Forwarded message from Jim Biard<[email protected]>  
<mailto:[email protected]>  -----

    Date: Thu, 21 May 2015 14:36:46 -0400
    From: Jim Biard<[email protected]>  <mailto:[email protected]>
    To: Jonathan Gregory<[email protected]>  
<mailto:[email protected]>
    CC: CF Metadata List<[email protected]>  
<mailto:[email protected]>
    Subject: Re: [CF-metadata] How to define time coordinate in GPS?

    Jonathan,

    The point I'm trying to make about gregorian_nls is that it lacks any
    mechanism for specifying which time system is being used for the timestamp
    in the reference date & time. In Chris Little's terms (at least roughly),
    gregorian_nls is incomplete because the timestamp in the reference date &
    time lacks an associated epoch/origin. It is a calendar without an
    associated CRS.

    Take my example times in TAI, GPS and UTC from my previous email. Let's say
    I wanted to set my reference date & time to that instant in history, and I
    have a GPS timestamp. If I specified my calendar as gregorian_nls so I
    could use my GPS timestamp, there is no way for a user of my file to know
    that my timestamp was a GPS timestamp. They might assume it was a TAI
    timestamp, and will then be 19 seconds off for every "absolute" time they
    extract from the time variable elapsed time values.

    For a complete representation, in Chris Little's terms, there must be a
    CRS, a calendar, and a notation. gregorian_nls lacks a CRS. That's why I
    suggested that we must either make a calendar for each different time
    system, and add more as more people want to use more time systems, or we
    state that the timestamp in the reference must be UTC. Declaring the
    reference timestamp unambiguously as UTC doesn't force anyone to extract
    absolute times from the time variable in UTC. It does require data
    consumers to convert the UTC timestamp to GPS or TAI or whatever before
    proceeding to extract absolute times from the time variable.

    I'm OK with deprecating 'vanilla' gregorian, but there are so many cases
    where it is sufficient even though it is incomplete that it seems a bit
    draconian.

    Grace and peace,

    Jim

    [image: CICS-NC]<http://www.cicsnc.org/>  <http://www.cicsnc.org/>Visit us 
on
    Facebook<http://www.facebook.com/cicsnc>  
<http://www.facebook.com/cicsnc>*Jim Biard*
    *Research Scholar*
    Cooperative Institute for Climate and Satellites NC<http://cicsnc.org/>  
<http://cicsnc.org/>
    North Carolina State University<http://ncsu.edu/>  <http://ncsu.edu/>
    NOAA National Centers for Environmental Information<http://ncdc.noaa.gov/>  
<http://ncdc.noaa.gov/>
    *formerly NOAA???s National Climatic Data Center*
    151 Patton Ave, Asheville, NC 28801
    e:[email protected]  <mailto:[email protected]>
    o:+1 828 271 4900  <tel:%2B1%20828%20271%204900>

    *Connect with us on Facebook for climate
    <http://www.facebook.com/NOAANCEIclimate>  
<http://www.facebook.com/NOAANCEIclimate>  and ocean and geophysics
    <http://www.facebook.com/NOAANCEIoceangeo>  
<http://www.facebook.com/NOAANCEIoceangeo>  information, and follow us on
    Twitter at @NOAANCEIclimate
    <http://www.twitter.com/NOAANCEIclimate>  
<http://www.twitter.com/NOAANCEIclimate>and @NOAANCEIocngeo
    <http://www.twitter.com/NOAANCEIocngeo>  
<http://www.twitter.com/NOAANCEIocngeo>.*


    On Thu, May 21, 2015 at 1:11 PM, Jonathan Gregory <[email protected]  
<mailto:[email protected]>
    wrote:
    Dear Jim

    I don't understand why you think gregorian_nls is not sufficiently
    specific.
    I think it indicates specifically that the conversion between timestamp and
    elapsed seconds is done without using leap seconds.

    As an example, the date and time stamps as I'm writing this in the
    different systems are:

          * TAI 2015-05-20 20:21:00
          * GPS 2015-05-20 20:21:16
          * UTC 2015-05-20 20:21:35
    If you have a timestamp of 2015-05-20 20:21:35 and you encode it with
    calendar="gregorian_utc" and units="seconds since 1980-01-06 00:00:00"
    you will get the same number (of seconds) as if you encode the timestamp
    of 2015-05-20 20:21:16 with calendar="gregorian_nls" and the same units.
    Have I got that right? Thus, this would be a way to encode GPS time (the
    original question). The same gregorian_nls calendar can be used to encode
    TAI time with units="seconds since 1958-01-01 00:00:00". The same software
    could do both - it needs to know the Gregorian calendar, and assumes that
    all days have 86400 s.

    Redefine 'gregorian' to remove reference to UTC as Jonathan has
    described, and state that presence or absence of leap second
    artifacts in the reference timestamp and elapsed time values is not
    known for a time variable that names this calendar. This is backward
    compatible.
    I don't see an advantage in encouraging data-producers to be vague.
    Deprecating
    this calendar, so it gives a warning, might persuade them to specify what
    they
    are doing to encode their times.

    Best wishes

    Jonathan
    _______________________________________________
    CF-metadata mailing list
    [email protected]  <mailto:[email protected]>
    http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

    ----- End forwarded message -----
    _______________________________________________
    CF-metadata mailing list
    [email protected]  <mailto:[email protected]>
    http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

-- CICS-NC <http://www.cicsnc.org/> Visit us on
    Facebook <http://www.facebook.com/cicsnc>     *Jim Biard*
    *Research Scholar*
    Cooperative Institute for Climate and Satellites NC
    <http://cicsnc.org/>
    North Carolina State University <http://ncsu.edu/>
    NOAA National Centers for Environmental Information
    <http://ncdc.noaa.gov/>
    /formerly NOAA’s National Climatic Data Center/
    151 Patton Ave, Asheville, NC 28801
    e: [email protected] <mailto:[email protected]>
    o: +1 828 271 4900 <tel:%2B1%20828%20271%204900>

    /Connect with us on Facebook for climate
    <https://www.facebook.com/NOAANCEIclimate> and ocean and
    geophysics <https://www.facebook.com/NOAANCEIoceangeo>
    information, and follow us on Twitter at @NOAANCEIclimate
    <https://twitter.com/NOAANCEIclimate> and @NOAANCEIocngeo
    <https://twitter.com/NOAANCEIocngeo>. /



    _______________________________________________
    CF-metadata mailing list
    [email protected] <mailto:[email protected]>
    http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata




--

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] <mailto:[email protected]>

--
CICS-NC <http://www.cicsnc.org/> Visit us on
Facebook <http://www.facebook.com/cicsnc>         *Jim Biard*
*Research Scholar*
Cooperative Institute for Climate and Satellites NC <http://cicsnc.org/>
North Carolina State University <http://ncsu.edu/>
NOAA National Centers for Environmental Information <http://ncdc.noaa.gov/>
/formerly NOAA’s National Climatic Data Center/
151 Patton Ave, Asheville, NC 28801
e: [email protected] <mailto:[email protected]>
o: +1 828 271 4900

/Connect with us on Facebook for climate <https://www.facebook.com/NOAANCEIclimate> and ocean and geophysics <https://www.facebook.com/NOAANCEIoceangeo> information, and follow us on Twitter at @NOAANCEIclimate <https://twitter.com/NOAANCEIclimate> and @NOAANCEIocngeo <https://twitter.com/NOAANCEIocngeo>. /


_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

Reply via email to