Here's a table describing (most of) the different possible answers to the three 
questions, along with an answer to a fourth, implied question, "Do I need a 
leap second table to get to UTC from here?"

Metrical Elapsed Times | Alternate System | Epoch Stamp | Need Leap Seconds for 
UTC
---------------------- | ---------------- | ---------- | 
-------------------------
Yes | None | TAI | Yes
Yes | None | UTC | Yes
Yes | None | Uncorrected GPS | Yes
Yes | None | Some other time system | Yes
No | ???? | TAI | ????
No | Naively converted UTC | UTC | No
No | ???? | Uncorrected GPS | ????
No | ???? | Some other time system | ????
?? | ???? | ???? | ????

The 'Alternate System' column is for the answer to the third question. The '??' 
and '????' entries indicate an answer of, "I don't know".

The first four entries are all for metrical elapsed time in the variable. If 
our primary goal is to document the time system used for the epoch time stamp, 
then we need two or more new calendars - one for TAI, one for UTC, one for 
uncorrected GPS, and maybe others that we haven't learned about yet. If the 
user wants to take time values in any of these cases to UTC time stamps, she 
will need a leap second table and software that knows how to use it. If she is 
happy with staying in the epoch system, she can do a naive conversion to a time 
stamp and it will be accurate. She may not even need to go to time stamps, in 
which case she is also fine.

The next four entries are all for non-metrical elapsed time in the variable. 
There is only one case here that makes any sense, as far as we are currently 
aware. That is the case where UTC time stamps were naively converted to elapsed 
times. The user won't need a leap second table to get UTC time stamps from the 
contents of the time variable. If she wants to get metrical time values, she 
can do so with a leap second table and some custom software. From there she can 
do what she likes.

The last case is one where the user doesn't know whether or not the time values 
are metrical, doesn't know for sure that time system the epoch time is in, and 
doesn't know what alternative method could be used. This is where __all__ of 
our time variables are right now. We may find out from the data producer what 
method they used so that we can work with the data in the way we need to, but 
there are no clues inside the time variable or the file.

The only difference in the first four cases is the time system used for the 
epoch time stamp. We could go quite specific and make three new calendars for 
these cases. (The fourth case awaits definition of the time system.) __Or__ we 
could simplify here and specify that the epoch time stamp will always be UTC. 
This would impose a burden on users that wanted to get time stamps in the epoch 
time system. It's not a heavy burden for someone armed with a leap second 
table. I think this set of cases deserves somewhere between one and three 
calendars.

The 'Naively converted UTC' case is the one case in the second group that has 
any utility. There are a lot of files out there that fall in this case. I think 
this deserves its own calendar.

The last entry is what I think our current **`gregorian`** calendar covers now. 
And I think we should leave it that way. We should add verbiage to the 
definition of this calendar to warn users that metrical/non-metrical status is 
unknown and that the time system for the epoch time stamp is unknown. By the 
way, this case is great for the modelers and for observational data and users 
that don't have sub-minute accuracy requirements.

So that gives us 1-4 new calendars, whatever their names might be, in addition 
to the classic gregorian calendar.

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

Reply via email to