Hi Sara:

Thanks for adding your example to the mix. This appears to be a timeseries at a 
single x,y location with all the measurements on single, but different levels 
(?)

Because these are single level, I would be inclined to use a variation of the station 
representation. One possibility is to put each z coordinate in its own coordinate using a 
"scalar dimension" (dimension with length 1) :


dimension
z_inst1 = 1;
z_inst2 = 1;
z_inst3 = 1;

float lon;
float lat;

float z_inst1(z_inst1);
float z_inst2(z_inst2);
float z_inst3(z_inst3);

long time(time);

float wspd(time,z_inst1);
float wdir(time,z_inst1);
float atemp(time,z_inst2);
float SST(time,z_inst3);


Sara Haines wrote:
Dear Nan and John:

I've been monitoring this conversation for just a short period. So I apologize ahead for chiming in so late in the game.

It is very important for observational data model to represent the actual system that is deployed. The point that Nan and others have raised is a need for a container to represent multiple measurement heights for several sensors at a station (e.g. met above the ocean surface, near-surface and near-bottom ocean temperature and salinity).

You all seem in agreement on this and that it is not a simple side-bar case. Similar to what Nan described was kludged in the SEACOOS CDL v2.0 netcdf format because no case like moorings and buoys with multiple point measurements was covered in CF-conventions back in 2004. We defined the requirement that the point-measurement sensors be associated with the same location or site. SEACOOS CDL v2.0 was adopted by SECOORA but most definitely needs revisiting. It looks like this:

netcdf  fixed-point {

// This is a fixed-point station with dependent variables
// measured by sensors at different heights.
//
// All sensors are sampling at the same time.
//    (1) x and y and sensor-specific z are repeated for each time.
//    (2) Assign z dimension equal to number of z measurement levels
//    (3) Assign values for z levels in the data section
//    (4) Use variable attribute called "z" under dependent variable to
//             associate specific z of point measurement
//    (5) Use z variable to describe all the required attributes
//             without having to repeat under each dependent variable

dimensions:
time = 4;
lon = 1;
lat = 1;
z = 3;

variables:

// INDEPENDENT VARIABLES
long time(time);
    time: standard_name = "time";
    time: units = "sec since 1970-1-1 00:00:00";
    time: axis = "T";
float lon(lon);
    lon: standard_name = "longitude";
    lon: units = "degrees_east" ;
    lon: reference = "geographical coordinates" ;
    lon: axis = "X";
float lat(lat);
    lat: standard_name = "latitude";
    lat: units = "degrees_east";
    lat: reference = "geographical coordinates";
    lat: axis = "Y";
float z(z);
    z: standard_name = "height";
    z: units = "m";
    z: reference = "mean sea level (MSL)";
    z: positive = "up";
    z: axis = "Z";

// DEPENDENT VARIABLES
float wspd(time);
    wspd: long_name = "Wind Speed";
    wspd: standard_name = "wind_speed";
    wspd: units = "m s-1";
    wspd: z = 45;
float wdir(time);
    wdir: long_name= "Wind Direction (from)";
    wdir: standard_name = "wind_from_direction";
    wdir: units = "degrees";
    wdir: reference = "clockwise from true north";
    wdir: valid_range = 0.,360.;
    wdir: z = 45;
float atemp(time);
    atemp: long_name = "Air temperature";
    atemp: standard_name = "air_temperature";
    atemp: units = "degrees Celsius";
    atemp: z = 24;
float SST(time);
    SST: long_name = "Sea Surface Temperature";
    SST: standard_name = "sea_surface_temperature";
    SST: units = "degrees Celsius";
    SST: z = -5;

// global attributes:
// (use all for adopted SEACOOS CDL v2.0)
:format_category = "fixed-point";

data:

time = 1062804600,1062808200,1062810000,1062811800;
lon = -82.543;
lat = 18.462702;
z = 45, 24, -5;

wspd =   9.80, 12.63, 16.52, 18.97;
wdir =  88.8,103.6,112.7,105.0;
atemp =  27.00, 27.23, 27.05, 26.97;
SST =  28.11, 28.17, 28.17, 28.35;

}

I understand your points about making lat and lon scalars. So ignore that for just now. (Remember: This was developed 5 years ago!)

The variable attribute above ("SST: z = -5") should probably be an index to the z variable to be less confusing. But I think you get the idea.

There is something workable for conventions of Point Observation Data without being cobbling something together. I like many of the ideas in this proposed convention, for example, multiple deployments at the same site. It addresses most short-comings in previous CF-conventions for non-gridded data and what is kludged in the Southeast Region.

I would most enjoy discussing this further. It will help me understand what is being proposed. Right now, I'm mostly chiming in to underscore Nan's need and the need to address it in this round of the review.

Thanks,
Sara


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

Reply via email to