@martinjuckes 
Let me make something clear that seems to have been unclear. I am **not** 
proposing that the new calendars are declaring what sort of epoch time stamp is 
in the **`units`** attribute of time variables.

I think it is a bad idea to allow a TAI time stamp to be placed in the units 
attribute as the epoch for the elapsed times in the time variable. It adds 
nothing but confusion. The epoch should *always* be specified with a UTC time 
stamp. This causes no problems whatsoever. Someone going to the trouble of 
getting exact and correct elapsed times in their time variables will have no 
trouble figuring out the proper UTC time stamp for their epoch. Users, on the 
other hand, would be faced with figuring out which way to handle the epoch time 
stamp. If the user is aware of the implications of having exact and correct 
elapsed times in a time variable, they will also have the software on hand that 
is needed if they want to get time stamps from the time variable, or they will 
get it because it is important to them. If they aren't aware, a TAI epoch time 
stamp will maximize the error they will get if they perform a leap-second-naive 
conversion to get time stamps from the time variable contents and mistakenly 
think are getting a UTC time stamp.

When I was talking about monotonicity I was intending it in reference to 
coordinate variables. I disagree with Chris (whether that is @ChrisBarker-NOAA 
or the unknown Chris who commented through the CF Metadata List account). 
People who are converting precise and accurate UTC time stamps into values in 
time variables using the tools most available to software developers for 
handling time without sensitivity to leap seconds are creating time variables 
that have the potential to be non-monotonic because of leap seconds. They have 
done it in the past, they are doing it now, and they will very likely continue 
to do so. It may be that they avoid the problem by breaking their data into 
files on UTC day boundaries (or hourly boundaries, etc), but if you aggregate 
those files you will create non-monotonic time variables. They will continue to 
do so because the potential one second per year non-monotonicity is less of a 
problem than forcing all their users to start decoding time variables into time 
stamps with leap-second-aware functions that are not readily available.

As I said before, this is a compromise position. Telling a significant group of 
data producers that they must change their software in a way that will cause 
widespread problems for their users is a good way to get them to ignore you.

-- 
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-434805313

Reply via email to