I have data that I'm putting into CF netcdf format (conventions 1.6)
that is in the Mercator projection. I'm trying to determine which
method is preferred for CF-compliance, in regard to the projection
information. The basic question is: Since the Mercator projection is
N-S-E-W, is there any need to provide projection coordinates (xc, yc)?
I can see the need to provide the projection coordinates for projections
such as Polar Stereographic.
Example 1: Use of x and y projection coordinates, with separate lat/lon
variables.
netcdf \1 {
dimensions:
xc = 287 ;
yc = 232 ;
time = 1 ;
variables:
char Mercator ;
Mercator:longitude_of_projection_origin = 135.f ;
Mercator:long_name = "projection information" ;
Mercator:standard_parallel = 0.f ;
Mercator:false_northing = 0.f ;
Mercator:grid_mapping_name = "mercator" ;
Mercator:false_easting = 0.f ;
float yc(yc) ;
yc:units = "m" ;
yc:standard_name = "projection_y_coordinate" ;
float xc(xc) ;
xc:units = "m" ;
xc:standard_name = "projection_x_coordinate" ;
int time(time) ;
time:units = "hours since 1970-01-01T00:00:00Z" ;
time:long_name = "starting time for grids" ;
time:standard_name = "time" ;
time:calendar = "gregorian" ;
float longitude(yc, xc) ;
longitude:units = "degrees_east" ;
longitude:standard_name = "longitude" ;
float latitude(yc, xc) ;
latitude:units = "degrees_north" ;
latitude:standard_name = "latitude" ;
float Wind_SFC(time, yc, xc) ;
Wind_Mag_SFC:_FillValue = -30000.f ;
Wind_Mag_SFC:grid_mapping = "Mercator" ;
Wind_Mag_SFC:coordinates = "latitude longitude" ;
Wind_Mag_SFC:valid_range = 0.f, 64.30556f ;
Wind_Mag_SFC:standard_name = "wind_speed" ;
Wind_Mag_SFC:cell_methods = "time: mode" ;
Wind_Mag_SFC:units = "m sec**-1" ;
Example 2: Just using lat/lon coordinate variables, even though the
projection is not latlon.
netcdf \1 {
dimensions:
longitude = 287 ;
latitude = 232 ;
time = 1 ;
variables:
char Mercator ;
Mercator:longitude_of_projection_origin = 135.f ;
Mercator:long_name = "projection information" ;
Mercator:standard_parallel = 0.f ;
Mercator:false_northing = 0.f ;
Mercator:grid_mapping_name = "mercator" ;
Mercator:false_easting = 0.f ;
int time(time) ;
time:units = "hours since 1970-01-01T00:00:00Z" ;
time:long_name = "starting time for grids" ;
time:standard_name = "time" ;
time:calendar = "gregorian" ;
float longitude(longitude) ;
longitude:units = "degrees_east" ;
longitude:standard_name = "longitude" ;
float latitude(latitude) ;
latitude:units = "degrees_north" ;
latitude:standard_name = "latitude" ;
float Wind_SFC(time, latitude, longitude) ;
Wind_Mag_SFC:_FillValue = -30000.f ;
Wind_Mag_SFC:grid_mapping = "Mercator" ;
Wind_Mag_SFC:valid_range = 0.f, 64.30556f ;
Wind_Mag_SFC:standard_name = "wind_speed" ;
Wind_Mag_SFC:cell_methods = "time: mode" ;
Wind_Mag_SFC:units = "m sec**-1" ;
Which example is preferred? If example 2 is used, should the xy
coordinates be provided as:
float xc(longitude) ;
float yc(latitude);
and use the coordinate attribute for Wind pointing to xc and yc?
Thanks.
Regards,
Mark
--
Mark Mathewson Consulting
535 Swanson Mill Rd.
Tonasket, WA 98855
509-429-8635
Received on Thu Oct 11 2012 - 12:05:23 BST