⇐ ⇒

[CF-metadata] COARDS name for a time offset

From: Steve Hankin <Steven.C.Hankin>
Date: Fri, 22 Dec 2006 14:55:00 -0800

Hi Ed,

It sounds like NASA's situation is that they want a single CF file (or
dataset) to contain multiple variables that are each on different time
axes. But the time axes differ only by a constant offset. In this case
they would not like to physically store multiple time axes in the file.
Storing multiple time axes would lead to 1) wasted space, 2) clouding
the close relationship between the time axes.

I cannot think of existing machinery that can do this. Such an
attribute would need to preserve the assumption made by clients that
shared use of a coordinate variable means shared coordinates. So it
would need to introduce a new coordinate variable without duplicating
the coordinates, themselves. Something like the following:

    dimensions:
            dummy = 1;
            TIME = UNLIMITED ;
    variables:
            double TIME(TIME) ;
                    TIME:units = "hour since 0000-01-01 00:00:00" ;
            float SST(TIME, Y, X) ;
                    SST:long_name = "SEA SURFACE TEMPERATURE" ;
            *double TIME2(dummy);
                     TIME2: offset = 1; // 1 hour offset
                     TIME2: data_link = TIME; // <==!! re-use of
    values from another*
            float SLH(TIME, Y, X) ;
                    SLH:long_name = "SEA LEVEL HEIGHT" ;
                    *SLH:coordinates= "X, Y, TIME2"; *

The client application would need to synthesize the coordinates of TIME2
based upon the guidance in the file. Unfortunately this file would *not
*be intelligible to existing CF applications. That could be overcome
using this alternative:

    dimensions:
            TIME = UNLIMITED ;
    variables:
            double TIME(TIME) ;
                    TIME:units = "hour since 0000-01-01 00:00:00" ;
            float SST(TIME, Y, X) ;
                    SST:long_name = "SEA SURFACE TEMPERATURE" ;
            *double TIME2(TIME); /// values are offset by 1 hour from
    TIME*
    * TIME2: data_offset = 1;*
    * TIME2: data_link = TIME;*
            float SLH(TIME, Y, X) ;
                    SLH:long_name = "SEA LEVEL HEIGHT" ;
                    *SLH:coordinates= "X, Y, TIME2"; *

In this version existing CF applications will find the file fully
intelligible. Application that understand "data_link" and "data_offset"
will immediately understand the inter-relationships (these may be
standardized in the NASA community, only). But we *do* require two sets
of coordinates to be stored.

Ed, is this latter satisfactory? If not can you supply some discussion
on how much the overall size of the file would be impacted by the
existence of multiple coordinates. Or are there other drivers?

    - Steve

================================

Jonathan Gregory wrote:
> Dear Ed
>
> I wonder why this you need to store the time-offset. If the time of the wind
> and the time of the SST are different, but both are stored in time units of
> seconds since the same reference, it is easy to work out the offset as the
> difference of the two times, isn't it?
>
> Best wishes
>
> Jonathan
> _______________________________________________
> CF-metadata mailing list
> CF-metadata at cgd.ucar.edu
> http://www.cgd.ucar.edu/mailman/listinfo/cf-metadata
>

-- 
--
Steve Hankin, NOAA/PMEL -- Steven.C.Hankin at noaa.gov
7600 Sand Point Way NE, Seattle, WA 98115-0070
ph. (206) 526-6080, FAX (206) 526-6744
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cgd.ucar.edu/pipermail/cf-metadata/attachments/20061222/7306b1d7/attachment-0002.html>
Received on Fri Dec 22 2006 - 15:55:00 GMT

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

⇐ ⇒