The DIRSIG model includes a sophisticated sensor model that allows the user to simulate conventional framing array sensors such as film or CCD cameras, and more complex scanning systems such as line and pushbroom scanners. This section describes how to configure both geometric and optical characteristics of these various sensors.
The PLATFORM section of the configuration file is the most complex of all sections. Many of the subsections can have various formats and may contain additional sub-sections. In an effort to minimize the confusion an overview of the PLATFORM section will be presented and then the section from the example configuration file will be discussed. More complex platform configurations will then be presented as additional examples. Below is the PLATFORM section from the example.cfg file:
Example 9-1. Platform configuration
PLATFORM {
INSTRUMENT {
NAME = Generic Camera
TYPE = FRAMING_ARRAY
FOCAL_LENGTH = 100.0
BAND_LIST {
BAND {
NAME = SPOT (pan visible)
X_PIXELS = 256
Y_PIXELS = 256
RESPONSE_FILENAME = spot_pan.rsp
IMAGE_FILENAME = spot_pan.img
}
BAND {
NAME = LWIR
X_PIXELS = 256
Y_PIXELS = 256
MINIMUM_WAVELENGTH = 8.0
MAXIMUM_WAVELENGTH = 12.0
DELTA_WAVELENGTH = 0.25
IMAGE_FILENAME = lwir.img
}
}
}
POSITION {
PLATFORM_LOCATION = 0.0, 0.0, 1000.0
ELEVATION_ANGLE = 90.0
AZIMUTH_ANGLE = 90.0
}
}
Table 9-1. The list of variables that can be set in the PLATFORM section
| Variable Name | Usage | Description |
|---|---|---|
| NAME | Optional | The name of the platform carrying the sensor package |
| POSITION | Required | Sub-section describing the position of the platform |
| INSTRUMENT | Required | Sub-section describing the geometric/optical properties of the sensor |
The INSTRUMENT section describes a complete sensor package. An instrument may contain multiple detector focal planes, however, each of them share the same forward optics. In the case of scanning instruments, each focal plane is projected by the same scan mirror and therefore share the same scan rate. A summary of the variables that can be set in the INSTRUMENT section are listed and described in Table 9-2.
Table 9-2. The list of variables that can be set in the INSTRUMENT section
| Variable Name | Usage | Description |
|---|---|---|
| NAME | Optional | Name of this instrument |
| TYPE | Required | The type of focal planes in the instrument |
| FOCAL_LENGTH | Required | Effective focal length of the forward optics [mm] |
| SCAN_RATE | Scanners Only | Scan rate for scanning instruments [scans/second] |
| DUTY_CYCLE | Line-Scanner Only | Fraction of total scan utilized for image collection |
| BAND_LIST | Required | List of the geometric/optical focal planes in the instrument |
The BAND_LIST section is where the geometric and optical properties of the sensor's various focal planes are described. The DIRSIG sensor model lets you define up to 256 geometrically and/or spectrally unique bandpass regions which are referred to as sensor bands. Each sensor band includes a description of its geometric location and spectral sensitivity allowing the user to simulate spectrally mis-registered bands. Although it will be discussed later, it should be noted that a spectrometer counts as only one sensor band since spectrometer channels when described are inherently spatially registered.
The BAND_LIST section consists of a list of BAND entries to describe each sensor band in the instrument. Since many bands may share similar attributes, there is also a COMMON_BAND section which allows the user to specify attributes that will be applied to all subsequent BAND sections so that this information does not need to be repeated. The BAND and COMMON_BAND band sections have identical variable sets which are described in Table 9-3.
Table 9-3. The list of variables that can be set in the COMMON_BAND and BAND sections.
| Variable Name | Description |
|---|---|
| NAME | Name of this band |
| MINIMUM_WAVELENGTH | The minimum wavelength of this spectral band [microns] |
| MAXIMUM_WAVELENGTH | The maximum wavelength of this spectral band [microns] |
| DELTA_WAVELENGTH | The delta wavelength used to sample this spectral band [microns] |
| MINIMUM_FREQUENCY | The minimum frequency of this spectral band [wavenumbers] |
| MAXIMUM_FREQUENCY | The maximum frequency of this spectral band [wavenumbers] |
| DELTA_FREQUENCY | The delta frequency used to sample this spectral band [wavenumbers] |
| X_PIXELS | The number of X pixels in the image (FRAMING_ARRAY type) |
| Y_PIXELS | The number of Y pixels in the image (FRAMING_ARRAY type) |
| X_LENGTH | The X length of the focal plane (FRAMING_ARRAY type) [microns] |
| Y_LENGTH | The Y length of the focal plane (FRAMING_ARRAY type) [microns] |
| PIXEL_SIZE | The length and width of a pixel on the focal plane [microns] |
| LINES_PER_SCAN | Number of lines collected per scan (SCANNER types) |
| OFFSET | Offset of this band from center (SCANNER types) [units vary] |
| LINE_SPACING | Spacing between lines (SCANNER types) [microns] |
| PIXEL_SPACING | Spacing between pixel (SCANNER types) [microns] |
| OVERSAMPLE | Amount to oversample this band image (N X N) |
| IMAGE_FILENAME | Name of the output image file |
| RESPONSE_FILENAME | Name of the spectral response file |
| PSF_FILENAME | Name of the spectral point-spread function file |
Common to each BAND section (regardless of the instrument type) is the band name, sensor response, spectral bandpass and output image.
The NAME variable allows the user to assign a name to each band for documentation purposes. A default name is generated if the user does set this variable.
The IMAGE_FILENAME variable can be used to specify the name of the output image file generated for this band. The format of this file depends on the type of sensor response assigned to the band. If the user does not set this variable, a default filename will be generated.
The RESPONSE_FILENAME variable indicates the name of a sensor response file to be used with this band. This sensor response file will be searched for in the RESPONSE_PATH directory from the PATHS section. The details of the Section 34.15 are discussed in the "Support Application Manuals" part of this manual. The important thing to note at this time is that the sensor response file contains a default spectral bandpass to be used with this band. This bandpass will be used if the user does not change the bandpass by setting the WAVELENGTH or FREQUENCY variables for the band. Note, that setting these variables will not change the spectral response of the sensor band, only the spectral values to that which the response will be applied.
The OVERSAMPLE variable provides a simple way for the user to oversample an image simulation. If the user sets the OVERSAMPLE variable to 2 each focal plane detector will be oversampled 2 x 2. This result in an image that is 2x larger in each dimension. This option is useful for producing oversampled images that can be spatial degraded by incorporating detectors point spread functions (PSFs). The OVERSAMPLE variable is a per-band attribute. Each band can be assigned a different oversample factor.
The PSF_FILENAME variable indicates the name of a spectral point-spread function file to be used with this band. This file contains a description of how to oversample each detector and weight the sub-detector samples as part of a spatial integration process. The use of a point-spread function allows the user to produce DIRSIG products with mixed pixels.
The DIRSIG distribution CDROM comes with a few sensor response functions for some widely used sensors. These files can be found in the default response directory ($DIRSIG_HOME/lib/data/responses). Table 9-4 lists the distributed files:
Table 9-4. List of sensor response files distributed with DIRSIG
| Filename | Description |
|---|---|
| aviris.rsp | Nominal channel responses for high-altitude AVIRIS |
| hydice.rsp | Nominal channel responses for HYDICE at 10,000 ft flight altitude |
| landsatN.rsp | Series of files (1 through 6) for each LANDSAT TM band |
| m7_rN.rsp | Series of files (1 through 15) for each M7 reflective region band |
| m7_tN.rsp | Series of files (1 through 6) for each M7 thermal region band |
| sebass_lwir.rsp | Nominal channel responses for SEBASS LWIR spectrometer |
| spot_pan.rsp | Nominal response for SPOT panchromatic band |
| rgb_red.rsp | A red channel for an RGB image |
| rgb_green.rsp | A green channel for an RGB image |
| rgb_blue.rsp | a blue channel for an RGB image |
| cir_red.rsp | A red channel for a Color IR image |
| cir_green.rsp | A green channel for a Color IR image |
| cir_blue.rsp | A blue channel for a Color IR image |
| vis_broad.rsp | A generic 0.4 - 0.7 micron integrated broadband sensor |
| nir_broad.rsp | A generic 0.7 - 1.0 micron integrated broadband sensor |
| swir_broad.rsp | A generic 1.0 - 2.5 micron integrated broadband sensor |
| mwir_broad.rsp | A generic 3.0 - 5.0 micron integrated broadband sensor |
| lwir_broad.rsp | A generic 8.0 - 14.0 micron integrated broadband sensor |
These files are meant to serve as useful starting points for modeling these various sensors. The spectral responses of these instruments may degrade over time, vary with flight altitude, or change during off-season refurbishing efforts and should not be interpreted as the absolute measurements.
The first band defined in our example file is included below. This band utilizes one of the SPOT sensor response files (which is found in the default sensor response directory) and generates an output image file named spot_pan.img. Note that the response file contains only the spectral response function and does not change the instrument TYPE to a PUSHBROOM_SCANNER (the SPOT sensor is a space-based pushbroom scanner).
Example 9-2. SPOT band configuration
BAND {
NAME = SPOT (pan visible)
RESPONSE_FILENAME = spot_pan.rsp
IMAGE_FILENAME = spot_pan.img
}
If the user does not specify a sensor response file or wishes to change the spectral bandpass and spectral resolution set in the sensor response file, then the WAVELENGTH or FREQUENCY variables are used. The user can choose to specify the sensor bandpass using either wavelength of frequency units (but not both). The spectral units are chosen by specifying the bandpass using either the WAVELENGTH or FREQUENCY set of variables. In either case, the DELTA values dictate the spectral oversampling that will be utilized in the radiometric computations performed for this band. The user's selection of this resolution will be strongly dependent on how the radiances for this band are output.
For instance, in our example file the bandpass for our second band was from 8.0 - 12.5 microns (on 0.25 micron spectral centers):
Example 9-3. LWIR configuration (wavelength)
BAND {
NAME = LWIR
MINIMUM_WAVELENGTH = 8.0
MAXIMUM_WAVELENGTH = 12.5
DELTA_WAVELENGTH = 0.25
IMAGE_FILENAME = lwir.img
}
In contrast, the user may wish to specify this same spectral bandpass in frequency units:
Example 9-4. LWIR configuration (frequency)
BAND {
NAME = LWIR
MINIMUM_FREQUENCY = 800.0
MAXIMUM_FREQUENCY = 1250.0
DELTA_FREQUENCY = 25.0
IMAGE_FILENAME = lwir.img
}
The difference in these two definitions will be the location of the spectral samples used within this band. In the first case, the sub-band radiometric calculations will be done on constant wavelength centers and in the latter case the calculations will be done on constant frequency centers.
For the second band, the RESPONSE_FILENAME variable was not set. In this case, the response function defaults to an integrated band with an ideal (unity) response over the specified bandpass. The use of the ideal response function can be explicitly specified by setting the RESPONSE_FILENAME variable to the keyword IDEAL:
Example 9-5. LWIR configuration with response file
BAND {
NAME = LWIR
MINIMUM_WAVELENGTH = 8.0
MAXIMUM_WAVELENGTH = 12.5
DELTA_WAVELENGTH = 0.25
RESPONSE_FILENAME = IDEAL
IMAGE_FILENAME = lwir.img
}
Finally, the RESPONSE_FILENAME variable can also be assigned the keyword SPECTRAL which will apply an ideal response function, and output the image as a spectral radiance cube containing values for each spectral point in the specified bandpass.
The user should note that both the IDEAL and SPECTRAL options can only be used if the spectral bandpass (using the WAVELENGTH or FREQUENCY variables) was set for the specified band.
The framing array sensor is used to model conventional 2D array sensors such as film or CCD cameras. This type of sensor is selected by setting the sensor TYPE to FRAMING_ARRAY in the INSTRUMENT section. Figure 9-9 illustrates the focal plane variables pertaining to a FRAMING_ARRAY sensor and Table 9-5 summarizes these variables and their usage requirements.
Table 9-5. The variables used to describe a FRAMING_ARRAY instrument.
| Variable Name | Status | Units | Default | Description |
|---|---|---|---|---|
| X_PIXELS | Required | Number of pixel elements in X dimension | ||
| Y_PIXELS | Required | Number of pixel elements in Y dimension | ||
| X_LENGTH | Optional | Microns | 24748.7 | Length of array in X dimension |
| Y_LENGTH | Optional | Microns | 24748.7 | Length of array in Y dimension |
| PIXEL_SIZE | Optional | Microns | Length and Width of a pixel element on the array |
The default size of a FRAMING_ARRAY focal plane is roughly the size of a square 35 mm file frame. If the user wishes to change this size, there are two possible options:
Specify the size of an individual pixel element on the array using the PIXEL_SIZE.
Specify the size of the entire array using the X_LENGTH and Y_LENGTH variables.
When the focal plane is initialized, DIRSIG will check if a value was assigned to the PIXEL_SIZE variable. If so, the size of the entire focal plane will be computed using the individual pixel size, and the number of pixels in the X and Y dimensions of the focal plane. Otherwise, the pixel size is computed using either the supplied or default size of the entire focal plane. To demonstrate different ways of configuring a FRAMING_ARRAY type sensor, the following two BAND sections are provided that effectively specify the same focal plane using different approaches.
Example 9-6. Framing array configuration
BAND_LIST {
BAND {
X_PIXELS = 420
Y_PIXELS = 300
PIXEL_SIZE = 14.0
}
BAND {
X_PIXELS = 420
Y_PIXELS = 300
X_LENGTH = 5880.0
Y_LENGTH = 4200.0
}
}
Currently the X_PIXELS and Y_PIXELS variables must always be assigned a value, although future releases may compute these values provided that the total size and pixel size are both supplied.
The sensor sub model also supports line scanning geometries with a single or multiple lines per scan. For this instrument type, the across-track sampling is on constant angular centers. The variables in Table 9-6 and the illustration in Figure 9-12 describe the various measurements for this type of focal plane geometry.
Table 9-6. The variables used to describe LINE_SCANNER sensors.
| Variable Name | Usage | Value/Units | Description |
|---|---|---|---|
| PIXELS_PER_LINE | Required | Number of pixels per line | |
| LINES_PER_SCAN | Optional | Number of lines collected per scan | |
| OFFSET | Optional | Radians | Offset of this band from center |
| LINE_SPACING | Optional | Microns | Spacing between lines for this band |
| PIXEL_SIZE | Optional | Microns | Length and width of focal plane pixel element |
The PIXELS_PER_LINE variable defines how many pixels are imaged by each scan line. The default value for LINES_PER_SCAN is 1. If the user wishes to model more than 1 lines-per-scan, then either the LINE_SPACING or PIXEL_SIZE variable must be assigned a value to specify the distance between each line on the focal plane.
Each sensor band may be offset in the across-track direction on the focal plane. This is performed by assigning the OFFSET variable a signed angular offset (in radiance) of the given band from the center of along-track optical axis.
The sensor sub model also supports pushbroom scanning geometries. For this instrument type, the across-track sampling is on constant spatial centers. The variables in Table 9-7 and the illustration in Figure 9-14 describe the various measurements for this type of focal plane geometry.
Table 9-7. The variables used to describe PUSHBROOM_SCANNER instrument.
| Variable Name | Usage | Value/Units | Description |
|---|---|---|---|
| PIXELS_PER_LINE | Required | Number of pixels per line | |
| LINES_PER_SCAN | Optional | Number of lines collected per scan | |
| OFFSET | Optional | Microns | Offset of this band from center |
| LINE_SPACING | Optional | Microns | Spacing between lines for this band |
| PIXEL_SPACING | Optional | Microns | Spacing between detectors for this band |
| PIXEL_SIZE | Optional | Microns | Length and width of focal plane pixel element |
The PIXELS_PER_LINE variable defines how many pixels are imaged by each scan line. The distance between each pixel within a line is defined by the PIXEL_SPACING variable. The default value for the LINES_PER_SCAN is 1. If the user wishes to model more than 1 lines-per-scan, then the LINE_SPACING variable must be assigned a value to specify the distance between each line on the focal plane.
If the PIXEL_SIZE variable is specified, this value will be assigned to the PIXEL_SPACING and/or the LINE_SPACING variable if either is not specified. Using the PIXEL_SIZE variable in the absence of both the PIXEL_SPACING and LINE_SPACING variables effectively packs the pixels as close as possible in both the across-track and along-track directions.
Each sensor band may be offset in the along-track direction on the focal plane. This is performed by assigning the OFFSET variable a signed distance offset (in microns) of the given band from the center of across-track optical axis.