4.3. Pushbroom Scanner Tutorial

In this section we will utilize some of the more advanced features of DIRSIG to construct a pushbroom-style scanning sensor. The instrument in this example will be an imaging spectrometer that features a series of spectral channels with Gaussian response. This exercise will cover the following topics:

To get started, create another directory in your workspace called tutorial2 within which you can set-up this example. Change your current directory to this directory and start up the CFG file editor.

4.3.1. Selecting a Scene

For this simulation example, we will use a different scene than the last example. The DIRSIG "Desert" scene was constructed to represent a common desert scenario with military targets. The databases for this scene can be found in the $DIRSIG_HOME/examples/desert directory. To use this scene for this example, you will need to set a series of variables in your configuration.

4.3.1.1. Setting the search Paths

Rather than copy all of the databases into you own directory, DIRSIG allows you to look in other directories for input databases. In this example, almost every input already exists in the distributed scene directory. To use these files you must update the following directories in the Paths section of your configuration.

  • Set GDB Path to $DIRSIG_HOME/examples/desert/gdb

  • Set ODB Path to $DIRSIG_HOME/examples/desert/odb

  • Set Emissivity Path to $DIRSIG_HOME/examples/desert/emissivity

  • Set Extinction Path to $DIRSIG_HOME/examples/desert/extinction

  • Set Material Path to $DIRSIG_HOME/examples/desert

  • Set Weather Path to $DIRSIG_HOME/examples/desert

  • Set Maps Path to $DIRSIG_HOME/examples/desert/maps

Once you have correctly set the variables, close the Paths window by clicking the OK button at the bottom of the window. You can avoid using the Browse button approach and simply type-in the values if you desire.

4.3.1.2. Setting the Scene variables

The Scene section of your configuration will utilize a slightly different scene database approach than the one used in the last tutorial. In this scene, the terrain and vegetation are contained in a "background" GDB file and the myriad of military targets are imported through the use of an object database which contains references to a series of GDB files and their relative locations. Again, you can avoid using the Browse button approach and simply type-in the values if you desire.

  • Set GDB Filename to background.gdb

  • Set GDB UNITS to Inches

  • Set ODB Filename to desert.odb

  • Set Material Filename to desert.mat

  • Set the Date to August 11, 2000

  • Set the Local Time to 17.00 and the GMT Offset to 6.0

  • Set the Location to 32.68 degrees North latitude and 114.62 degrees West longitude

  • Set the Ground Altitude to 0.0 km.

Figure 4-26. The Scene Editor window with the correct variables set.

4.3.1.3. Setting the Environment variables

Open the Environment window to set up the atmospheric parameters for the simulation. In this example, we will configure a MODTRAN input file that uses the "Desert" aerosol model. To begin, click the Edit button next to the MODTRAN Tape5 Filename variable. Once the MODTRAN Input Editor starts, click on the CARD 1 entry in the cards list and set the following variables to the specified values:

  • Set MODEL to Tropical

  • Set IMULT to Multiple Scatter Based at H1

The values will instruct MODTRAN to run with the "Tropical" atmospheric profiles with multiple scattering on. Finalize these settings by clicking the OK button at the bottom of the window. Then click on the CARD 2 entry in the card list and set the following variable to the values indicated below:

  • Set IHAZE to Desert extinction

  • Set ISEASN to Spring-Summer

  • Set WSS to 2.5 (remember to press the "Return" key when entering a value into these style of variable edits).

These values instruct MODTRAN to utilize the "Desert" aerosol particle size distributions for the lower atmosphere. The current wind speed (specified through the WSS variable) is used to compute the visibility for this aerosol model. The completed "Card #2" values should look like Figure 4-27. When your values are correct, click the OK button to close this window.

Figure 4-27. The completed Card #2 Editor window from the MODTRAN input file editor.

Save your current MODTRAN configuration to the filename tutorial2.tp5 using the Save option under the File menu and then quit the MODTRAN editor. In the Environment window, enter the name of the MODTRAN input file that you just created by selecting it through the Browse button.

Set the ADB Filename to tutorial2.adb. The atmospheric database cannot be constructed until the instrument description has been completed, so do not click the Create button at this time.

For the Weather Filename, select the weather file in the desert scene (named desert.wth) using the Browse button. The completed Environment window should look like Figure 4-28. Once the values in your window are correctly set, close the Environment window by clicking the OK button.

Figure 4-28. The Environment Editor window with the correct variables set.

4.3.2. Constructing a Pushbroom Scanner

