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.
- 
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.
 - 
The "source" section contains information including the exo-atmospheric solar and lunar irradiance and the transmissions for each down to the nominal ground altitude.
 - 
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.
 - 
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:
- 
The
BAND_LISTsection contains aBANDsection 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. - 
The
FIELD_OF_VIEWsection 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. 
| 
 | 
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
    }
}
| 
 | 
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.
| 
 | 
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:
- 
The irradiance to that altitude is computed via a "directly transmitted solar/lunar irradiance" mode (
IEMSCT = 0) run. - 
The backscattered radiance from a short path (see the
LENGTHin eachALTITUDEsection) at that altitude is computed using a "scattered thermal and solar radiance" mode (IEMSCT = 2) run, withH1andH2defining the short path. - 
The backscatter coefficient is computed as the ratio of the irradiance reaching that altitude and the scattered radiance from that altitude.