⇐ ⇒

[CF-metadata] axis attribute - curvilinear cartesian coordinates case

From: Bert Jagers <Bert.Jagers>
Date: Thu, 23 Nov 2006 09:35:27 +0100

Dear all,

Richard Gorman wrote:

> On 23/11/2006 8:58 a.m., Jonathan Gregory wrote:
>> Right. I agree with that, in my alternative argument of today i.e. X and
>> Y
>> are useful to identify the horizontal coords. If X and Y are attached to
>> 1D coordinate variables, then any 2D auxiliary coordinate variable which
>> has those dimensions must be in the horizontal. That is a bit more work,
>> but
>> it seems more natural to me that X and Y should belong with 1D axes.
>>
> Agreed, identifying 1D coordinate variables is where the axis attribute is
> useful. I'm not sure either way on the merits of axis attributes for 2D
> coordinate variables.

Is there really that much of a difference between 1D coordinate variables
and 2D coordinate variables?

Below I have modified Simon Wood's example and stripped it as much as
possible of visible clues as to what each coordinate variable represents
without confusing myself. Furthermore, I have changed from global
latitude/longitude coordinates to a local coordinate system since everybody
seems to agree that latitude and longitude can be determined from standard
names and/or units. The document "NetCDF Climate and Forcast (CF) Metadata
Conventions. Version 1.0, 28 October 2003"
http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html (Chapter 5)
recommends that latitude and longitude should always be specified using the
coordinates attribute. However, for grids that are already curvilinear in a
local cartesian coordinate system, I am not sure how to deal with both
cartesian auxiliary coordinates and global latitude/longitude auxiliary
coordinates. Furthermore I am not yet able to convert to latitude/longitude
in our model output since our model does not require the characteristics of
the cartesian projection to be known, so I am not able to specify
latitude/longitude allways.

case 1: 1D coordinate variables

dimensions:
   time = 1;
   m = 5008; n = 5536;

variables:
   // coordinate variables
   float time(time);

   float m(m);
         m:standard_name = "projection_x_coordinate";
         m:units = "km";

   float n(n);
         n:standard_name = "projection_y_coordinate";
         n:units = "km";

   // observation data
   float sst(time, n, m);
         sst:standard_name = "sea_surface_temperature";
         sst:coordinates = "n m";
         ...

If I get naming conventions right, in this case m and n are coordinate
variables. I'm not sure whether it is allowed to refer to them also as
auxiliary coordinate variables using the coordinates attribute. That m
corresponds to x coordinate and n corresponds to y coordinate can be
determined from their standard_names and probably also from order of indices
(COARDS convention) and the order of names in the coordinate attributes (CF
convention).

case 2: 2D coordinate variables

dimensions:
   time = 1;
   m = 5008; n = 5536;

variables:
   // coordinate variables
   float time(time);

   float coord1(n, m);
         coord1:standard_name = "projection_x_coordinate";
         coord1:units = "km";

   float coord2(n, m);
         coord2:standard_name = "projection_y_coordinate";
         coord2:units = "km";

   // observation data
   float sst(time, n, m);
         sst:standard_name = "sea_surface_temperature";
         sst:coordinates = "coord2 coord1";
         ...

In this case coord1 and coord2 are auxiliary coordinate variables. Normal
coordinate variables are not available. That coord1 corresponds to x
coordinate and coord2 corresponds to y coordinate can be determined from
their standard_names and from the order of their names in the coordinate
attributes (CF convention). As I see it, we have less clues here than in the
case of 1D coordinate variables. So, why do we need to have an additional
attribute axis = "X" in the 1D case (except for backward compatibility or
compatibility among various conventions)?

Best regards,

Bert
Received on Thu Nov 23 2006 - 01:35:27 GMT

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

⇐ ⇒