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.

Re: [cf-satellite] band dimension...

NOTE: The cf-satellite mailing list is no longer active. The list archives are made available for historical reasons.

Tom Whittaker wrote:
> On Tue, Jun 22, 2010 at 1:42 PM, Tom Rink <rink@xxxxxxxxxxxxx> wrote:
> >
> > For single band files, will it be necessary to dimension the data array
> > like Data(band, y, x) =A0where band is length=3D1, or is there some other
> > metadata construct which would allow a band=3D1 dimension in the
> > file, but allow Data(y,x), with other band indexed variables like
> > wavelength(band)?
> 
> My option:  since the application will have to recognize the other
> metadata in order to ascertain that this file has "image data", then
> it probably could be smart enough to realize that if the "band"
> dimension is not part of the shape of the data, that it can (and
> should) default to "1".

The CF Conventions provide for this, with the concept of s "scalar
coordinate variable", defined as:

    A scalar variable that contains coordinate data. Functionally
    equivalent to either a size one coordinate variable or a size one
    auxiliary coordinate variable. 

In section 2.4, this is further explained:

    Dimensions may be of any size, including unity.  When a single value
    of some coordinate applies to all the values in a variable, the
    recommended means of attaching this information to the variable is
    by use of a dimension of size unity with a one-element coordinate
    variable. It is also acceptable to use a scalar coordinate variable
    which eliminates the need for an associated size one dimension in
    the data variable.  The advantage of using a coordinate variable is
    that all its attributes can be used to describe the single-valued
    quantity, including boundaries.  For example, a variable containing
    data for temperature at 1.5 m above the ground has a single-valued
    coordinate supplying a height of 1.5 m, and a time-mean quantity has
    a single-valued time coordinate with an associated boundary variable
    to record the start and end of the averaging period.

So you could have Data(y,x), a scalar "band" variable, and connnect it
with the Data variable through the CF "coordinates" attribute, declare
the bounds of the band, etc.

    float Data (y, x);
      Data:coordinates = "band y x";
    double band;
      band:bounds = "band_bounds";
    double band_bounds(2);
      band_bounds:units = ...;

--Russ



  • 2010 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the cf-satellite archives: