⇐ ⇒

[CF-metadata] X and Y projection coordinate (center vs corner)

From: Thomas Lavergne <thomasl>
Date: Mon, 26 Jan 2009 17:03:35 +0000

Hi,

I apologize if this was discussed already but I did not find it explicitly in the archive nor in the
standard document.

I have datasets mapped in a polar stereographic projection. My file structure is thus something like:

dimensions:
         xc = 119 ;
         yc = 177 ;
variables:
         int Polar_Stereographic_Grid ;
                 Polar_Stereographic_Grid:grid_mapping_name = "polar_stereographic" ;
                 Polar_Stereographic_Grid:straight_vertical_longitude_from_pole = -45.f ;
                 Polar_Stereographic_Grid:latitude_of_projection_origin = 90.f ;
                 Polar_Stereographic_Grid:standard_parallel = 70.f ;
                 Polar_Stereographic_Grid:false_easting = 0.f ;
                 Polar_Stereographic_Grid:false_northing = 0.f ;
                 Polar_Stereographic_Grid:earth_shape = "elliptical" ;
                 Polar_Stereographic_Grid:proj4_string = "+proj=stere +a=6378273 +b=6356889.44891
+lat_0=90 +lat_ts=70 +lon_0=-45" ;
         double xc(xc) ;
                 xc:axis = "X" ;
                 xc:units = "km" ;
                 xc:long_name = "x coordinate of projection (eastings)" ;
                 xc:standard_name = "projection_x_coordinate" ;
                 xc:grid_spacing = "62.50 km" ;
         double yc(yc) ;
                 yc:axis = "Y" ;
                 yc:units = "km" ;
                 yc:long_name = "y coordinate of projection (northings)" ;
                 yc:standard_name = "projection_y_coordinate" ;
                 yc:grid_spacing = "62.50 km" ;
         float lon(yc, xc) ;
                 lon:long_name = "longitude coordinate" ;
                 lon:standard_name = "longitude" ;
                 lon:units = "degrees_east" ;
                 lon:_FillValue = -9999.f ;
                 lon:grid_mapping = "Polar_Stereographic_Grid" ;
                 lon:coordinates = "yc xc" ;
         float lat(yc, xc) ;
                 lat:long_name = "latitude coordinate" ;
                 lat:standard_name = "latitude" ;
                 lat:units = "degrees_north" ;
                 lat:_FillValue = -9999.f ;
                 lat:grid_mapping = "Polar_Stereographic_Grid" ;
                 lat:coordinates = "yc xc" ;

And my xc and yc 1D datasets are filled with the grid coordinates corresponding to the values in lat
and lon dataset.

My issue is that I try to feed such a file into an application. The latter seems to unilaterally
translate the values in xc and yc as the coordinates of one of the _corners_ of each cell while I
originally entered the coordinates of the _center_ of each grid cell. All my isolines result shifted
by half a cell size in both X and Y directions.

I know I should maybe use the lat and lon boundaries
(http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.4/cf-conventions.html#cell-boundaries) but I do
not think it will help my visualization software in handling my file.

Is it written anywhere in CF what the content of the projection_x&y_coordinate should be (center vs
corner)? Are there standardized ways to tell the application reading my file that I am giving it the
center of the grid cell?

Thank you if you can help me clarify this. Do not hesitate to point me to archived discussions if
they exist...

Cheers,
Thomas
Received on Mon Jan 26 2009 - 10:03:35 GMT

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

⇐ ⇒