Thanks for the explanations, Jim.

I may be totally wrong here, but (if there were no need for backwards 
compatibility) it seems to me that the convention for the standard "time" 
variable could make use of constructs that are used elsewhere in the convention.

The time variable contains a count of seconds since a given base point in time. 
This base point could be defined as a scalar coordinate variable i.e. I'm 
measuring elapsed time and this coordinate is the point in time at which I'm 
measuring elapsed time.

Also, the mapping of the elapsed time to calendar-dependent timestamps seems 
somewhat analogous to the use of the grid_mapping attribute used to convert 
coordinate variables to lat/lon. In this case, there could be a 
"calendar_mapping" variable which would have attributes that defined the 
calendar used by the producer and would allow the user to convert the elapsed 
time to timestamps in the calendar.

Regards,

Tim




----------------------------------

Tim,
On 6/11/15 12:00 PM, Timothy Patterson wrote:

................Jim's Suggested Update...............

4.4.1 Calendar
In order to know what point in history has been measured by a given base date, 
base time, and time increment, one must know what calendar was used for the 
base date and time. The calendar attribute defines the particular date and time 
system that was used to express the reference time string found in the units 
attribute, and is assigned to the time coordinate variable. The values 
currently defined for calendar are:
...............................................

Although they aren't explicitly defined above, am I right to assume that using 
the standard units convention for time;

        time:units = "days since 1990-1-1 0:0:0" ;

the base date and base time correspond to the date/time string after the word 
"since" (1990-1-1 0:0:0) and the time increment corresponds to the units before 
the word "since" (days)?
Good question! I had assumed that the 'time increment' corresponded to an 
elapsed time value stored in the time variable, which is in the units declared 
in the 'before the word "since"' part of the units attribute. This should be 
reworded to make it clearer (whichever is meant).


Also that the calendar attribute would be applicable to the full units 
attribute - base date and base time and time increment.
To my way of thinking, the calendar attribute only applies to the base date and 
time. The measurement units (second, minute, hour, day, etc) are defined 
separately.


Doesn't this conflict with the current convention in Section 4.4 where it is 
strongly implied that the base date and time are always supplied as UTC times?
We have agreed that we need to rewrite section 4.4 to remove specification of 
UTC.


Also,  in Jonathan's last email he writes " the encoded time coord is also an 
elapsed time, and is useful as such. The only situation in which it might have 
small dis- continuities is if the no-leap-second algorithm is used to encode 
and decode UTC and, as we have agreed, there should be a clear warning against 
not doing that if precision <1 min is required."

We are trying to use the CF conventions for instrument data and in this case, 
we're looking for much greater precision than 1 minute  so the difference 
between an encoded "timestamp" and an encoded "elapsed time" is important in 
our case. 

Taking the suggested modified text at the start, would I be right in saying 
that the calendar modifier is also intended to modify the units.  So applying a 
UTC calendar to "seconds since 1990-1-1 0:0:0" is in effect modifying the units 
to be  "utc_seconds since 1990-1-1 0:0:0", meaning that this is counted on a 
discontinuous UTC time scale and not a continuous elapsed seconds time scale.

If my interpretation is correct, then this would remove the possibility  of 
being able to specify a point in time in UTC and then have a true elapsed count 
(i.e. continuous rather than with UTC leap second gaps) since that time. Some 
of our products are currently using this method to compact the time data. By 
counting up from a recent event (i.e. the start of a scan line) rather than the 
start of year 2000 we can encode the data as a ushort of milliseconds instead 
of a double of seconds. The timestamp of the start of the scan line is 
expressed as a UTC (according to my understanding of the current conventions) 
and the units as milliseconds.

e.g.  time:units = "milliseconds  since 2015-06-11 17:51:22" ;

We then work in relative times as we 're not interested in expressing these 
time values as a calendar "timestamp".

Does this still work under the proposed scheme?
My position is that there are no 'UTC seconds'. There are only SI seconds. The 
elapsed times in a time variable should never contain discontinuities. In the 
proposed scheme, or even in the current scheme, you should always be able to 
work correctly in relative times. In the current scheme the time system used 
for the base time is effectively defined as UTC. As long as you correctly 
represent your base date and time using the Gregorian calendar and UTC time 
system, and correctly count your elapsed times, your time variable is correctly 
formed. (If your base date and time were originally provided as TAI time or 
something else besides UTC time, you would need to correctly convert your 
original base date and time to UTC.)

One of my goals in the discussion we have been having is to make sure that we 
don't define time and calendars such that it's considered OK to encode 
discontinuities into the elapsed times in time variables.

Jonathan's mention of encoding discontinuities is part of the acknowledged 
reality that people may well have started with UTC timestamps and used POSIX 
time conversion functions to them into elapsed times because they weren't aware 
of the pitfalls. If your time resolution is large in comparison to the possible 
errors introduced by doing so, then this error is effectively ignorable. In 
your case, such an error can be significant.

The new scheme involves refining our definitions and adding calendars that 
include definitions of the time system used (UTC, GPS, TAI, etc) in addition to 
the date system used (Gregorian, etc). I don't want any of them to state or 
imply that it's OK to introduce discontinuities into the elapsed times stored 
in the variables.


Regards,

Tim

Any email message from EUMETSAT is sent in good faith but shall neither be 
binding nor construed as constituting a commitment by EUMETSAT, except where 
provided for in a written agreement or contract or if explicitly stated in the 
email. Please note that any views or opinions presented in this email are 
solely those of the sender and do not necessarily represent those of EUMETSAT. 
This message and any attachments are intended for the sole use of the 
addressee(s) and may contain confidential and privileged information. Any 
unauthorised use, disclosure, dissemination or distribution (in whole or in 
part) of its contents is not permitted. If you received this message in error, 
please notify the sender and delete it from your system.
_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
Grace and peace,

Jim
--

Any email message from EUMETSAT is sent in good faith but shall neither be 
binding nor construed as constituting a commitment by EUMETSAT, except where 
provided for in a written agreement or contract or if explicitly stated in the 
email. Please note that any views or opinions presented in this email are 
solely those of the sender and do not necessarily represent those of EUMETSAT. 
This message and any attachments are intended for the sole use of the 
addressee(s) and may contain confidential and privileged information. Any 
unauthorised use, disclosure, dissemination or distribution (in whole or in 
part) of its contents is not permitted. If you received this message in error, 
please notify the sender and delete it from your system.
_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

Reply via email to