Re: Coordinate Systems Proposals

Gary Granger (granger@stout.atd.ucar.EDU)
Wed, 16 Jul 1997 02:15:06 -0600

Across the ether fly the words of John Sheldon:
> Hi Brian-
> 
> > question exists in the simple case of rectilinear grids, e.g., in the case 
> >     dimensions:
> > 	lat = 5;
> > 	lon = 6;
> >     variables:
> > 	float temp(lat,lon);
> > 	float lat(lat);
> > 	float lon(lon);
> > 
> > You still don't know that lat(lat) contains the latitude values if there
> > are no name conventions.  Following COARDS you know that lat(lat) contains
> > the latitude values if it has units of e.g., degrees_north.  The situation
> > has not changed just because the grid is no longer rectilinear.  Basically
> > the interpretation of the coordinates is a separate issue from how to
> > identify which variables are the coordinates.
> 
> The older, rectilinear case really is unambiguous, at least in terms of
> getting some nominal coordinates for the data points.  The data array
> is dimensioned (lat,lon), so it's obvious which axis the coordinate
> variables "lat" and "lon" apply to.

Here and in a follow-up email you suggest that the ordering of the
dimensions is significant, such that the ordering is always (x,y,z).  As
far as I know this is not a convention, and so the rectilinear case you
mention (or any case with coordinate variables of any dimension) is
actually ambiguous without such an assumption.  I don't think making the
dimension ordering a convention would be a good idea.  For example, we
store grid data (time, z, y, x) so that it's faster to read slices at a
particular altitude, our most common access.  Few would like to lose such
efficiency just to follow a convention.

I think Steve's suggestions for "coordinate_type" or similar attributes is
more general and more functional.  The hard but nonetheless necessary part
will be defining the set of recognized coordinate types and qualifiers.
(Perhaps these can become part of the udunits package?)  For basic
visualization needs like yours, a coordinate variable could have fallback
types like "x", "y", or "z", in case an application cannot or does not need
to handle more complicated pre-defined types.  It will be the x, y, or z
attribute of a coordinate variable which indicates X, Y, or Z axis of a 3-D
plot, and not the ordering of the dimensions.

gary