wiki:SatelliteData

Version 8 (modified by Ken.Roberts, 9 years ago) (diff)

--

Satellite Swath Conventions

As a complement to the CF Satellite mailing list, this page will serve as a means of documenting the consensus on issues related to satellite swath data representation, including example CDL output.

Prototype Swath File Examples

Example 1

An example of a multi-banded image structure that contains navigation on a point-by-point basis, and provides for linear calibration (provided by Tom Whittaker, Tom Rink, and Kaba Bah).

dimensions:
    x = 5304;
    y = 2438;
    band = 16;

variables:
    float lat(y, x);
        lat:standard_name = "latitude";
        lat:units = "degrees_north";
        lat:valid_range = -90.f, 90.f;

    float lon(y, x) ;
        lon:standard_name = "longitude";
        lon:units = "degrees_east";
        lon:valid_range = -180.f, 180.f;

    int band(band);

    double time;
        time:long_name = "Nominal time of image";
        time:units="s since 1990-1-1 0:0:0";

    string bandname(band);
        bandname:standard_name = "band_name";

    float offset(band);
        offset:standard_name="linear_calibration_offset";

    float scale(band);
        scale:standard_name="linear_calibration_scale_factor";

    float wavelength(band);
        wavelength:standard_name="radiation_wavelength";
        wavelength:units="micron";

    string units(band);
        units:standard_name="band_units";

    short ImageData(band, y, x);
        ImageData:coordinates = "band lat lon";
        ImageData:valid_min = 1s;
        ImageData:_FillValue = 0s;
        ImageData:missing_value = 0s;
  • For look-up table calibration (as opposed to "linear_calibration"), include the following:
        float lookup(band, 256);
            lookup:standard_name="calibration_lookup_table";
    

Example 2

This example is a modified version of Example 1 above and is designed to incorporate the feed back provided via the CF Satellite mailing list. Changes include the addition of a 1-D coordinate boundary variable for wavelength and the definition of scale_factor and add_offset per band as a 1-D variable attribute.

dimensions:
    x = 5304;
    y = 2438;
    band = 16;

variables:
    float lat(x, y);
        lat:standard_name = "latitude";
        lat:units = "degrees_north";
        lat:valid_range = -90.f, 90.f;

    float lon(x, y) ;
        lon:standard_name = "longitude";
        lon:units = "degrees_east";
        lon:valid_range = -180.f, 180.f;

    double time;
        time:long_name = "Nominal time of image";
        time:units="s since 1990-1-1 0:0:0";

    int band(band);
        band:long_name = "satellite band number";

    string bandname(band);
        bandname:standard_name = "band_name";

    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";

    short ImageData(time, band, x, y);
        ImageData:coordinates = "band lat lon time wavelength";
        ImageData:valid_min = 1s;
        ImageData:_FillValue = 0s;
        ImageData:missing_value = 0s;
	ImageData:add_offset = 34.02f, 35.02f, 36.02f, 37.02f, 38.02f, 39.02f, 40.02f, 41.02f,
          42.02f, 43.02f, 44.02f, 45.02f, 46.02f, 47.02f, 48.02f, 49.02f;
        ImageData:scale_factor = 1.54f, 1.64f, 1.74f, 1.84f, 1.94f, 2.04f, 2.14f, 2.24f,
          2.34f, 2.44f, 2.54f, 2.64f, 2.74f, 2.84f, 2.94f, 3.04f;
  • Bands with different resolutions may be stored in separate files (preferred for data from different satellites) or in the same file using an additional set of dimensions and coordinate variables.
  • Data with different units will be stored in separate variables.
  • If a specific projection is defined, calculated values for latitude and longitude are optional.

Attachments (1)

Download all attachments as: .zip