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.

ortho vs perspective
Figure 1. Perspective vs. Orthographic camera geometry models.

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

(optional) 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.

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. The default is 1000.0. The units are meters.

gsd

(required) The ground sampling distance (GSD) for the output image to be created. The units are meters.

size

(optional) The size of the output image file. The default is 1024 x 1024.

filename

(required) The name of the output ENVI image file. Note that this plugin does honor the --output_folder and --output_prefix command line options.

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). At this time, these files are hand-crafted (no graphical editor is available). 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"
            }
        }
    ]
}]

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).