A pushbroom array instrument features a 1D array of detectors that image different spatial locations on the ground. To acquire the other dimension of the 2D image, the instrument is mounted on a platform that is moving (an aircraft or satellite). The array itself is able to image the across-track dimension of the image periodically while the platform moves. If the read-out period is correctly set, the platform has moved forward exactly the along-track distance of the projected array pixels, and a "seamless" image can be created.

To configure this instrument, we will start by naming our instrument "Tutorial #2". The most important attribute to set is the instrument Type to Pushbroom Scanner. Once you have selected the Pushbroom Scanner instrument type, you will notice that the additional variable Scan Period [s] is displayed. For the time being, do not change either the Focal Length [mm] or Scan Period [s] variables.

4.3.2.1. Making the focal plane an Imaging Spectrometer

The next step is to configure the focal plane of this instrument to be an imaging spectrometer. The DIRSIG model handles the creation of spectrometer type instruments in a unique fashion. Rather than individually configure 200 or so spectrometer channels as individual bands in the Band List, DIRSIG treats an imaging spectrometer as a single band, and the individual channel responses are handled by the response function assigned to the band. This approach makes it easier to configure for the user and is not entirely physically inaccurate since most channels in dispersive spectrometer instruments are geometrically co-registered (neglecting second order optical effects such as "smile") for each pixel. This approach is also more efficient since the internal spectral sampling will not include redundant spectral points resulting from the overlap of adjacent channels. This approach is not useful for most multi-spectral type instruments since the channels are typically not geometrically co-registered.

To begin the construction of our spectrometer, click the Add button in the Band List region of the Instrument window. On the General tab, set the Name of this band to Spectrometer and the Image Filename to vnsw.img (short for "Vis-NIR-SWIR"). The completed tab should look like Figure 4-29.

Figure 4-29. The completed "General" tab of the Band Editor window.

In the Geometry tab, you will set-up the size of the array in this pushbroom instrument. The Samples/Line variable specifies the number of detectors in the across-track direction (perpendicular to the flight direction). The Lines/Scan variable specifies the number of detectors in the along-track direction (parallel to the flight direction). Using these two variables, you can specify the locations and layout of the detectors in the array. For this example, you are going to construct a simple 1D array that has 512 across-track pixels. To do this, set the Samples/Line variable to 512 and leave the Lines/Scan variable at 1.

To specify the size of the focal plane, we will specify the physical size of each pixel detector which will be used in conjunction with the number of detectors to compute the total array size. For this example, we will use an arbitrary pixel size (or pitch) of 20.0 microns by setting the X Size and Y Size variables to 20.0 (resulting in square pixels).

The Offset variables allow the user to offset the array in both the along-track and across-track directions. An offset of 0.0 for both directions indicates that the array is perfectly centered about the primary optical axis of the forward optics, and that it is projected straight down when the platform is level. In this example, we will not offset the array so the default values can be used.

Click the Apply button to update the length variables which should reflect an overall array size of 1024 x 20 microns. The completed tab should look like Figure 4-30.

Figure 4-30. The completed "Geometry" tab of the Band Editor window.

On the Optical tab we will configure the detectors in the array to have a series of unique spectral channel responses. The implementation of this is somewhat hidden from the user in the format of the DIRSIG detector response file. The response file can contain a list of spectral channel centers and widths. By selecting one of these files, the bandpass for the current band is set to the extents of the extreme channels in the spectrometer.

For this example, we will use an existing spectrometer response file rather than create a new one from scratch (a user interface to perform this operation has not been constructed at this point). Change the Detector Response type to Use response function and then click the Browse button next to the Response Filename variable. The file selection dialog window will open the default DIRSIG response function directory which should contain the file aviris.rsp (the nominal channel responses for the NASA/JPL AVIRIS airborne imaging spectrometer). After this file has been selected, the Bandpass should be updated to the extents of the AVIRIS channel responses (see Figure 4-31).

Figure 4-31. The completed "Optical" tab of the Band Editor window.

On the PSF tab, the default Delta function sampling will be used for this simulation.

4.3.2.2. Choosing the ground resolution

At this point, you have constructed a focal plane array within an instrument that will be carried on an airborne platform. One of the most common specifications that the user wants to control is the ground resolution, or ground sampling distance (GSD) of the instrument. The control over this attribute within DIRSIG is similar to how it is in the real world. The instrument forward optics, focal plane read-out rate, flight altitude and flight speed are carefully matched to the focal plane used. For this example, we will work to configure the instrument to produce a 1 m by 1 m GSD at an altitude of 8,000 ft.

