PIDF IMAGE DEFINITION BLOCK

UDF definitions which contain data that can be mapped onto a sphere should contain an image definition block in their PIDF especially if the mapping coordinates (laitiude and longitude) are returned as separate UDF measurements (either in the sensor or ancillary data blocks). The primary purpose of the image block is to point an application to the locations of the mapping coordinates in the UDF definition and to specify how they are defined relative to the image pixels.

A PIDF image definition block consists of a single structure which contains the image information fields. It has the generalized form:

struct Image {
   char   format = 'Entry';
   char   type = 'Entry';
   char   bin_type = 'Entry';
   string storage = "Entry";
   int    num_lat_longs = Entry;
   struct LatLongN {
       char   lat_loc = 'Entry';
       int    lat_num = Entry;
       int    lat_unit = Entry;
       string lat_def = "Entry";
       char   long_loc = 'Entry';
       int    long_num = Entry;
       int    long_unit = Entry;
       string long_def = "Entry";
   };
};
where N is a structure counter which begins at 0 and runs through the num_lat_longs less 1. The fields within the structures can be entered in any order.

Not all of the above structure fields need be present in the image defintion. Only those which are applicable to the image being defined need be included. Default values are supplied for any unspecified field.

KEYWORD: format

A flag which indicates if an image has a starting row of pixels and if so how to find it in the data. The recognized options are:

VALUE DEFINITION
P A cyclical pushbroom image with has no definite starting or stopping location. A cyclical pushbroom image is built from a single raster of pixels being "pushed" or "scanned" across a continuous viewable area as in the case of an Earth pointing raster on an orbiting satellite.
S A multi-record image with a definite start and stop scanline. These can be either pushbroom or snapshot images which are stored over multiple UDF data records. The image scanline number associated with a given UDF sensor is stored in the first ancillary data set for that sensor. Scanline 0 defines the start of an image.
O A single-record image with a definite start and stop scanline. These can be either pushbroom or snapshot images. The scanline information returned in the format S images above is not required. The first sensor set of data in the record contains the first scanline. With this definition the PIDF blocking field should be set to 1 so that the reading always begins at the start of a data record.

This is a char field which if not included in the Image structure is defaulted to a dash (-).

KEYWORD: type

The pixel depth. The recognized options are:

VALUE DEFINITION
1 Pixels are one dimensional. Pixels are scalars. Each defined UDF sensor will contain a full vertical pixel column of the image.
2 Pixels are two dimensional. Each pixel is an array of values. Each image pixel is a unique UDF sensor which returns the pixel array. Each array value represents a pixel in one of multiple image planes.

This is a char field which if not included in the Image structure is defaulted to a dash (-).

KEYWORD: bin_type

The method to use in establishing the pixel edges in the image. Pixels are considered to be rectangular in shape. The recognized options are:

VALUE DEFINITION
N Do not define the pixel edges. Each pixel is defined through it's center longitude and latitude value.
G Define the pixel edges using the available longitude and latitude data. The format of this data is given in the image storage field. This option is only used with snapshot images.
T Define the pixel edges perpendicular to the image scan direction using the available longitude and latitude data. The format of this data given in the image storage field. This option is only used with pushbroom images.

This is a char field which if not included in the Image structure is defaulted to a N.

KEYWORD: storage

A flag indicating what longititude and latitude data sets are returned within the UDF. A UDF may contain multiple sets of latitude and longitude data each of which is associated with one of 9 fixed positions within an image pixel. The defined pixel postions include: the pixel center, the four pixel corners, and the four pixel edge centers. These are shown below together with their common acronyms:

TL CT TR
CL C CR
BL CB BR
How an application maps a pixel into an image depends on what combination of (longitude, latitude) pairs are present in the UDF.

The recognized storage options are:

VALUE UDF LONGITUDE/LATITUDE DATA
CO C
CT CB, C, CT
CS CL, C, CR
SE CL, CR
TE CB, CT
V TL, TR, BL, BR
VC TL, TR, C, BL, BR

This is a char field which if not included in the Image structure is defaulted to a dash (-).

