9.3. How-To

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 NameUsageDescription
NAMEOptionalThe name of the platform carrying the sensor package
POSITIONRequiredSub-section describing the position of the platform
INSTRUMENTRequiredSub-section describing the geometric/optical properties of the sensor

Figure 9-6. GUI configuration for platform section

9.3.1. Instrument

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 NameUsageDescription
NAMEOptionalName of this instrument
TYPERequiredThe type of focal planes in the instrument
FOCAL_LENGTHRequiredEffective focal length of the forward optics [mm]
SCAN_RATEScanners OnlyScan rate for scanning instruments [scans/second]
DUTY_CYCLELine-Scanner OnlyFraction of total scan utilized for image collection
BAND_LISTRequiredList of the geometric/optical focal planes in the instrument

Figure 9-7. GUI configuration for line scanner 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 NameDescription
NAMEName of this band
MINIMUM_WAVELENGTHThe minimum wavelength of this spectral band [microns]
MAXIMUM_WAVELENGTHThe maximum wavelength of this spectral band [microns]
DELTA_WAVELENGTHThe delta wavelength used to sample this spectral band [microns]
MINIMUM_FREQUENCYThe minimum frequency of this spectral band [wavenumbers]
MAXIMUM_FREQUENCYThe maximum frequency of this spectral band [wavenumbers]
DELTA_FREQUENCYThe delta frequency used to sample this spectral band [wavenumbers]
X_PIXELSThe number of X pixels in the image (FRAMING_ARRAY type)
Y_PIXELSThe number of Y pixels in the image (FRAMING_ARRAY type)
X_LENGTHThe X length of the focal plane (FRAMING_ARRAY type) [microns]
Y_LENGTHThe Y length of the focal plane (FRAMING_ARRAY type) [microns]
PIXEL_SIZEThe length and width of a pixel on the focal plane [microns]
LINES_PER_SCANNumber of lines collected per scan (SCANNER types)
OFFSETOffset of this band from center (SCANNER types) [units vary]
LINE_SPACINGSpacing between lines (SCANNER types) [microns]
PIXEL_SPACINGSpacing between pixel (SCANNER types) [microns]
OVERSAMPLEAmount to oversample this band image (N X N)
IMAGE_FILENAMEName of the output image file
RESPONSE_FILENAMEName of the spectral response file
PSF_FILENAMEName 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

FilenameDescription
aviris.rspNominal channel responses for high-altitude AVIRIS
hydice.rspNominal channel responses for HYDICE at 10,000 ft flight altitude
landsatN.rspSeries of files (1 through 6) for each LANDSAT TM band
m7_rN.rspSeries of files (1 through 15) for each M7 reflective region band
m7_tN.rspSeries of files (1 through 6) for each M7 thermal region band
sebass_lwir.rspNominal channel responses for SEBASS LWIR spectrometer
spot_pan.rspNominal response for SPOT panchromatic band
rgb_red.rspA red channel for an RGB image
rgb_green.rspA green channel for an RGB image
rgb_blue.rspa blue channel for an RGB image
cir_red.rspA red channel for a Color IR image
cir_green.rspA green channel for a Color IR image
cir_blue.rspA blue channel for a Color IR image
vis_broad.rspA generic 0.4 - 0.7 micron integrated broadband sensor
nir_broad.rspA generic 0.7 - 1.0 micron integrated broadband sensor
swir_broad.rspA generic 1.0 - 2.5 micron integrated broadband sensor
mwir_broad.rspA generic 3.0 - 5.0 micron integrated broadband sensor
lwir_broad.rspA 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
}
  

Figure 9-8. GUI configuration for optical band

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.

9.3.2. Framing Array

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.

Figure 9-9. Illustration of variables used to describe a Framing Array

Table 9-5. The variables used to describe a FRAMING_ARRAY instrument.

Variable NameStatusUnitsDefaultDescription
X_PIXELSRequired  Number of pixel elements in X dimension
Y_PIXELSRequired  Number of pixel elements in Y dimension
X_LENGTHOptionalMicrons24748.7Length of array in X dimension
Y_LENGTHOptionalMicrons24748.7Length of array in Y dimension
PIXEL_SIZEOptionalMicrons 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:

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
  }
}
    

Figure 9-10. GUI configuration for framing array instrument

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.

9.3.3. Line Scanners

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 NameUsageValue/UnitsDescription
PIXELS_PER_LINERequired Number of pixels per line
LINES_PER_SCANOptional Number of lines collected per scan
OFFSETOptionalRadiansOffset of this band from center
LINE_SPACINGOptionalMicronsSpacing between lines for this band
PIXEL_SIZEOptionalMicronsLength 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.

Figure 9-11. GUI configuration for line scanner instrument

Figure 9-12. Illustration of variables used to describe a Line Scanner

9.3.4. Pushbroom Scanners

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 NameUsageValue/UnitsDescription
PIXELS_PER_LINERequired Number of pixels per line
LINES_PER_SCANOptional Number of lines collected per scan
OFFSETOptionalMicronsOffset of this band from center
LINE_SPACINGOptionalMicronsSpacing between lines for this band
PIXEL_SPACINGOptionalMicronsSpacing between detectors for this band
PIXEL_SIZEOptionalMicronsLength 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.

Figure 9-13. GUI configuration for pushbroom instrument

Figure 9-14. Illustration of variables used to describe a Pushbroom