NOTE: The cf-satellite
mailing list is no longer active. The list archives are made available for historical reasons.
On 8/25/2010 8:34 AM, Tom Whittaker wrote:
Hi John.... Just (finally) catching up....this seems like a good starting proposal to discuss. here are some issues from my POV: 1) "units(band)". I think if there are really different units, its probably a different variable. Do you have a concrete example where the units vary? Note also that "bands with different resolution" would also be a different variable (martin's question).We have discussed this and are inclined to agree that if the units are different, it should probably be a separate variable. So be it.2) what is the mechanism for associating the scale/offset to the imageData?The original idea was that scale/offset would be used to create physical units from data values ("calibration"). The problem we faced is that for each "band", these values would be different...but there was no mechanism to have an array of values as an attribute of a variable. Given that, we took the narrow view that the scale/offset would apply to all variables that had the associated "band". I don't really like that, but am not sure what else can be done...
attributes can be a 1D list of values. so you probably could use this mechanism if you want to work hard enough.
3) you need ImageData:coordinates = "band lat lon time"Yes.maybe even ImageData:coordinates = "band lat lon time wavelength"Pardon my lack of understanding, but for a variable shaped as, say, 'time, band, x, y', how can one have a coordinate of both 'band' and 'wavelength'?
its because a coordinate in the general sense does not have to be 1-1 with a dimension. one can have any number of coordinates per variable. in this case, if both a band number and a wavelength are useful, they can both be included.
heres an example that includes coordinate bounds for the wavelength: byte ImageData(time, band, x, y); ImageData:coordinates = "band lat lon time wavelength" int band(band); band:long_name = "satellite band number"; float wavelength(band); wavelength:bounds = "wavelength_minmax"; wavelength:long_name = "center wavelength"; wavelength:units= "m"; float wavelength_minmax(band, 2); wavelength_minmax:long_name = "wavelength min, max"; wavelength_minmax:units= "m";
4) what is the meaning of band(band) ??It was my naive interpretation from CF grid conventions of a "coordinate variable" -- that's all....
im just not sure if its actually needed, if it just copies the dimension indices. if you need to use 1 offsets, or some other naming convention, then it would be useful.
cf-satellite
archives: