⇐ ⇒

[CF-metadata] New standard names for satellite obs data (time as ISO strings)

From: Jon Blower <j.d.blower>
Date: Thu, 21 Oct 2010 23:27:39 +0100

Hi Benno,

> No one I know beyond the age of four thinks Sep 2009 is ambiguous

Do you mean "beyond the age of precisely 4.000... years" or "beyond the age of 4.999... years"? Or is the ambiguous temporal metadata concept of "the age of four" sufficient?

;-)

All ISO8601 dates (year, month or day resolution) are inherently ambiguous because they carry no time zone information (your precise bounds are likely to be 5 hours different from mine, or something more complex if daylight saving is involved). So with ISO8601 alone I don't think there's such a thing as the "preciseSep2009" in your argument below, unless I've misunderstood what you mean, in which case apologies.

Hmm... come to think of it, this might actually argue *against* using ISO8601 strings alone as indicators of time resolution. If we really *do* mean that data are representative of a 24-hour period starting at midnight UTC on the first of September, we can't represent this unambiguously as "2009-01-01" because of the time zone problem. (I think that "2009-01-01Z" is illegal.) In this case we would be better off representing this period as a nominal value plus explicit bounds, or a nominal value plus time zone plus some additional information that we can discard any precision greater than 1 day.

*However*, it's still very useful to know the resolution of the time axis by some means other than inspecting the coordinate bounds. An application (e.g. automatically generating a time selector widget in a GUI) will probably not want to look at all the bounds of all the time coordinates to infer the time resolution: apart from being generally tedious, it would be very difficult for monthly data (because months are different lengths, and vary between calendars). Additionally, this inference would be complicated if floating-point numbers were used to represent time coordinates, since these are usually slightly inaccurate (dangerous to compare floats for equality, etc. etc.)


So, I'm starting to like the idea of an additional (and optional) CF attribute to specify time coordinate resolution. This could be specified in precise numeric terms (e.g. instrument precision of 0.12 ms) or in less-precise human calendar terms for certain kinds of data (e.g. "P1M" for monthly resolution). It would be additional to the coordinate bounds: data providers could specify one or the other, or both if they are consistent (or neither if appropriate?)

This would not require or preclude the use of ISO8601 strings to represent time coordinate values.


Best wishes,
Jon


-----Original Message-----
From: bennoblumenthal at gmail.com [mailto:bennoblumenthal at gmail.com] On Behalf Of Benno Blumenthal
Sent: 21 October 2010 21:44
To: Jon Blower
Cc: cf-metadata at cgd.ucar.edu
Subject: Re: [CF-metadata] New standard names for satellite obs data (time as ISO strings)

Hi Jon,

Sorry, I am not buying it.

No one I know beyond the age of four thinks Sep 2009 is ambiguous, and
I don't read your examples as needing vagueness on the time
specifically.

Suppose, for a moment, that you succeed beyond your wildest dreams,
and it is possible to express in CF some relationship to a vague
notion of Sep2009, i.e.

data hasADataRelationshipWith vagueSep2009.

I would say there is another relationship

vagueSep2009 isAVagueVersionOf preciseSep2009

And you could have just as easily coded in CF

data hasADataRelationshipWithAVaugeVersionOf preciseSep2009

i.e. there is no reason why the vaugeness cannot be coded as a
dependent data property. Which is what CF is currently set up to do,
with a possible extension of the cell_methods vocabulary

Futhermore, you said

> You *could* modify CF so that to represent data that are "representative of September 2010", you specify a nominal date half-way through September and set the bounds to the first and last instants of September. And perhaps use a new cell_methods of "representative". But the half-way point and the bounds would be quite (very) tedious to compute in the general case (months and years are of variable length for example and depend on the calendar system).
>

That is not a modification of CF -- that is the way it is currently
encoded in CF (though there is no meaning to the nominal value, so you
can set it to whatever). And yes, you have to generate the edges,
which you have to do anyway if you are going to sensibly handle
computations with the data.

And let me repeat my main original point, so that it does not get
completely buried -- CF software really needs to render time bounds
as ISO8601 conveniently and universally (both directions seems to be
essential, i.e. reading and writing), so the the CF convention can be
easily used in this regard.

Sorry I couldn't be more helpful,

Benno


On Thu, Oct 21, 2010 at 11:57 AM, Jon Blower <j.d.blower at reading.ac.uk> wrote:
> Hi Benno,
>
> 2010-09 is not necessarily a precise specification of a month - time zones make it a little fuzzy for one thing. ?Separate to this, there are parallel conversations going on in the ISO/OGC community about what time strings actually mean. ?A metadata person might say that "2010-09" is simply a shorthand for the fuzzy concept of "September 2010" and does not represent a precise interval (i.e. a square-wave function that is 1 during September and 0 outside). ?Apart from the time zone issue which blurs the boundaries, this square-wave is simply not what humans mean when, for example, they tag a report as having been written in September 2010. ?It just distinguishes it from version 2 of the report, which was written in November. ?In this context, it's just a label with some temporal meaning.
>
> These "metadata guys" are in discussion with the "positioning guys" who view date/times as precisely-defined positions within a temporal CRS. ?You may (or may not!) like to look at the GeoAPI mailing list, in which we are trying to figure out whether we can actually use the same Java types for both of these subtly-different views of date/times (we hope we can but haven't agreed). ?One might think that they are obviously the same thing, but I don't think so.
>
> You *could* modify CF so that to represent data that are "representative of September 2010", you specify a nominal date half-way through September and set the bounds to the first and last instants of September. ?And perhaps use a new cell_methods of "representative". ?But the half-way point and the bounds would be quite (very) tedious to compute in the general case (months and years are of variable length for example and depend on the calendar system).
>
>> Of course, how the data is actually related to that interval is where the
>> notion of precision might come in
>
> Actually, you've probably gathered that I also consider the notion of precision to apply to the interval itself, not just how the data relates to it.
>
> This discussion repeats a bit of the previous discussion on this list entitled "bounds/precision for time axis". ?I like Jonathan's distinction between the concepts of temporal resolution and representivity: http://www.mail-archive.com/cf-metadata at cgd.ucar.edu/msg01341.html.
>
> And just for completeness we should not that ISO8601 strings are not fixed-length, nor do they have a maximum length (in contrast to what I said before, sorry). ?So I can see some implementation challenges in NetCDF.
>
> Cheers, Jon
>
>
> -----Original Message-----
> From: bennoblumenthal at gmail.com [mailto:bennoblumenthal at gmail.com] On Behalf Of Benno Blumenthal
> Sent: 21 October 2010 15:43
> To: Steve Hankin
> Cc: Jon Blower; cf-metadata at cgd.ucar.edu
> Subject: Re: [CF-metadata] New standard names for satellite obs data (time as ISO strings)
>
> While expressing precision in CF is an interesting issue, in this case
> the Wikipedia quote is using the term in a different sense than I
> (hopefully we) usually mean -- ISO8601 lets one express time intervals
> succinctly in a single string, e.g. 2010-09 to mean all of september
> 2010, which is not an accuracy issue, it is a precise specification of
> a larger interval. ?It lets you write 2010-09-01/10-05 as well, i.e.
> it is not limited to intervals that involve special notational
> boundaries. ? As Steve points out CF expresses this using a bounds
> coordinate, i.e. giving the precise edges of each interval. ?Of
> course, how the data is actually related to that interval is where the
> notion of precision might come in, which cell methods/measures
> addresses, perhaps inadequately for the purpose at hand.
>
> ISO8601 is quite neat in the sense that it forces one to always
> specify an interval, and CF software reading time bounds data and
> rendering ISO8601 strings would do us all a lot of good.
>
> Benno
>
Received on Thu Oct 21 2010 - 16:27:39 BST

This archive was generated by hypermail 2.3.0 : Tue Sep 13 2022 - 23:02:41 BST

⇐ ⇒