Hi all,
We ran into a glitch after converting one of our buoys to the new CF-1.6
discrete sampling geometries (DSG) format, and I'm looking for advice. This
dataset uses the single time series format, like the one provided in the
template of the CF document in Example H.4:
http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.6/cf-conventions.html#idp8320208.
The problem we discovered is that the dataset is no longer readable in
software clients like GrADS and Dapper/DChart (likely others) because it
can't find the latitude and longitude coordinates anymore.
While the dataset previously included the lat/lon dimensions of the buoy in
NetCDF coordinate variables, CF-1.6 DSG no longer defines lat/lon as
coordinate variables. Instead, they are scalar variables which are
referenced by other variables (temp, salinity, etc.) via a new
variable-level "coordinates" attribute: e.g.
temp:coordinates = "time lat lon alt" ;
In order to allow the DSG datasets to continue working in existing software
clients that do not know yet to look for this new "coordinates" variable
attribute, does it break CF-1.6 DSG compliance to *also* change the lat/lon
scalars to coordinate variables like they used to operate? Building on
Example H.4, the modified dataset would look like this, which is a melding
of the old and new ways:
dimensions:
time = 100233 ;
name_strlen = 23 ;
alt = 1 ;
lat = 1 ;
lon = 1 ;
variables:
float lon(lon) ;
lon:standard_name = "longitude";
lon:long_name = "station longitude";
lon:units = "degrees_east";
float lat(lat) ;
lat:standard_name = "latitude";
lat:long_name = "station latitude" ;
lat:units = "degrees_north" ;
float alt(alt) ;
alt:long_name = "vertical distance above the surface" ;
alt:standard_name = "height" ;
alt:units = "m";
alt:positive = "up";
alt:axis = "Z";
char station_name(name_strlen) ;
station_name:long_name = "station name" ;
station_name:cf_role = "timeseries_id";
double time(time) ;
time:standard_name = "time";
time:long_name = "time of measurement" ;
time:units = "days since 1970-01-01 00:00:00" ;
time:missing_value = -999.9;
float humidity(time, alt, lat, lon) ;
humidity:standard_name = ?specific_humidity? ;
humidity:coordinates = "time lat lon alt" ;
humidity:_FillValue = -999.9;
float temp(time, alt, lat, lon) ;
temp:standard_name = ?air_temperature? ;
temp:units = "Celsius" ;
temp:coordinates = "time lat lon alt" ;
temp:_FillValue = -999.9;
attributes:
:featureType = "timeSeries";
Thanks for any insights on this issue!
Cheers,
John Maurer
Pacific Islands Ocean Observing System (PacIOOS)
University of Hawaii at Manoa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <
http://mailman.cgd.ucar.edu/pipermail/cf-metadata/attachments/20130529/23e4b73a/attachment.html>
Received on Wed May 29 2013 - 12:35:24 BST