Thanks for explaining "uncorrected GPS", Jim.

The CF `calendar` attribute specifies (a) the interpretation of the reference 
timestamp in the `units`, (b) the rules for converting between timestamps and 
time coordinates. Because of (a), I agree that TAI, GPS and Loran-C are all 
different calendars, although they use the same rules (Gregorian calendar, no 
leap seconds). They differ by a constant number of seconds, as Jim has 
explained. I don't think it's redundant to distinguish these calendars.

If the use-case originally was for GPS, we should certainly support that one. 
TAI has often been mentioned in this discussion, and seems reasonable to 
include. Loran-C hasn't been mentioned before, as far as I remember. Do we know 
whether anyone wants to use it with CF-netCDF? If not, I don't think we should 
add it. We should wait until someone asks.

Those who are writing new datasets with the new CF standard using metrical UTC 
time with leap seconds should use the new gregorian UTC calendar (whatever we 
call it). I believe we agree on that.

My opinion is that those who write new datasets with the new CF standard where 
they convert UTC timestamps to time coordinates *without* allowing for leap 
seconds (the naive algorithm) should continue to call it `gregorian`. The 
interpretation of the timestamps as being in the Gregorian calendar, and the 
rules for conversion, are the same as for the model metrical Gregorian 
calendar, so it makes sense to call them the same. If `calendar="gregorian"`, 
the reference timestamp in the `units` must not have 60 for the seconds, even 
when that would be legal as a UTC timestamp.

This does change the interpretation of `gregorian` but I don't think it's 
backwards incompatible. The change is simply to remove an ambiguity. It would 
be reasonable to apply the same interpretation to existing `gregorian` data 
i.e. decode it without leap seconds. In most cases, that would be correct, but 
we can't be sure about it. In future, however, we will know for sure, because 
`gregorian` will not be used for the case where leap seconds have been allowed 
for.

-- 
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/148#issuecomment-436596583

Reply via email to