Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
> > 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: