This application creates a digital elevation model (DEM) from two images. It uses coregistration of selected corresponding points to determine match points. Each coregistered match point is then used to add additional match points in the nearby (SUBCBOX) neighborhood. Additionally, potential match point candidate are grown from the seed match points that provide full DEM coverage.
Initially, seed points are required to provide a starting point to DEM generation. Seed points can come either from a control net file (see the ISIS qnet application) or is created automatically by the application.
Automatic seed point generatation is accomplished using the Gruen co-registration algorithm. A grid of control points is created using the SPACE parameter to determine line and sample increments of the center of each point. The sizes of the "chips" are defined by the contents of the REGDEF parameter. This REGDEF file follows the ISIS3 AutoRegistration design for generic specifications of matching algorithm definitions.
Here is an example of a REGDEF file:
Object = AutoRegistration Group = Algorithm Name = AdaptiveGruen Tolerance = 0.005 MaximumIterations = 30 AffineTolerance = 1.5 SpiceTolerance = 5.0 AffineTranslationTolerance = 0.1 AffineScaleTolerance = 0.3 AffineShearTolerance = 0.3 # RadioShiftTolerance = 256 # RadioGainMinTolerance = -0.75 # RadioGainMaxTolerance = 3.0 # DefaultRadioShift = 0.0 # DefaultRadioGain = 0.0 EndGroup Group = PatternChip Samples = 21 Lines = 21 ValidPercent = 75.0 MinimumZScore = 1.7 EndGroup Group = SearchChip Samples = 31 Lines = 31 ValidPercent = 75.0 EndGroup EndObject
Parameter | Description |
---|---|
Name | Name of the algorithm that the set of parameters description apply to. This should be AdaptiveGruen. |
Tolerance | This constrains the eigenvalues of the registration result. Registrations with GoodnessOfFit larger than this value are rejected. It is highly recommended this value be utilized as it will result in better fits. (Default: Unbounded) (ISIS2 Equivalent: MAXEV) |
MaximumIterations | Maximum number of iterations allowed for the registration processing to converge. (Default: 30) (ISIS2 Equivalent: GITER) |
AffineTolerance | The amount of offset in pixels an Affine derived points is allowed to deviate from the orginal match point. (Default: Unbounded)(ISIS2 Equivalent: DAFFINE) |
SpiceTolerance | The amount of offset in pixels a registration is allowed to deviate from a registered point. (Default: Unbounded)(ISIS2 Equivalent: DSPICE) |
AffineTranslationTolerance | Specifies the threshold convergence value of the Affine translation shift in line/sample between each Gruen match iteration. If the amout of this value computed in the Gruen algorithm is less than this value, it is deemed a match point concerning the translation portion of the registered point. (Default: 0.1) (ISIS2 Eqivalent: THRESH1) |
AffineScaleTolerance | Specifies the threshold convergence value of the Affine scale in line/sample between each Gruen match iteration. If the amout of this value computed in the Gruen algorithm is less than this value, it is deemed a match point concerning the scaling portion of the registered point. (Default: 0.3) (ISIS2 Eqivalent: THRESH2) |
AffineShearTolerance | Specifies the threshold convergence value of the Affine shear in line/sample between each Gruen match iteration. If the amout of this value computed in the Gruen algorithm is less than this value, it is deemed a match point concerning the shearing portion of the registered point. (Default: AffineScaleTolerance) (ISIS2 Eqivalent: THRESH2) |
RadioShiftTolerance | Specifies the threshold convergence value for the radiometric shift of the pixel value between each Gruen match iteration. If the amout of this value computed in the Gruen algorithm is less than this value, it is deemed a match point concerning the radiometric shift portion of the registered point. (Default: Unbounded) (ISIS2 Equivalent: 256) |
RadioGainMinTolerance | Specifes the threshold convergence minimum value for the radiometric gain of the pixel value between each Gruen match iteration. If the amout of this value computed in the Gruen algorithm is greater than this value and less than RadioGainMaxTolerance, it is deemed a match point concerning the radiometric gain portion of the registered point. (Default: Unbounded) (ISIS2 Equivalent: 0.25) |
RadioGainMaxTolerance | Specifes the threshold convergence maximum value for the radiometric gain of the pixel value between each Gruen match iteration. If the amout of this value computed in the Gruen algorithm is less than this value and greater than RadioGainMinTolerance, it is deemed a match point concerning the radiometric gain portion of the registered point. (Default: Unbounded) (ISIS2 Equivalent: 4.0) |
DefaultRadioShift | Sets the default value for the radiometric shift value used as a starting point in the Gruen algorithm. (Default: 0) |
DefaultRadioGain | Sets the default value for the radiometric gain value used as a starting point in the Gruen algorithm. (Default: 0) |
Once the full grid of control points is generated, a subset of points are selected using various algorithms. The NSEED parameter determines the total number of seed points that will be selected from the result of the grid of control points. If NSEED >= 1.0, then this is taken as the total number of seed points to select. If NSEED > 0.0 but < 1.0, then NSEED is used as a fraction of the total number of control points selected. Otherwise, 5% of the control points will be selected.
The seed point selection process is governed by SEEDSAMPLE. If SEEDSAMPLE <= 0.0, then the points are selected from the best matching points as registered by the Gruen algorithm. Otherwise, a specially crafted randomized selection algorithm is used. This algorithm uses the range of control point goodness of fit (or eigenvalues in the case of the Gruen algorithm measure of registration) to compute a randomized value that is added to each eigenvalue and tested against the best (smallest) one. This algorithm is repeated until all seed points are selected.
A random number generator is required to make this algorithm work. smtk uses the GSL Random Number Generator. The default GSL random number generator used is the Mersenne Twister. Other GSL algorithms can be selected with the use of environment variables
Once the seed points are selected, generation of the DEM begins. The best registering points are selected first off the list of seed points. Each seed point is added to the final DEM point if a point does not already exist for the given line/sample coordinate. The list of final DEM match points are continually added to with points cloned from registered points at intervals SUBCBOX lines and samples if and only if the current registration point is better than the existing one at those surrounding points.
The candidate list of points are grown at adjacent line/sample coordinates by cloning the points using the Affine parameters computed for the original match point. These points are tested for validity in terms of points within the image boundary and geometric mapping. The progress of the growth stack is reported as it grows.
The DEM generation is complete when the (growth) match point stack is depleted.
The DEM is created by computing stereo elevations from the left (FROM) and right (MATCH) points. Vectors from the target (planet center) to the spacecraft and target to the surface registration points are computed for each point. From these points, the elevation is computed.
From these points, a three band cube is generated from the FROM file. The first band is elevation, second is the error in the elevation and the third is the goodness of fit (eigenvalue).
This application works best on level2 projected images that have not been mosaiced.