Home

User Documentation

Getting Started
Learn More
Explore in Detail
Get Inspired

Contributor Documentation

Getting Started
Learn More
Explore in Detail
Get Inspired

Quick Links

Software Manual
AstroDiscuss
GitHub
API Reference

Documentation Versions

Public Release
8.2.0
8.1.0
8.0.0
7.2.0
7.1.0
7.0.0
6.0.0
3.9.0
3.5.0

ISIS 2

Documentation
Tutorials
Technical Documents
USGS

ISIS Application Documentation


slither

Standard View | TOC | Home

Computes a transformation to shift entire lines or samples

Description
Categories
Groups
History


Description

slither computes an image transformation that shifts lines up or down and samples left or right preserving whole lines and samples. The transform is computed from a control net file. These control net files are typically generated by Isis applications such as coreg and hijitreg.

The transform used to generate the output file is computed by statistically merging all the column coregistration results into one column for each row. The important values in the control net file used are the line and sample offsets. These are relative shifts in line and sample at each coregistration chip center. See coreg or hijitreg for details on registration chips.

The offsets computed are relative shifts in line and sample using a user selectable interpolation scheme via the SPLINE parameter. The type of spline selected is then used to compute the interpolation for both the line and sample offsets. They are computed independanty and applied independantly as well for each output line and sample position requested during the tranform operation.

The parameters LINEOFFSET and SAMPLEOFFSET can be used to shift the entire translation spatially in line and sample, respectively. This is indicated when the initial starting point in the coregistration application were not spatially registered, defined as the line and sample chip coordinates in both images where the same when they were correlated. Typically, hijitreg is the beneficiary of these parameters.

slither computes either a forward of reverse transform, meaning the results can be applied to the either image used in computing the coregistration values. The forward transform is typical, applying slither to the file provided in the FROM parameter of the coregistration applications.

For further analysis, a rather large volume of data is created in the RESULTS file if provided by the user. This file will contain statistics for the control points used and also for each line in the output image. Offsets for every line and the center sample is computed and written to this file, so it will have at least as many lines of data as the input image. It is really suited for plotting the resulting transform for verification and analysis.


Categories


Parameter Groups

Files

Name Description
FROM Input cube to slither
TO Output cube
CONTROL Control Net file
RESULTS Dump of line/sample interpolation and statistics

Spline parameters

Name Description
SPLINEInterpolation type to be used on the line and sample transform
DIRECTIONDirection of the transform
LINEOFFSETNumber lines to add to each shift
SAMPLEOFFSETNumber samples to add to each shift

Interpolation

Name Description
INTERPType of interpolation

Files: FROM

Description

Use this parameter to select the filename. All bands within the file will be slithered unless a specific band is specified.

Type cube
File Mode input
Filter *.cub

Files: TO

Description

This file will contain the results of the slither transform

Type cube
File Mode output

Files: CONTROL

Description

This file will contain the control net used to compute the translation. It will typically come from the coreg or hijitreg application but could come from other sources.

There are some restrictions/requirements as to the content and form of this file. First, there must only be two measures per control point. If there are any more or less than two they are silently ignored. This will typically result in failure as each interpolation option requires a minimum number of points. (If one point does not satisfy this requirement, typically none of them will and slither will terminate with an error indicating not enough points.)

Secondly, one of the measures should be identified as the reference image. The reference image is typically the image that was provided in the MATCH parameter to coreg or hijitreg. If this is not the case, slither assumes the first point is the reference image. It has no other way to determine this.

This is important because of the way control points are combined into a single column at each row. Typically, applications such as coreg and hijitreg will compute coregistration chips at the same line for each column. The line numbers are used to determine which columns are combined for each row. If the correct lines cannot be determined (with robust equvialence checking considering roundoff), then chances are good that the translation will not work properly. For example, if the reference image was erroneously selected to be the FROM parameter from the registration applications, then it would compare translated (shifted) lines and conclude that every chip is a unique row. This would result in as many rows as chips and, by definition, this would cause the interpolation to fail.

