Summary
The OrthoImage plugin is a sensor plugin that was created to allow users to quickly create orthogonal spectral image cubes of a scene. Unlike a traditional "focal point" or perspective camera geometry model where rays originate from a common point in space, this plugin probes the scene with parallel rays. This plugin was originally developed to simplify the analysis of the spatial and spectral complexity of the scene. However, it was later found to be useful in making quick, low-distortion context images of a scene since the primary inputs are just the ground sampling distance (GSD), the size of the image and the spectral range to be captured.
Input
Rather than construct a carefully crafted platform file with a long focal length (to minimize perspective effects), an appropriate platform motion, an appropriate task set and a simplified atmospheric configuration, the plugin dramatically simplifies the simulation configuration. Instead the user defines a streamlined configuration and use it with the desired scene file.
The input configuration for this plugin is a JSON formatted document. An example is shown below:
{
"bandpass" : {
"units" : "microns",
"minimum" : 0.500,
"maximum" : 0.800,
"delta" : 0.010
},
"date_time" : "2009-09-01T12:00:00.0000-05:00",
"sample_count" : 20,
"center" : {
"x" : 655.0,
"y" : 587.5
},
"altitude" : 10000,
"gsd" : 0.05,
"size" : {
"x" : 1024,
"y" : 1024
},
"truth" : ["intersection","sunshadow"],
"filename" : "tile1_ortho.img"
}
bandpass
(required)-
The spectral bandpass for the output image to be created. At this time only
microns
units are supported. date_time
(required)-
The date and time of the simulation as an ISO 8601 formatted string.
sample_count
(required)-
A convenient way to set the number of samples (paths) per pixel to a fixed about. By default, the default convergence setup for the simulation (which can be overridden with the
--convergence
command-line argument) defines the samples per pixel. This variable will override the default and command-line convergence setup. gsd
(required)-
The ground sampling distance (GSD) for the output image to be created. The units are meters.
filename
(required)-
The name of the output ENVI image file. Note that this plugin supports the
--output_folder
and--output_prefix
command-line options. size
(optional)-
The size of the output image file. The default is 1024 x 1024.
center
(optional)-
The XY location (in the Scene ENU coordinates) for the center of the image. The default is
0,0
. altitude
(optional)-
The altitude that the scene is being sampled from in meters. The default is
1000.0
. truth
(optional)-
The list of truth requests to be included in the data cube. These truth values are appended to the output data cube. Note that this plugin supports the
--disable_truth_collection
command-line option. flipx
andflipy
(optional)-
The flags to flip the respective X and Y dimensions of the output image. Both default to
false
.
To use the OrthoImage plugin in DIRSIG5, the user must use the newer
JSON formatted simulation input file (referred to a JSIM
file with a .jsim
file extension). The simulation must also define
an atmospheric plugin and an optional
ephemeris plugin.
External Configuration
The first option is to capture the plugin configuration in an external JSON
file and then supply that filename to the plugin in the inputs
section
via the input_filename
variable:
[{
"scene_list" : [
{ "inputs" : "./demo.scene" }
],
"plugin_list" : [
{
"name" : "BasicAtmosphere",
"inputs" : {
"atmosphere_filename" : "uniform.atm"
}
},
{
"name" : "OrthoImage",
"inputs" : {
"input_filename" : "./input.json"
}
}
]
}]
where input.json
contains the JSON configuration like the one
shown previously. This approach might be preferred if the same
plugin configuration is going to be used across multiple simulations.
Perhaps with different scenes or atmospheric plugins.
Internal Configuration
The second option allows the user to make a fully self-contained simulation
setup by injecting the plugin configuration directly into the inputs
of
the plugin:
[{
"scene_list" : [
{ "inputs" : "./demo.scene" }
],
"plugin_list" : [
{
"name": "FourCurveAtmosphere",
"inputs": {
"conditions": "mls_rural_10km"
}
},
{
"name" : "FixedEphemeris",
"inputs" : {
"solar_zenith" : 45.0,
"solar_azimuth" : 180.0,
"lunar_zenith" : 0.0,
"lunar_azimuth" : 0.0,
"lunar_fraction" : 0.0
}
},
{
"name" : "OrthoImage",
"inputs" : {
"bandpass" : {
"units" : "microns",
"minimum" : 0.500,
"maximum" : 0.800,
"delta" : 0.010
},
"date_time" : "2009-09-01T12:00:00.0000-05:00",
"center" : {
"x" : 655.0,
"y" : 587.5
},
"altitude" : 10000,
"gsd" : 0.05,
"size" : {
"x" : 1024,
"y" : 1024
},
"filename" : "tile1_ortho.img",
"truth" : ["intersection","sunshadow"]
}
}
]
}]
In this example, the FourCurve Atmosphere plugin is used and the default SPICE Ephemeris plugin has been overridden with a Fixed Ephemeris setup.
Output
The output of this plugin is a 3-D spectral image data cube (spatial x spatial x spectral). The units for the data cube are Watts/(cm2 sr micron).