Before we begin, the user must understand that the along-track and across-track resolution of an scanning imager are controlled by two separate features of the imaging system. The projection of a square detector onto the ground through the forward optics of the system results in a square pixel on the ground (hopefully). The size of this projected pixel is determined from the focal length of the forward optics (or the "magnification") and the height above the ground. The calculation of this size can be easily solved using a simple similar triangles approach. If either the focal length or the altitude is fixed, then the other can be easily computed.

In this case, our specification indicates an altitude of 8,000 ft so we will solve for the required focal length of the system. All units are first converted to [mm]:

Equation 4-1. Solving for focal length

Once all the correct settings have been made for this band, click the OK button at the Band Editor window. This will return you to the Instrument window where you should set the Focal Length variable to 48.76 based on the GSD calculation we just performed.

The Scan Period for a given system species the length of time between each reading of the array. In actual instruments, this rate can sometimes be adjusted to help match different flying altitudes. In this example, we will assumed that the period is fixed at 40 Hz, or a period of 0.025 seconds/scan.

The finished Instrument tab of the Platform window should look like Figure 4-32. With the Instrument settings completed, we will continue by configuring the platform to move over the scene.

Figure 4-32. The "Instrument" tab of the Platform Editor window with the variables set for the Pushbroom imager.

4.3.3. Setting up a platform flight line

The next step is to configure the flight line that the platform will use during the image collection. The position of the platform is configured from the Position tab in the Platform editor. Since a scanning instrument like the one we have configured so far requires a moving platform, you need to select the Moving/Dynamic platform position option from the Position Style. This will change the lower half of the tab to reflect several options for specifying the location of the moving platform as a function of time (see Figure 4-33).

Figure 4-33. The "Position" tab of the Platform Editor window for a moving platform.

The second element of the your configuration that affects the GSD of the imaging system is the altitude and speed of the platform. We have already fixed the altitude of the platform at 8,000 ft, however the correct speed of the platform must be computed. The speed of the platform should be related to the Scan Period of the instrument. If the platform speed is too slow, the instrument will read out the array before the platform has moved forward a full GSD from the last read-out (the pixels overlap on the ground). If the platform speed is too fast, the instrument won't read out the array in time to image the ground when the platform has moved forward a full GSD (the pixels leave gaps on the ground).

4.3.3.1. Computing the desired ground speed

To compute the desired speed of the aircraft, you can divide the GSD by the scan period to arrive at the optimum distance per second. For this example, the calculation goes as follows (all values are converted to the GDB scene units of "inches"):

Equation 4-2. Computing ground speed

This speed is extremely valuable if you plan on using an external platform model to generate a position/orientation history for the platform. In this case we will choose a simpler approach to specify the aircraft flight line and speed.

Select the Specify flight start and stop location in the Moving/Dynamic Position section of the Position tab. With this option we need to specify the start and stop location and the number of scans. Set the start location to 28000.0, 31500.0, 102000.0 since the platform altitude is supposed to be 8,000 feet and the average scene altitude in this region is 500 ft. Assuming that we want the final image to contain 512 scans (512 rows) we need to compute a stop location that is the correct distance away to achieve the correct sampling for the instrument. Using this positioning option, the problem is easy solved by setting the Scan Count to 512 and by making the stop location 512 meters, or 20,157.44 inches away from the start at the location 45456.44, 41578.72, 102000.0 (see Figure 4-34).

Figure 4-34. The completed "Position" tab of the Platform Editor window for the Pushbroom instrument.

4.3.4. Saving the configuration

To save all the current settings to a file, select the Save As option from the File menu of the main menu. This action will open a standard file saving dialog which you should use to save your scenario as the file tutorial2.cfg in the current directory. At this point you can quit out of the editor.

4.3.5. Running DIRSIG in preview mode

In some cases you will want to verify that the platform and instrument image the part of the scene you desire. In this case, the DIRSIG "preview" mode is very handy since you do not need to create the atmospheric database to get a rendering. To use this mode, you start DIRSIG with the -preview option:

      prompt> dirsig -preview tutorial2.cfg
    

The model will run and render a material map which can be used to quickly verify the correct positioning of your sensor system. The single preview image is saved to the file preview.img which can be viewed in Freelook (see Figure 4-35).

Figure 4-35. The material map imaged produced using the DIRSIG "preview" mode.

If the scene geometry looks correct, you can run the full simulation using the standard DIRSIG mode:

      prompt> dirsig tutorial2.cfg