⇐ ⇒

[CF-metadata] CF-netcdf for Mercator projection - use lat/lon, or xc/yc plus lat/lon

From: Mark Mathewson Consulting <mathewsonconsulting>
Date: Thu, 11 Oct 2012 11:05:23 -0700

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

This archive was generated by hypermail 2.3.0 : Tue Sep 13 2022 - 23:02:41 BST

⇐ ⇒