Monitoring the output from DIRSIG while the model is running is extremely critical to insuring that the model is running as the user expected. In this section, the output of DIRSIG will be discussed stage by stage.
The first messages output by the model includes the model release information, the date that this release was compiled, and brief description of the features included in this release.
DIRSIG - Digital Imaging and Remote Sensing Image Generation Model
Release 3.6.2
Build Date: May 24 2005 13:11:02
usage: dirsig [options] <CFG filename>
where [options] are:
-standard standard mode
-preview preview image mode
-probe <filename> probe pixel mode
-restart <filename> restart mode
The last line (above) indicates that the CFG file supplied is being loaded. If any syntax errors in the CFG file are identified they will be reported at this time. Syntax errors (unknown or unexpected variable names, truncated files, etc.) are reported with an appropriate error message that will indicate the source of the error including the line number in the CFG file.
The next phase involves reading the weather history file (supplied in the ENVIRONMENT section). The weather history is then shifted to supply the thermal model with exactly 24 hours of weather previous to the image time. The weather history is then interpolated down to 5 minute intervals for the last 1 hour previous to the image time to improve the temperature prediction accuracy for volatile materials. The location of the Sun is then predicted for the last 24 hours so that an accurate solar insolation history can be constructed at each hit point. This process is followed by a description of the Sun and Moon locations at the image time.
Loading weather data from weather file ... done.
Shifting weather for thermal model history ... done.
Interpolating weather data for last hour ... done.
Calculating sun location for previous 24 hours ... done.
The Sun is up at the image time.
Zenith angle = 52.777924 (degrees)
Azimuth angle = 139.011043l (degrees)
Sun Position Vector = (-0.6011, -0.5223, 0.6049)
The Moon is up at the image time.
Zenith angle = 31.273220 (degrees)
Azimuth angle = 199.835489 (degrees)
Phase fraction = 24.498578 (percentage)
Phase angle = 135.798953 (degrees)
Moon Position Vector = (-0.4883, 0.1761, 0.8547)
Depending on the type of sensor configured by the user, the messages at this stage will vary. For a FRAMING_ARRAY instrument, the messages will include which viewing geometry was specified in the POSITION section (see Section 32.4). The output will include a summary of all the \POSITION variables including the unset ones computed from the the supplied variables.
Checking the sensor's flight requirements:
Single shot from a framing array:
Using case #1 viewing geometry
Sensor Position = -7273.000 -2000.000 17500.000
Target Position = -7273.000 2981.000 0.000
Distance = 18195.0645
Elevation angle = 74.1121 [degrees]
Azimuth angle = -90.0000 [degrees]
Twist angle = 0.0000 [degrees]
If the user specifies a scanning sensor (instrument type is LINE_SCANNER or PUSHBROOM_SCANNER) then a flight will be configured during this stage.
Checking the sensor's flight requirements:
Generating flight profile ... done (500 records created for flight).
Heading = -45.00
Altitude = 12000.00
Speed = 4800.00
Total flight is 5.00 seconds long
The initialization of the sensor instrument begins by mapping all of the sensor bands on the focal plane down to a set of geometrically unique bands. This is done to minimize the amount of ray-tracing that needs to be performed at run-time. Any sensor band that is located at a unique point on the focal plane (spectral misregistration) or that results in a different ground sampling distance (GSD) is geometrically unique.
DIRSIG3 currently forces all sensor bands into perfect registration. This will be resolved in a future release. To model misregistered bands, the user must run DIRSIG separately for each band.
Once the minimal set of geometrically unique bands has been identified, the model then initializes each sensor band. This process includes the reading of any sensor response files associated with a given band and the initialization of the output image file for each band. The printed summary for each band includes the final spectral bandpass, the type of image to be generated, the size of the image, and the filename that the image will be stored in.
Identifying geometrically redundant bands ... done.
There are 1 geometrically unique band(s)
Initializing instrument focal plane ... done.
Initializing sensor bands:
Band #1:
Spectral Bandpass: 750 - 1250 [cm-1]
Image type: Spectral radiance image with 251 points
Image size: [256 x 256]
Image filename: frame.img
After the geometric and spectral properties of the instrument focal plane have been completed, DIRSIG will attempt to load the atmospheric database (ADB) for the scene:
Loading atmospheric database ... done.
Once the ADB file has been opened, DIRSIG will check that the database is valid for the current configuration. If a discrepancy is identified, the program will issue an error message indicating what parameters have changed in the CFG file since the ADB was created, and instruct the user to recreate the database.
If the user has set the ENABLE_PLUMES variable in the OPTIONS section to TRUE, then DIRSIG will attempt to initialize the plume model using the variables in the PLUME section. This consists of reading the plume control file (assigned to the CONTROL_FILENAME variable) to identify the gas absorption files that will be utilized in the plume calculations.
Using internal plume model (control file = example.plume)
Reading gas absorption file for SO2 ... done.
Reading gas absorption file for CH3Cl ... done.
Reading gas absorption file for HCl ... done.
Reading gas absorption file for NH3 ... done.
In this case, the example.plume file indicated that four gases will be utilized by the plume model. DIRSIG will then attempt to read the spectral absorption file for each gas. These files will be looked for in the directory specified by the ABSORPTION_PATH variable in the PATHS section. Any errors regarding the locating of or reading of the gas absorption files will be reported at this time.
If the user has set the ENABLE_TRUTH_MAPS variable in the OPTIONS section to TRUE, then DIRSIG will attempt to initialize the truth image cube. Which images will be generated is defined by either the default the TRUTH_IMAGES section (see Section 32.6).
Using user-supplied truth image list:
Material maps
Hit point/angle maps
Temperature maps
Plume maps
Errors may be issued at this point if the default \TRUTH file is required but cannot be located, or if the output truth image cube file cannot be initialized.
During the next stage DIRSIG reads in the geometric database file specified by the GDB_FILENAME variable in the SCENE section. During the loading process, DIRSIG creates a list of material ID's that are required by facets in the scene which it will search for in the material database file. After all the facets have been loaded, the ray tracer will initialize an internal data structure (called an "octree") to optimize the run-time ray tracing. For very large scenes, this process may take several minutes.
Loading the facet database ... done.
Number of facets in scene = 1241
Creating octree ... done.
DIRSIG will then open the materials database file (specified by the MATERIAL_FILENAME variable in the SCENE section) and search for a material entry for each material ID required by the geometric database.
Loading materials required for GDB from database ... done.
Verifying all requested materials were found ... done.
Number of OPAQUE materials: 22
Number of TRANSMISSIIVE materials: 0
If the material file does not contain an entry for a given material ID, then an error will be issued that includes what material ID was not found. Otherwise, a brief summary of the types of materials (opaque and transmissive) in the scene is reported.
If the user has set the ENABLE_MAPSle in the OPTIONS section to TRUE, then DIRSIG will attempt to initialize the material and texture maps defined in the MAPS section. The images for each map will be searched for in the directory specified by the MAPS_PATH variable in the PATHS section. A brief summary will be printed that summarizes the key parameters for each map.
Initializing material mappings:
Mapping materials to Material ID #100:
PGM Image = material_example.pgm
Image Size = [2048 x 2048]
Ground Sampling Distance = 26.6000
Number of materials in MAP = 3
Initializing texture mappings:
Mapping texture to Material ID #1:
Material name = example_material
PGM Image = example_texture.pgm
Image Size = [512 x 512]
Image Mean = 170.511105
Image Standard Deviation = 105.145157
Ground Sampling Distance = 0.1000
If the ENABLE_MAPS variable is set to FALSE then a message stating that maps have been disabled will be issued.
The next stage in the DIRSIG initialization process involves reading the spectral emissivity and extinction data required for each material. The emissivity file for each material (specified by the EMISSIVITY_FILENAME variable) is searched for in the directory defined by the EMISSIVITY_PATH variable in the PATHS section. If a given material is not opaque, then the spectral extinction file (specified by the EXTINCTION_FILENAME variable) is searched for in the directory defined by the EXTINCTION_PATH variable in the PATHS section. As the spectral data files are read for each material, the relevant filenames will be printed to the screen. If a material has been configured with a texture map, and additional message will be printed.
Loading spectral data for scene materials:
Material ID #1
Emissivity file = /usr/local/dirsig/lib/data/emissivity/material_1.ems
Number of curves = 100
Texture will be modeled with this material
Material ID #16
Emissivity file = /usr/local/dirsig/lib/data/emissivity/material_16.ems
Number of curves = 10
Attaching material attributes to facets ... done.
After all of the spectral data has been loaded for each material, the material properties for each facet will be updated.
If the user has set the ENABLE_SOURCES variable in the i OPTIONS section to TRUE, then DIRSIG will attempt to initialize any man-made sources defined in the SOURCES section.
Initializing secondary sources ... done.
Secondary sources are disabled.
If the ENABLE_SOURCES variable is set to FALSE, then a message stating that man-made have been disabled will be issued.
The DIRSIG thermal model is utilized to compute the temperature at each primary surface (directly viewed by the sensor) using a solar insolation history and sky exposure factor unique to that point. For secondary surfaces (a surface reflected by a primary surface), a default background temperature is utilized. These temperature are precomputed at the start of the simulation on a per facet basis and assume only self shadowing conditions. Once the default background temperature has been computed for each facet, the average temperature of all the facets is printed to the screen. For scenes containing a large number of facets, this process may take several minutes.
Computing default temperatures of facets ... done.
Average scene temperature is 14.65 degrees
If the thermal model has not been enabled, the facet temperatures will all be initialized to 0 degrees C.
At this point the model has been fully initialized and the requested images will be generated. The completion of each line or scan of the instrument will be indicated by the printing of a status message.
Generating the synthetic image ...
Rendering line #1
Rendering line #2
Rendering line #3
.
. [lines deleted for documentation purposes]
.
Rendering line #254
Rendering line #255
Rendering line #256
Program Complete!
Once the program is complete, DIRSIG will exit and the generated images can be examined.