> > From: Harvey DAVIES <hld@xxxxxxxxxxxx>
> > Subject: netCDF Conventions
> >
> > dimensions:
> > time = UNLIMITED;
> > latitude = 56;
> > longitude = 64;
> > land_point = 1100; // about 30% of 56*64
> > variables:
> > float latitude(latitude);
> > float longitude(longitude);
> > short land_index(latitude, longitude); // value of 'land_point' index
> > land_index:valid_min = 0;
> > land_index:missing_value = -1; // -1 = ocean point
> > float soil.temperature(time,land_point)
In this formulation, rather than looking up the coordinates of
soil.temperature, you start with a lat,lon grid and then you look up the
(missing or not) value of soil.temperature.
One alternate, obvious solution is:
float soil.temperature( time, land_point);
soil.temperature:coordinates = "lat lon";
float lat( land_point);
float lon( land_point);
of course then the lat, lon coord system is not connected.
so then you could try:
float soil.temperature( time, land_point)
soil.temperature:coordinates = "latidx lonidx";
short latidx(land_point);
short lonidx(land_point);
but theres no way (yet) to associate that to a nice connected coord
system like:
float lat(lat);
float lon(lon);
but you can see that lat * latidx, lon * lonidx is a good
coordinate system for soil.temperature if "*" means functional
composition. So that suggests something like:
float soil.temperature( time, land_point)
soil.temperature:coordinates = "lat*latidx lon*lonidx";
short latidx(land_point);
short lonidx(land_point);
float lat(lat);
float lon(lon);