[CF-metadata] curvilinear cartesian coordinates case

Bert Jagers Bert.Jagers at wldelft.nl
Mon Nov 27 12:06:58 MST 2006

Hi Brian,

> Could you please provide a CDL example that shows how the association
> between the projection_x/y_coordinate and related grid_mapping is lost 
> when
> the grid_mapping is attached to the data variable.

This is an example of a river model at the boundary of the Netherlands and 
Germany. In the Netherlands, Rijksdriehoek coordinates (EPSG19914) are 
commonly used, whereas in Germany one of the Gauss-Kruger projections should 
be used. The grid_mappings indicated below are my best guess and I know that 
oblique_stereographic is not a valid mapping name (and I'm not sure whether 
I can just replace it by accepted name stereographic). Anyway, since the 
model results will be used by both Dutch and German governmental institutes 
both coordinate systems would be appropriate on the data file. However, I 
can only refer to either the Dutch or the German coordinates using the 
coordinates attribute of the quantities (x_sea_water_velocity, 
y_sea_water_velocity and sea_surface_height). Furthermore, there is no 
relation between the grid_mapping EPSG19914 and the auxiliary coordinate 
variables zgrid_x_nl, zgrid_y_nl except for the order in which the 
quantities are specified (similar for EPSG16362 and zgrid_x_de, zgrid_y_de). 
If the visualisation program were to scan for auxiliary coordinate variables 
with compatible dimensions, it could mix them up. It would be preferable if 
the grid_mappings would refer to the auxiliary coordinate variables, or vice 

 Layer = 5 ;
 M = 89;
 N = 236;
 TIME = UNLIMITED ; (6 currently)

 double TIME(TIME);
   TIME:units = "seconds since 2006-08-05 00:00:00"
 float velocity_x(TIME,Layer,M,N);
   velocity_x:long_name = "velocity, x-component" ;
   velocity_x:units = "M/S" ;
   velocity_x:standard_name = "x_sea_water_velocity" ;
   velocity_x:coordinates = "zgrid_y_nl zgrid_x_nl" ;
 float velocity_y(TIME,Layer,M,N);
   velocity_y:long_name = "velocity, y-component" ;
   velocity_y:units = "M/S" ;
   velocity_y:standard_name = "y_sea_water_velocity" ;
   velocity_y:coordinates = "zgrid_y_nl zgrid_x_nl" ;
 float waterlevel(TIME,M,N);
   waterlevel:long_name = "water level" ;
   waterlevel:units = "M" ;
   waterlevel:standard_name = "sea_surface_height" ;
   waterlevel:positive = "up" ;
   waterlevel:coordinates = "zgrid_y_nl zgrid_x_nl";
 int EPSG19914; // Dutch Rijksdriehoek
    EPSG19914:grid_mapping_name = "oblique_stereographic"; // not valid
    EPSG19914:longitude_of_projection_origin = 5.38763;
    EPSG19914:latitude_of_projection_origin = 52.15617;
    EPSG19914:scale_factor_at_projection_origin = 0.9999079;
    EPSG19914:false_easting = 155000;
    EPSG19914:false_northing = 463000;
 double zgrid_x_nl(M,N);
   zgrid_x_nl:long_name = "grid cell centres, x-coordinate, EPSG19914" ;
   zgrid_x_nl:units = "M" ;
   zgrid_x_nl:standard_name = "projection_x_coordinate" ;
 double zgrid_y_nl(M,N);
   zgrid_y_nl:long_name = "grid cell centres, y-coordinate, EPSG19914" ;
   zgrid_y_nl:units = "M" ;
   zgrid_y_nl:standard_name = "projection_y_coordinate" ;
 int EPSG16362; // German Gauss-Kruger CM 6E, zone 2N
    EPSG16362:grid_mapping_name = "transverse_mercator";
    EPSG16362:longitude_of_central_meridian = 6;
    EPSG16362:latitude_of_projection_origin = 0;
    EPSG16362:scale_factor_at_central_meridian = 1;
    EPSG16362:false_easting = 500000;
    EPSG16362:false_northing = 0;
 double zgrid_x_de(M,N);
   zgrid_x_de:long_name = "grid cell centres, x-coordinate, EPSG16362" ;
   zgrid_x_de:units = "M" ;
   zgrid_x_de:standard_name = "projection_x_coordinate" ;
 double zgrid_y_de(M,N);
   zgrid_y_de:long_name = "grid cell centres, y-coordinate, EPSG16362" ;
   zgrid_y_de:units = "M" ;
   zgrid_y_de:standard_name = "projection_y_coordinate" ;
 double z_lat(M,N);
   z_lat:long_name = "grid cell centres, latitude coordinate, WGS84" ;
   z_lat:units = "degrees_north" ;
   z_lat:standard_name = "latitude" ;
 double z_lon(M,N);
   z_lon:long_name = "grid cell centres, longitude coordinate, WGS84" ;
   z_lon:units = "degrees_east" ;
   z_lon:standard_name = "longitude" ;

By the way should x_sea_water_velocity and y_sea_water_velocity be velocity 
components in lat, lon directions or projection_x_coordinate and 
projection_y_coordinate directions? I guess the former, if so, I would 
suggest renaming the components to east_sea_water_velocity and 

Best regards,


More information about the CF-metadata mailing list