Hi Jonathan and Jim,

Thanks for bearing with me as I educate myself and think about this stuff. I rethought further about what I said yesterday and realized that maybe we were still making this too complicated. Jonathan's discussion helped me to come up with the following:

Starting with the following claims:

1) All model data stored under CF has been generated by models with strict 86400 second mean sidereal days (and no leap seconds are necessary)

2) Up to now, the vast majority of all observational data stored under CF has had reference times that can be associated with the UTC calendar (or its predecessor GMT) and the elapsed times have been recorded omitting leap seconds.

I make the second claim because, for example, folks doing daily measurements or even 3-hourly measurements collected for synoptic weather prediction record that data at certain times of day as dictated by clocks that follow UTC. For example a measurement might be done every day at 0Z and the person performing the measurement is probably not even aware that every once in a while he had to wait 1 second longer than usual because a leap second was inserted. When these measurements are recorded as time series, I'd be surprised if anyone has inserted a leap second in computing elapsed time.

This "sloppiness" in recording elapsed time actually is a blessing to those of us comparing climate model output to observations. If we want to compare monthly means, for example, we can specify exactly the same time bounds for both observed data and model output and we will extract the data of interest. If instead leap seconds had been accounted for in calculating elapsed time under the UTC system, then the time bounds would be different from models, certainly giving us headaches and likely leading to mistakes.

I would therefore advocate to interpret "gregorian" as follows:

This calendar is based on the assumption that the length of the mean solar day is exactly 86400 seconds. For observations, the assumption is not in fact exactly correct. To facilitate comparisons between model results and climate and weather observations, an adjustment in the true elapsed time is required when calendar="gregorian". The reference time should be specified according to the UTC time system, but leap seconds should be omitted in converting from wall-clock time to elapsed time. This means that elapsed time values will only be approximately correct, but this is generally desirable because: 1) simple algorithms can be used to convert from wall-clock time to elapsed time, 2) the mismatch between the model's mean solar day and the actual mean solar day (about .002 seconds) can be ignored in comparing models and observations; observed elapsed times are effectively modified to yield a time series that stays synced with the diurnal cycle we would find if the earth's day were exactly 86400 seconds long. Note that although elapsed times stored in the CF-conforming file will be only approximate, they will differ by less than 17 seconds (as of July 2015) from the true elapsed time.

I think this definition means that there is no need for gregorian_utc_nls.

Although I can see why the two new calendars (gregorian_utc and gregorian_gps) could be used for special cases, I would hope most providers of climate and weather data will continue to use a "gregorian" calendar as defined above. This will make it much easier for modelers to compare their output to observations.

best regards,
Karl


On 7/15/15 1:34 AM, Jonathan Gregory wrote:
PS. First, to repeat myself:

So my conclusion (at present - but I suspect I haven't understood something
you have said) is that gregorian is fine and sufficient (with the addition of
gregorian_utc and gregorian_gps for the well-defined real-world systems) if
we define it to mean that 86400-seconds are assumed to be used for conversion
from clock time to elapsed time and elapsed time to clock time, that it is not
defined whether the reference time and clock times are GPS and UTC, and that
the elapsed times may not be exactly correct for the real world (due to the
neglect of leap seconds).

I also said, "This is then the same as gregorian_utc_nls, so we would not need
that either, which was your final conclusion in your previous post." Actually
it's not quite the same as gregorian_utc_nls, which asserts that clock times,
if real-world, are UTC. Otherwise it's the same. If my conclusion above is
correct, then I don't mind whether we introduce gregorian_utc_nls or not. No-
one has definitely asked for it, as far as I remember; we discussed it because
of anticipating the need, I believe. We could therefore follow the usual CF
principle of omitting it until it's asked for.

Cheers

Jonathan

----- Forwarded message from Jonathan Gregory <[email protected]

Date: Wed, 15 Jul 2015 08:01:04 +0100
From: Jonathan Gregory <[email protected]>
To: [email protected]
Subject: [CF-metadata] How to define time coordinate in GPS?
User-Agent: Mutt/1.5.21 (2010-09-15)

Dear Karl

I think the meaning of "gregorian" up to CF 1.6 is actually not clear, because
we had not thought about these distinctions earlier. If we change the calendar
definitions, it does not affect the interpretation of any existing data written
with previous versions. However I agree that it would be inconvenient for data-
users if they had to process "gregorian" times differently according to the
setting of the Conventions version.

I thought that the current proposal was that gregorian would be vague in
future, like you wrote in your second option:

1) might or might not account for leap seconds, 2) might or might not assume
the length of the solar day is exactly 86400 seconds long, and 3) might express
the reference time according to either UTC or GPS

and that is exactly the reason why, after agreeing with Jim last week, I
changed my mind to argue that we needed gregorian_nls for model data, to
preserve the exactness for times which really are always 86400-second days.
You agree we would need gregorian_nls in that case. I agree that it means that
models would use gregorian_nls in future, not gregorian.

However in your first option you don't think this is necessary:

Under the "gregorian" calendar the length of the solar day can be assumed to be
exactly 86400 seconds long (i.e., there are no leap seconds).  This means that
for models where this assumption almost invariably is valid, conversion from
elapsed time to clock time is straight-forward and exact, whereas for
observations, conversion to clock time may introduce errors as large as 16
seconds because it is unknown whether the UTC or GPS time system has been used
in specifying the reference times (appearing in the time units attribute), and
it is also unknown whether leap seconds have been properly accounted for in
converting UTC clock times to elapsed time.

I'm sorry, but I can't see what is the difference. In both cases you say it
is unknown whether leap seconds have been included in converting from clock
time to elapsed time. Is the crucial difference about the length of the day?
Does "assume the solar day to be exactly 86400 seconds" mean "assume all days
are 86400 seconds in converting elapsed time to clock time"?

If that's what you mean, I think your first and preferred option is fine, and
then I agree we do not need gregorian_nls. To spell it out, I think this is
acceptable if "gregorian" means that you will recover the clock times (time-
stamps) exactly by using an algorithm that assumes constant 86400-second days
(i.e. with no leap seconds). If these clock times refer to the real world, it
is undefined whether the reference time is GPS or UTC, and consequently it is
undefined whether the decoded clock times are GPS or UTC.

But my statement "you will recover the clock times (time-stamps) exactly by
using an algorithm that assumes constant 86400-second days" is inconsistent
with your statement "conversion to clock time may introduce errors ... because
it is unknown whether ... leap seconds have been properly accounted for in
converting UTC clock times to elapsed time". According to my statement,
gregorian means that leap seconds were ignored when converting clock times to
elapsed times i.e. 86400-second days were used. If that's not the case, you
can't decode accurately. Thus the elapsed times may not be quite right for the
real world. This is then the same as gregorian_utc_nls, so we would not need
that either, which was your final conclusion in your previous post.

So my conclusion (at present - but I suspect I haven't understood something
you have said) is that gregorian is fine and sufficient (with the addition of
gregorian_utc and gregorian_gps for the well-defined real-world systems) if
we define it to mean that 86400-seconds are assumed to be used for conversion
from clock time to elapsed time and elapsed time to clock time, that it is not
defined whether the reference time and clock times are GPS and UTC, and that
the elapsed times may not be exactly correct for the real world (due to the
neglect of leap seconds).

Best wishes

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

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

Reply via email to