ISIS Documentation

findimageoverlaps

Uses the input image footprints to find their intersections and writes these intersections to a file for used in other programs such as autoseed.

Several programs in Isis have an input parameter "OVERLAPLIST." This program is designed to produce the OVERLAPLIST for other Isis programs to use.

An overlap list is a file describing how the images in a file list intersect each other. The output contains encoded information that describes how many cubes overlap in a particular latitude/longitude area. For example, it might define "lub0454d.342.cub and lub0421c.342.cub overlap in longitudes 262.2 degrees to 270.3 degrees and latitudes -58.3 degrees to -60.3 degrees." The information in the file is much more precise than that, but the general idea of the data is the same. Having image intersection information is key for problems such as initial control point placement

The overlap list is generated using the footprints of the input images. A requirement to running this program is running footprintinit on all of your input files. The precision of the footprints directly affects the precision of the overlap list/intersection information. If you re-spiceinit or in any way change the SPICE data of an image then you should re-run footprintinit and this program to update your image intersection information. Programs that do not change SPICE data (for example, calibration) do not require you to re-run this program.

The algorithm for finding these overlaps is:
  1. Create a list of the image footprints
  2. For each combination of items in the list (in the order of 1,2 1,3 1,4 2,3 2,4 3,4) where the first item is the left hand side and the second item is the right hand side, do the following:
    1. If the left and right hand side have overlapping serial numbers associated with them then move on to the next combination of items in the list.
    2. If the lat/lon area associated with the left and right hand side are identical, then copy the serial numbers from the right hand side into the left hand side and delete the right hand side.
    3. If the right hand side is empty or extremely tiny then delete it.
    4. Intersect the left and right hand side.
      1. If the intersection is empty or extremely tiny then move on to the next combination of items in the list.
      2. If the intersection is equal to the left hand side, then update the right hand side to be itself minus the intersection. Update the left hand side to have the right hand side's serial numbers. Move on to the next combination of items in the list.
      3. If the intersection is equal to the right hand side, then update the left hand side to be itself minus the intersection. Update the right hand side to have the left hand side's serial numbers. Move on to the next combination of items in the list.
      4. Subtract the intersection from the left hand side. If this fails, try to subtract the right hand side from the left hand side to automatically correct. Update the left hand side. Add the intersection as a new item in the list with the serial numbers of the left hand side.

Categories


History

Steven Lambright2008-11-03 Original version
Steven Lambright2008-11-24 Added the "DETAILED" and "ERRORS" parameters.
Steven Lambright2009-01-07 Added the number of errors to the results output
Steven Lambright2009-05-27 Uses different method call to ImageOverlapSet for optimization
Steven Lambright2009-05-28 The input list will be internally sorted by serial number so that one list of input images will always produce the same results regardless of the sort order.
Christopher Austin2010-03-26 Added an error when no new overlaps are calculated. (i.e. All overlaps contain only a single Serial Number)
Christopher Austin2010-09-27 Moved the above error handling to ImageOverlapSet.
Steven Lambright2011-09-26 Improved documentation in preparation for the October release. Working with me to document findimageoverlaps was Ra'ad Saleh and Bob Sucharski.
Marjorie Hahn2016-08-05 Fixed a bug where ImageOverlapSet was not recording overlaps where one image is fully enveloped within another. Fixes #2199.
Marjorie Hahn2016-10-03 Added an exception for giving findimageoverlaps a cube list of only one cube. Fixes #4200.
Ian Humphrey2017-05-23 Added a tryLock to avoid a segfault that could occur on OSX. Fixes #4810.