The DIRSIG Atmospheric Database (ADB) file format was designed in the early days of DIRSIG3 development (1996) as a way to capture output of MODTRAN and feed it into the DIRSIG model. The ADB file and the make_adb tool that generates it are still supported in DIRSIG4 and DIRSIG5.

Format Overview

The content of that ADB file is divided into 4 primary sections. The ADB file is all text and there are actually comments in an ADB file to tell you what data is in each section. Each section contains spectral data on the wavelengths (or frequencies) that are specific to the sensor being modeled.

  1. The "header" section contains date, time, location and some sensor information. This info is used to make sure the rest of the ADB file can be used for a given simulation.

  2. The "source" section contains information including the exo-atmospheric solar and lunar irradiance and the transmissions for each down to the nominal ground altitude.

  3. The "sensor" (or "upwelled") section contains "path" radiance and transmission information for various angles within the sensor field of view. These paths are from the sensor to the ground or to a given range if the sensor is looking above the horizon.

  4. The "sky" (or "downwelled") section contains radiance and transmission information for the sky dome at different zenith and azimuth pairs. There is also a "total" (hemispherically integrated) irradiance at the end of this section.

An optional 5th section that contains atmospheric backscatter data is included if the associated simulation contains a LIDAR instrument.

The Header Sections

The file starts with a set of sections that describe the context for which the file was generated. The excerpt below contains examples of these sections:

DIRSIG_ADB = 4.7.5
SCENE {
    GROUND_ALTITUDE = -0.0000
    DATE = 6 1 2009
    LOCAL_TIME = 16.0000
    GMT_OFFSET = 5.00
    LATITUDE = 43.1200
    LONGITUDE = 78.4500
}

PLATFORM {
    INSTRUMENT {
        BAND_LIST {
            BAND {
                MINIMUM_WAVELENGTH = 0.400000
                MAXIMUM_WAVELENGTH = 1.200000
                DELTA_WAVELENGTH = 0.010000
            }
            BAND {
                MINIMUM_FREQUENCY = 750.00
                MAXIMUM_FREQUENCY = 1250.00
                DELTA_FREQUENCY = 1.00
            }
        }
        FIELD_OF_VIEW {
            MINIMUM_ZENITH = 0.00
            MAXIMUM_ZENITH = 1.00
            DELTA_ZENITH = 1.00
            MINIMUM_AZIMUTH = 0.00
            MAXIMUM_AZIMUTH = 360.00
            DELTA_AZIMUTH = 5.00
        }
    }
}

Similar to many other DIRSIG3 era "tag style" files, the first line of the file contains a variable defining the file type and version. In this case the file type is DIRSIG_ADB.

The Scene Section

The next header element in the file is the SCENE section, which contains information specific to the scene used in the simulation and the date/time of the simulation. Note that if the simulated collection occurs over a time window, the date/time will reflect the mid-point of that window.

The Platform Section

The final header element is the PLATFORM section, which contains two key pieces of information that define the dimensions of the radiometic data contained in the rest of the file:

  1. The BAND_LIST section contains a BAND section for each focal plane bandpass in the platform associated with the simulation. In this example there were two focal planes in the platform — one with a bandpass defined in microns and one defined in wavenumbers.

  2. The FIELD_OF_VIEW section contains the field-of-view (FOV) of the sensor. As described in the make_adb manual, this FOV is an accumulated angle range for the instruments across the associated collection time window.

Note In DIRSIG 4.7.5, the original 1D (zenith) sampling of the sensor field-of-view was updated to a 2D (zenith and azimuth) sampling. Hence, the FIELD_OF_VIEW section generated by older versions of make_adb would only contain the zenith range and sampling variables.

The Radiometric Data Sections

The Source Paths Section

The SOURCE_PATHS section contains the exo-atmospheric solar and lunar irradiance values plus the corresponding transmissions from space to the ground altitude associated with the scene.

