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.
NOTE: The cf-satellite
mailing list is no longer active. The list archives are made available for historical reasons.
On 5/26/2010 2:25 PM, Ken Knapp wrote:
Raw satellite data are generally stored as integers (DN=digital numbers) that are then 1. converted to radiances linearly (or sometimes non-linearly) that can then be2. converted to brightness temperatures.With steps that are nonlinear, the scale factor offset doesn't work. If a coefficient is tweaked/corrected, then the entire variable would need to be rewritten.Satellite data often use lookup tables to more easily and quickly convert from DN to whatever (radiance/temperature). Updates would then be made to calibration tables, rather than equations.So I would propose something like the following CDL where variable /image/ has range from 0-255 and its attribute /lookup/ means that the table to convert to meaningful units is /table_1/dimensions: lat = 100 lon = 100 num_bins = 256 int image(lat,lon) image:long_name = "GOES Water vapor channel" image:units = "digital number" image:lookup = "table_1" image:valid_range = 0, 255 float table_1(num_bins) table_1:long_name = "Brightness temperature" table_1:units = "Kelvin"Thoughts? -Ken
Hi Ken:This seems to me to be a reasonable idea. Also applicable beyond satellite data.
Some details in above example: Seems like this could be byte image(lat,lon); (always nice to reduce file size by 4x).Netcdf-3 has a convention that one can interpret a byte as unsigned by adding the "_Unsigned" attribute:
byte image(lat,lon); image:_Unsigned = "true";Then you dont need the valid_range attribute. Also new CF attributes can (should?) be prefixed by "CF:", so we have:
byte image(lat,lon) image:long_name = "GOES Water vapor channel"; image:units = "digital number"; image:CF\:lookup = "table_1"; image:_Unsigned = "true";Where the "\" is needed just in the CDL (the actual attribute name is "CF:lookup".
Also. I guess you are suggesting that once the lookup is applied, one should use the "units" from the lookup table?
cf-satellite
archives: