NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
> > 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);
netcdfgroup
archives: