# Re: Coordinate Systems Proposals

Brian Eaton (eaton@merlin.cgd.ucar.EDU)
Mon, 14 Jul 1997 17:20:14 -0600 (MDT)

Hi John,

> > > >     dimensions:
> > > > 	i = 5;
> > > > 	j = 6;
> > > >
> > > >     variables:
> > > > 	float temp(i,j);
> > > > 	    temp:coordinates = "lat, lon";
> > > > 	float lat(i,j);
> > > > 	float lon(i,j);
> > >
> > > there is nothing to tell an application whether the contents of "lat"
> > > should be used as coordinates along the i-dimension of "temp" or the
> > > j-dimension.
> >
> >     As far as I can see, there is no reason "to tell an application
> > whether the contents of `lat' should be used as coordinates along
> > the i-dimension of `temp' or the j-dimension".  Indeed, I'm not even
> > sure what you mean by that statement.
>
> Let me give an example.  We have a netCDF-reading module for the Iris
> Explorer package.  Right now it will read in an array of data, plus
> vectors containing the coordinates of each axis of the array.  These
> are called "perimeter coordinates" in Explorer.  However, Explorer can
> treat things much more generally using "curvilinear coordinates", where
> the X, Y,... positions of each data point are also stored in
> 3-dimensional arrays.  The data points can then be rendered in 3-D
> space in their correct location (which is no longer necessarily a
> regular grid).
>
> So...if we were to upgrade our Explorer module to handle the example
> described above (ie, "curvilinear coordinates"), what should we store
> in the X-array, and in the Y-array?  That is, suppose we want to plot
> "temp(3,4)" as a color coded ball in a 2-D visualization.  If
> "lat(3,4)=46" and "lon(3,4)=19" how do we know which one is latitude
> (or "Y") and which one is longitude (or "X")?  Are "lat" and "lon"
> keywords?

Your question is really about how to interpret the coordinates.  The same
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.

Brian Eaton
NCAR, CGD.