#
# SECTION:  SOURCE_PATHS
# CONTENTS: Exoatmospheric Solar and Lunar
#           irradiances and atmospheric
#           transmission to ground (tau #1)
# FORMAT:   spectral center, E_sun, T_sun, E_moon, T_moon
#
SOURCE_PATHS {
    INFO {
        SOLAR_ZENITH = 66.02958123
        SOLAR_AZIMUTH = 176.05967598
        SUB_SOLAR_LATITUDE = -22.93126879
        SUB_SOLAR_LONGITUDE = -74.09060413
        LUNAR_ZENITH = 117.87338902
        LUNAR_AZIMUTH = 2.45063374
        SUB_LUNAR_LATITUDE = 19.09075813
        SUB_LUNAR_LONGITUDE = -104.29230877
        LUNAR_PHASE = 96.37578481
    }
    SPECTRAL_DATA {
        0.400000 1.5500e-01 0.40970 1.9600e-07 0.00000
        0.410000 1.8000e-01 0.44660 2.3500e-07 0.00000
        ...
        [data deleted for documentation purposes]
        ...
        1.190000 5.1400e-02 0.71000 1.8200e-07 0.00000
        1.200000 4.9900e-02 0.69840 1.7800e-07 0.00000
        750.00 1.3600e-07 0.09400 0.0000e+00 0.00000
        751.00 1.3600e-07 0.11320 0.0000e+00 0.00000
        ...
        [data deleted for documentation purposes]
        ...
        1249.00 3.6500e-07 0.41070 0.0000e+00 0.00000
        1250.00 3.6600e-07 0.36320 0.0000e+00 0.00000
    }
}
Note In DIRSIG 4.7.5, the new INFO section was introduced to capture the solar and lunar source geometry. These values are purely for documentation purposes and are not read by either DIRSIG4 or DIRSIG5.

The comments before the SOURCE_PATHS section describe the columns in the SPECTRAL_DATA table. This spectral data table will be for all the bandpasses described in the BAND_LIST section in the header and are combined into a single, continuous table of data. The radiometric units for this data is dependent on the spectral units for the data point. Hence, the solar and lunar irradiance values are in Watts per cm2 per micron for the first set of values and Watts per cm2 per wavenumber (cm-1) for the second set of values. The transmission value are unitless.

MODTRAN Notes

The data in this section is computed using the "directly transmitted solar/lunar irradiance" mode (IEMSCT = 0) in MODTRAN. Two runs are performed (once for the solar source and once for the lunar source cases) for each bandpass and then combined into the SPECTRAL_DATA table.

The Sensor (Upwelled) Paths Section

The SENSOR_PATHS section contains a series of PATH sections that contain the self-emitted radiance, solar scattered path path radiance and transmission information for paths defined in the FIELD_OF_VIEW header section. The ZENITH and AZIMUTH variables in each PATH section capture the geometry of that path. The RANGE variable captures the range (in km) to the end of the path used to compute the data. The PATH entries iterate across all the azimuth values for a given zenith before starting on the entries for the next zenith. Each path includes SPECTRAL_DATA section containing the spectral data for that path.

