⇐ ⇒

[CF-metadata] Classification of a "trajectory" with asynchronous time coordinates

From: Jim Biard <jbiard>
Date: Wed, 19 Mar 2014 09:31:24 -0400

Mike,

(If I?m wrong in what I?m about to say, someone please feel free to step in.)

The general concept of a trajectory in CF requires you to have a common trajectory index dimension that ties all of the related elements together. A simple example of a trajectory is one in which the time dimension is also your index dimension, but in every case there must be unique position and time values for each trajectory point. In your first example, you have a bunch of unrelated time series. You cannot use variables that don?t share a dimension with a variable as auxiliary coordinates for that variable, so putting lat, lon, and z in the coordinates attributes for the O3 or NO3 variables is not allowed. In this second example, you have one trajectory that has no data variable (composed of the lon, lat, z, and time_coords group), and two unrelated time series (O3 and NO3). As in the first case, you cannot associate lon, lat, or z with O3 or NO3, because they don?t share a dimension.

There is nothing illegal about having a bunch of dimensionally unrelated time series in a file. You can totally do that and comply with CF, but they aren?t trajectories, and automated software won?t be able to make sense of it as somehow forming an ensemble. There is no interpolation formalism that would automatically imply lon, lat, and z values for the O3 and NO3 measurements. (None that I?m aware of, at any rate.)

Anyway, that?s the best I understand it, based on what you have shared so far. If this data really represents O3 and NO3 measurements taken at different rates from each other while moving along a path with location fixes taken at yet a different rate, then I don?t see a simple way to make a single trajectory out of the data without doing the interpolations beforehand.

Grace and peace,

Jim

Visit us on
Facebook Jim Biard
Research Scholar
Cooperative Institute for Climate and Satellites NC
North Carolina State University
NOAA's National Climatic Data Center
151 Patton Ave, Asheville, NC 28801
e: jbiard at cicsnc.org
o: +1 828 271 4900




On Mar 18, 2014, at 4:50 PM, Mike Godin <mikegodin at yahoo.com> wrote:

> Hi Jim,
>
> Actually, the latitude, longitude, and z values are not sampled at different rates (I showed them as such for an extreme example, and in some decimation schemes they end up being asynchronous), but in reality the science data are collected asynchronously from each other and the coordinate data.
>
> I can't find where the CF standard specifies that a trajectory must have a single time dimension (perhaps I've missed it). If it does, and this is a collection of time series, can a collection of time series be represented in a CF-compliant file? If so how would one indicate that lat, lon, and z are the coordinates through which O3 and NO3 vary?
>
> If it helps, one could imagine the following somewhat simpler CDL, in which coordinates are time-synchronized but scientific measurements are not:
>
> dimensions:
> time_coords = 435;
> time_O3 = 335;
> time_NO3 = 5357;
>
> variables:
> double time_coords(time_coords) ;
> time_coords:standard_name = "time";
> time_coords:long_name = "time_coords" ;
> time_coords:units = "days since 1970-01-01 00:00:00" ;
> float lon(time_coords) ;
> lon:standard_name = "longitude";
> lon:long_name = "longitude" ;
> lon:units = "degrees_east" ;
> float lat(time_coords) ;
> lat:standard_name = "latitude";
> lat:long_name = "latitude" ;
> lat:units = "degrees_north" ;
> float z(time_coords) ;
> z:standard_name = ?altitude?;
> z:long_name = "height above mean sea level" ;
> z:units = "km" ;
> z:positive = "up" ;
> z:axis = "Z" ;
>
> double time_O3(time_O3) ;
> time_O3:standard_name = "time";
> time_O3:long_name = "time_O3" ;
> time_O3:units = "days since 1970-01-01 00:00:00" ;
> float O3(time_O3) ;
> O3:standard_name = ?mass_fraction_of_ozone_in_air?;
> O3:long_name = "ozone concentration" ;
> O3:units = "1e-9" ;
> O3:coordinates = "time_O3 lon lat z" ;
>
> double time_NO3(time_NO3) ;
> time_NO3:standard_name = "time";
> time_NO3:long_name = "time_NO3" ;
> time_NO3:units = "days since 1970-01-01 00:00:00" ;
> float O3(time_NO3) ;
> NO3:standard_name = ?mass_fraction_of_nitrate_radical_in_air?;
> NO3:long_name = "NO3 concentration" ;
> NO3:units = "1e-9" ;
> NO3:coordinates = "time_NO3 lon lat z" ;
>
> attributes:
> :featureType = "????";
>
> Thanks,
> Mike Godin
>
> Lead Engineer,
> IntuAware
> http://intuaware.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cgd.ucar.edu/pipermail/cf-metadata/attachments/20140319/b32275f2/attachment-0001.html>
Received on Wed Mar 19 2014 - 07:31:24 GMT

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

⇐ ⇒