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: [email protected]
o: +1 828 271 4900




On Mar 18, 2014, at 4:50 PM, Mike Godin <[email protected]> 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

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

Reply via email to