KEYWORD: num_lat_longs

The number of defined LatLong structures in the Image structure. If there are no defined LatLong structures then this field should be set to 0. This field must occur above the first LatLong structure definition. It is an int field.

KEYWORD: lat_loc

A flag indicating the UDF data class under which the latitude data is stored. The recognized options for this field are:

VALUE DEFINITION S As sensor data. A As an ancillary data set. C Derived from array index data.

This is a char field.

KEYWORD: long_loc

A flag indicating the UDF data class under which the longititude data is stored. The recognized options for this field are:

VALUE DEFINITION S As sensor data. A As an ancillary data set. C Derived from array index data.

This is a char field.

KEYWORD: lat_num

The location of the latitude data within the UDF data class indicated in lat_loc. If the data is stored within either the UDF sensor or ancillary class then this field contains the UDF sensor or UDF ancillary set number respectively. If the latitude is being returned through the array index values then this field has no meaning. When obtaining the latitude from either an ancillary data set or from the array indices the sensor number to use when retrieving the data is that of the associated pixel data.

This is a int field.

KEYWORD: long_num

The location of the longitude data within the UDF data class indicated in lat_loc. If the data is stored within either the UDF sensor or ancillary class then this field contains the UDF sensor or UDF ancillary set number respectively. If the longitude is being returned through the array index values then this field has no meaning. When obtaining the longitude from either an ancillary data set or from the array indices the sensor number to use when retrieving the data is that of the associated pixel data.

This is a int field.

KEYWORD: lat_unit

The number of the PIDF Unit structure which converts the latitude data to degrees. If the returned data is already in degrees then this should be a Unit definition which does nothing to the data.

This is a int field.

KEYWORD: long_unit

The number of the PIDF Unit structure which converts the longitude data to degrees. If the returned data is already in degrees then this should be a Unit definition which does nothing to the data.

This is a int field.

KEYWORD: lat_def

A flag indicating what pixel location the latitude defines. The locations are identical to those noted under the description of the storage field. The options for this field are:

VALUE DEFINITION TL Latitude of pixel top left-hand corner CT Latitude of pixel upper edge center. TL Latitude of pixel top right-hand corner CL Latitude of pixel left edge center. C Latitude of pixel center CL Latitude of pixel right edge center. BL Latitude of pixel bottom left-hand corner CB Latitude of pixel lower edge center. BL Latitude of pixel bottom right-hand corner

This is a string field.

KEYWORD: long_def

A flag indicating what pixel location the longitude defines. The locations are identical to those noted under the description of the storage field. The options for this field are:

VALUE DEFINITION TL Longitude of pixel top left-hand corner CT Longitude of pixel upper edge center. TL Longitude of pixel top right-hand corner CL Longitude of pixel left edge center. C Longitude of pixel center CL Longitude of pixel right edge center. BL Longitude of pixel bottom left-hand corner CB Longitude of pixel lower edge center. BL Longitude of pixel bottom right-hand corner

This is a int field.

EXAMPLES

The following is an example example of a fully functional PIDF image information block. The entries are shown within the overall PIDF definition braces which would occur only once within the PIDF file.

EXAMPLE 1

pidf v2_SAIC {
$*********************************************************************
    struct Image {
$********************IMAGING INFO*************************************
        char format = 'S';                           $$ Snapshot
        char type = '1';                             $$ 1-D capability
        int num_lat_longs = 1;                       $$ lat/long pairs
        struct LatLong0 {                            $$ lat/long def
            char lat_loc = 'S';                      $$ lat in sensor 
            int lat_num = 2;                         $$ sen number
            int lat_unit = 7;                        $$ lat unit num
            string lat_def = "C";                    $$ center lat
            char long_loc = 'S';                     $$ long in sensor
            int long_num = 1;                        $$ sen number
            int long_unit = 8;                       $$ long unit num
            string long_def = "C";                   $$ center long
        };                                           $$ end lat/long
        string storage = "C";                        $$ center only
    };
$*********************************************************************
};

&larr Previous TOC HOME Next &rarr
Scan Bin Block Unit Definition Block