Unfortunately, this is mostly programmer controlled so when these types of problems occur, they should be reported to the Isis Support.

Type filename
Filter *.net

Files: RESULTS

Description

This file is optional and if specifed, will contain a dump of the determination of the collapse of the columns at each row and the statistics at each row. It also contains the absolute line and sample mapping for each line and (center) sample of each line as well as relative line and sample offsets at each line.

Type filename
Internal Default None
Filter *.txt

Spline parameters: SPLINE

Description

slither provides 4 different (spline) interpolation options. The interpolation option chosen is used to compute a continuous (or piecewise continous) interpolation so that each line and sample has a transform location that maps the output line and sample to a shifted input line and sample. These interpolations provide this mapping.

Type string
Default CUBIC
Option List:
Option Brief Description
LINEARLinear Interpolation of line and samples The interpolation type used to determine intermediate line and sample shifts for each line. Linear interpolation is piecewise discontinuous. This interpolation option requires a minimum 2 points.
POLYNOMIALPolynomial interpolation Uses polynomial interpolation of each line and sample shift. This option should only be used for interpolating small numbers of points because polynomial interpolation introduces large oscillations, even for well-behaved datasets. The number of terms in the interpolating polynomial is equal to the number of points. This interpolation option requires a minimum of 3 points.
CUBICCubic Spline interpolation of each line and sample Uses cubic spline with natural boundary conditions for interpolation of each line and sample shift. The resulting curve is piecewise cubic on each interval with matching first and second derivatives at the supplied data points. The second derivative is chosen to be zero at the first point and last point. This interpolation option requires a minimum of 3 points.
AKIMAAkima Spline interpolation of each line and sample Uses a non-rounded Akima spline with natural boundary conditions for interpolation of each line and sample shift. This spline uses the non-rounded corner algorithm of Wodicka. It requires a minimum of 5 points.

Spline parameters: DIRECTION

Description

This parameter provides the ability to apply the transform to either the FROM or MATCH images used to compute the control net correlation. FORWARD is used for the FROM image and REVERSE is when the MATCH, or the reference, image is provided in the FROM parameter to slither.

Type string
Default FORWARD
Option List:
Option Brief Description
FORWARDApply forward transform The FORWARD transform is the typically mode of operation for slither. This option will transform the file typically associated with the search chip, the FROM parameter, used in the registration application.
REVERSEApply reverse transform The REVERSE transform option is used to apply the transform to the image used as the pattern chip, or typically the image provided in the MATCH parameter of the coregistration applications.

Spline parameters: LINEOFFSET

Description

In some cases, an initial offset was added to start the image registration. This parameter allows for this shift to be applied to the transform. This is also equivalent to the Isis translate transform application that shifts the image spatially.

Negative values shifts the image down. Positive values shifts the image up.

Type double
Default 0.0

Spline parameters: SAMPLEOFFSET

Description

In some cases, an initial offset was added to start the image registration. This parameter allows for this shift to be applied to the transform. This is also equivalent to the Isis translate transform application that shifts the image spatially.

Note that negative values shift the image to the right. Positive values shift the image left.

Type double
Default 0.0

Interpolation: INTERP

Description

This is the type of interpolation to be performed on the input.

Type string
Default CUBICCONVOLUTION
Option List:
Option Brief Description
NEARESTNEIGHBORNearest Neighbor Each output pixel will be set to the pixel nearest the calculated input pixel.
BILINEARBi-Linear interpolation Each output pixel will be set to the value calculated by a bi-linear interpolation of the calculated input pixel.
CUBICCONVOLUTIONCubic Convolution interpolation Each output pixel will be set to the value calculated by a cubic convolution interpolation of the calculated input pixel.

History

Kris Becker2006-06-22 Original version
Brendan George2006-09-28 Documentation fixes
Brendan George2006-10-05 Modified call to get current time to point to Time class, instead of Application class
Steven Lambright2007-06-22 Fixed typo in user documentation
Steven Lambright2008-05-13 Removed references to CubeInfo
Jeannie Walldren2008-11-05 Removed references to DataInterp class and replaced them with NumericalApproximation class.