Note The term "upwelled radiance" implies that the sensor is always downlooking and that these path radiance values are traveling "up" toward the sensor. The use of that term here is completely historical and this section always contains path data for the FOV of the sensor regardless of the direction the sensor is looking.
#
# SECTION:  SENSOR_PATHS
# CONTENTS: Atmospheric radiances (thermal and
#           solar) and transmission along the path
#           from the sensor to the target.
# FORMAT:
#     ZENITH: declination from vertical [degrees]
#     AZIMUTH: rotation East of North [degrees]
#     SPECTRAL_DATA: spectral center, thermal, solar, tau2
#
SENSOR_PATHS {
    PATH {
        ZENITH = 1.0000
        AZIMUTH = 0.0000
        GROUND_RANGE = 0.6501
        SPECTRAL_DATA {
            0.400000 0.0000e+00 2.8920e-04 0.97400
            0.410000 0.0000e+00 3.1437e-04 0.97650
            ...
            [data deleted for documentation purposes]
            ...
            1.190000 3.7709e-16 1.3937e-06 0.93310
            1.200000 5.4130e-16 1.2944e-06 0.93100
            750.00 6.4586e-06 3.7104e-17 0.49900
            751.00 6.2411e-06 4.3860e-17 0.51550
            ...
            [data deleted for documentation purposes]
            ...
            1249.00 1.1322e-06 2.6154e-15 0.77410
            1250.00 9.2938e-07 2.3035e-15 0.81420
        }
    }
    PATH {
        ZENITH = 1.0000
        AZIMUTH = 5.0000
        GROUND_RANGE = 0.6501
        SPECTRAL_DATA {
            0.400000 0.0000e+00 2.8917e-04 0.97400
            0.410000 0.0000e+00 3.1434e-04 0.97650
            ...
            [data deleted for documentation purposes]
            ...
            1249.00 1.1322e-06 2.6151e-15 0.77410
            1250.00 9.2938e-07 2.3033e-15 0.81420
        }
    }
    ...
    [PATH sections deleted for documentation purposes]
    ...
    PATH {
        ZENITH = 19.0000
        AZIMUTH = 360.0000
        GROUND_RANGE = 0.6875
        SPECTRAL_DATA {
            0.400000 0.0000e+00 3.2155e-04 0.97260
            0.410000 0.0000e+00 3.4956e-04 0.97520
            ...
            [data deleted for documentation purposes]
            ...
            1249.00 1.1877e-06 2.8934e-15 0.76300
            1250.00 9.7674e-07 2.5511e-15 0.80470
        }
    }
}

The comments before each the PATH section describe the columns in the SPECTRAL_DATA table. This spectral data table will be for all the bandpasses described in the BAND_LIST section in the header and are combined into a single, continuous table of data. The radiometric units for this data is dependent on the spectral units for the data point. Hence, the path radiance values are in Watts per cm2 steradian micron for the first set of values and Watts per cm2 steradian wavenumber (cm-1) for the second set of values. The transmission value are unitless.

The self-emitted (thermal) and scattered (solar) values are separated here for historical reasons but are combined when read by DIRSIG4 and DIRSIG5.

MODTRAN Notes

The data in this section is computed using the "thermal and solar radiance" mode (IEMSCT = 2) and generally using the "slant path between two altitudes" geometry (ITYPE = 2). If any part of the field of view is looking above the horizon, then we switch over to a "slant path to ground/space" geometry (ITYPE = 3). Separate runs for each bandpass are executed and then combined into each SPECTRAL_DATA table.

The Downwelled (Sky) Paths Section

The DOWNWELLED_PATHS section contains radiance and transmission information from space down to the nominal scene location. Hence, these values are sometimes referred to as the "sky" paths. The angular sampling in the DOWNWELLED_PATHS section is hard-coded to 15 degree degrees in zenith (declination) from 7.5 → 82.5 degrees and 30 degrees in azimuth from 0 → 330 degrees. Each PATH section contains ZENITH and AZIMUTH variables defining the geometry of that path. The PATH entries iterate across all the azimuth values for a given zenith before starting on the entries for the next zenith. Each path includes SPECTRAL_DATA section containing the spectral data for that path.

#
# SECTION:  DOWNWELLED_PATHS
# CONTENTS: Downwelled thermal and solar radiances
# FORMAT:
#     ZENITH: declination from vertical [degrees]
#     AZIMUTH: rotation East of North [degrees]
# FORMAT: spectral center, thermal, solar, tau
#
DOWNWELLED_PATHS {
    PATH {
        ZENITH = 7.5000
        AZIMUTH = 0.0000
        SPECTRAL_DATA {
            0.400000 0.0000e+00 3.8267e-03 0.69230
            0.410000 0.0000e+00 4.1563e-03 0.71740
            ...
            [data deleted for documentation purposes]
            ...
            1249.00 2.5217e-06 3.9977e-14 0.42850
            1250.00 2.5152e-06 3.6050e-14 0.37940
        }
    }
    ...
    [PATH sections deleted for documentation purposes]
    ...
    PATH {
        ZENITH = 82.5000
        AZIMUTH = 330.0000
        SPECTRAL_DATA {
            0.400000 0.0000e+00 6.4446e-03 0.07140
            0.410000 0.0000e+00 7.5175e-03 0.09210
            ...
            [data deleted for documentation purposes]
            ...
            1249.00 4.9207e-06 1.7137e-14 0.00760
            1250.00 4.8769e-06 1.7376e-14 0.00690
        }
    }
    TOTAL {
        SPECTRAL_DATA {
            0.400000 0.0000e+00 1.4127e-02
            0.410000 0.0000e+00 1.5592e-02
            ...
            [data deleted for documentation purposes]
            ...
            1249.00 1.0384e-05 1.4639e-13
            1250.00 1.0270e-05 1.3769e-13
        }
    }
}

