⇐ ⇒

[CF-metadata] curvilinear cartesian coordinates case

From: Brian Eaton <eaton>
Date: Mon, 27 Nov 2006 14:27:08 -0700

Hi Bert,

Thanks for the clarification. We had not envisioned the case of the
projection coordinates being represented by auxiliary coordinate variables.
To support this use case I agree with your recommendation to move the
grid_mapping attribute to the appropriate auxiliary coordinate variables.
If this were done then the coordinates attribute of data variables can
point to all applicable coordinates. For example:

 float waterlevel(TIME,M,N);
   waterlevel:long_name = "water level" ;
   waterlevel:units = "M" ;
   waterlevel:standard_name = "sea_surface_height" ;
   waterlevel:positive = "up" ;
   waterlevel:coordinates = "z_lat z_lon zgrid_y_nl zgrid_x_nl zgrid_y_de zgrid_x_de";

and the projection coordinates are explicity associated with the
appropriate mapping, for example

 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" ;
   zgrid_x_nl:grid_mapping = "EPSG19914" ;
 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" ;
   zgrid_y_nl:grid_mapping = "EPSG19914" ;
 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" ;
   zgrid_x_de:grid_mapping = "EPSG16362" ;
 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" ;
   zgrid_y_de:grid_mapping = "EPSG16362" ;

> 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
> north_sea_water_velocity.

The x/y vector components refer to some rectangular grid other than a
lat/lon grid. Since you've provided multiple projection coordinates for
the same values of the vector components I would guess that the vector
component are relative to lat/lon coordinates rather than relative to one
of the two projection coordinates. In this case the appropriate standard
names are eastward_sea_water_velocity and westward_sea_water_velocity (but
westward_sea_water_velocity is missing from the standard name table). Note
also that the names x_sea_water_velocity and y_sea_water_velocity have been
updated to sea_water_x_velocity and sea_water_y_velocity.

Brian




On Mon, Nov 27, 2006 at 08:06:58PM +0100, Bert Jagers wrote:
> 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 versa.
>
> dimensions:
> Layer = 5 ;
> M = 89;
> N = 236;
> TIME = UNLIMITED ; (6 currently)
>
> variables:
> 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
> north_sea_water_velocity.
>
> Best regards,
>
> Bert
>
> _______________________________________________
> CF-metadata mailing list
> CF-metadata at cgd.ucar.edu
> http://www.cgd.ucar.edu/mailman/listinfo/cf-metadata
Received on Mon Nov 27 2006 - 14:27:08 GMT

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

⇐ ⇒