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