The comments before each the PATH section describe the columns in the SPECTRAL_DATA table. This spectral data table will be for all the bandpasses described in the BAND_LIST section in the header and are combined into a single, continuous table of data. The radiometric units for this data is dependent on the spectral units for the data point. Hence, the path radiance values are in Watts per cm2 steradian micron for the first set of values and Watts per cm2 steradian wavenumber (cm-1) for the second set of values. The transmission value are unitless.

The TOTAL section at the end of the DOWNWELLED_PATHS contains the hemispherically integrated self-emitted (thermal) and scattered (solar) values.

The self-emitted (thermal) and scattered (solar) values are separated here for historical reasons but are combined when read by DIRSIG4 and DIRSIG5.

MODTRAN Notes

The data in this section is computed using the "thermal and solar radiance" mode (IEMSCT = 2) and using the "slant path to ground/space" geometry (ITYPE = 3). Separate runs for each bandpass are executed and then combined into each SPECTRAL_DATA table.

The Backscatter Section

This section of the file is optional and only included if the simulated platform contains a LIDAR instrument. In that case, the DIRSIG needs atmospheric backscatter coefficients in order to know how much of the transmitter (laser) energy is directly scattered off the atmosphere and back towards the receiver. The data in this section contains a series of spectral backscatter tables as a function of altitude from the ground up to the sensor.

#
# SECTION:  PATH_BACKSCATTER
# CONTENTS: Atmospheric backscatter coefficients
#           along the path from the sensor to
#           target.
# FORMAT:   spectral center, backscat [1/(sr km)] tau
#
PATH_BACKSCATTER {
    ALTITUDE_RANGE {
        MINIMUM_ALTITUDE = 0.025
        MAXIMUM_ALTITUDE = 1.975
        DELTA_ALTITUDE = 0.050
    }
    ALTITUDE {
        ALTITUDE = 0.0250
        LENGTH = 0.0500
        SPECTRAL_DATA {
            1.063000 1.644220e-05 0.9835
            1.063200 1.639037e-05 0.9835
            ...
            [data deleted for documentation purposes]
            ...
            1.064800 1.637135e-05 0.9833
            1.065000 1.635714e-05 0.9834
        }
    }
    ...
    [ALTITUDE sections deleted for documentation purposes]
    ...
    ALTITUDE {
        ALTITUDE = 1.9750
        LENGTH = 0.0500
        SPECTRAL_DATA {
            1.063000 1.541552e-06 0.9984
            1.063200 1.542672e-06 0.9985
            ...
            [data deleted for documentation purposes]
            ...
            1.064800 1.538775e-06 0.9984
            1.065000 1.536757e-06 0.9984
        }
    }
}

The ALTITUDE_RANGE section defines the minimum, maximum and sampling interval for the ALTITUDE entries that compose the rest of the section.

Each ALTITUDE section contains the altitude at which the spectral backscatter data was extracted. As indicated in the comment at the start of the section, the SPECTRAL_DATA table contains the backscatter coefficient (sr-1 km-1) and transmission.

MODTRAN Notes

MODTRAN does not include scattering coefficients in the standard output files. Instead, make_adb must measure them by performing a pair of runs at each altitude:

  1. The irradiance to that altitude is computed via a "directly transmitted solar/lunar irradiance" mode (IEMSCT = 0) run.

  2. The backscattered radiance from a short path (see the LENGTH in each ALTITUDE section) at that altitude is computed using a "scattered thermal and solar radiance" mode (IEMSCT = 2) run, with H1 and H2 defining the short path.

  3. The backscatter coefficient is computed as the ratio of the irradiance reaching that altitude and the scattered radiance from that altitude.