Home

Quick Links

Software Manual
GitHub
API Reference

Documentation Versions

Public Release
8.3.0
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
USGS

ISIS Application Documentation


fillgap

Standard View | TOC | Home

Compute interpolations to replace special pixels.

Description
Categories
Groups
Examples
History


Description

This program will fill in the gaps of a cube (i.e. replace special pixels with DN values) by using an interpolation scheme and a direction specified by the user.

Note: This application will not extrapolate DN values beyond the endpoints of a data set. For example, if you choose to fill gaps that run across lines, then any special pixel values in the first or last vertical column of the image will not be filled. If any of these are not in a corner, you can run fillgap again using the output of the first run as input and SAMPLE as the DIRECTION parameter. Corner pixels can be filled by using the specpix application or the lowpass filter application.


Categories


Parameter Groups

Files

Name Description
FROM Input file.
TO Output file.

Interpolation Scheme

Name Description
INTERPInterpolation type to be used on the line and sample transform

Direction

Name Description
DIRECTIONDirection of bad pixels

Files: FROM

Description

Input file to be filled.

Type cube
File Mode input
Filter *.cub

Files: TO

Description

Output cube.

Type cube
File Mode output
Filter *.cub

Interpolation Scheme: INTERP

Description

fillgap provides 3 different 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. This is done by collecting the known DN values for each line or sample column and using the chosen interpolation scheme to approximate the missing DN values (special pixels).

Type string
Default CUBIC
Option List:
Option Brief Description
LINEARLinear Interpolation of lines and samples This interpolation type is used to determine intermediate line and sample shifts for each line. Linear interpolation is piecewise discontinuous. This interpolation option requires a minimum 2 points.
CUBICNatural Cubic Spline interpolation of each line or sample column This interpolation uses a 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 This interpolation 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.

Direction: DIRECTION

Description

This is the direction of the special pixels across the image. If the special pixels run through the bands of the image data, try both directions to see which works best.

Type string
Default SAMPLE
Option List:
Option Brief Description
SampleAcross samples The special pixels run horizontally across the image samples.
LineAcross lines The special pixels run vertically across the image lines.
BandAcross Bands The special pixels run 3-D through the image bands.

Examples


Example 1

Fill horizontal gaps of peaks image

Description

This example shows the fillgap application using the default parameters SAMPLE and CUBIC. This will fill horizontal gaps in data using a cubic spline on the DN values of each vertical column of samples.

Command Line

fillgap from=../IN/peaks-h-null.cub to=OUT/output.cub interp=cubic direction=sample
fillgap gui example

GUI Screenshot

Fillgap Gui

Example Gui

Screenshot of GUI with parameters filled in to perform a fillgap operation on the input image.

Input Image

Input Peaks image

Input image for fillgap

Parameter Name: FROM

This is the input image for the fillgap example with null horizontal line.

Output Image

Output image showing results of the fillgap application.

Output image for fillgap

Parameter Name: TO

This is the output image that results after a cubic interpolation to fill the null data gaps.


Example 2

Fill gaps of Cassini ISS image

Description

This example shows the fillgap application using the LINE and CUBIC parameters. This will fill vertical gaps in data using a cubic spline on the DN values of each horizontal line.

Command Line

fillgap from=../IN/N1506393614_2.sp.cub to=OUT/N1506393614_2.sp.line.cub interp=cubic direction=line
fillgap gui example

GUI Screenshot

Fillgap Gui

Example Gui

Screenshot of GUI with parameters filled in to perform a fillgap operation on the input image.

Input Image

Input Cassini ISS image

Input image for fillgap

Parameter Name: FROM

This is a Cassini ISS image that has been altered to include each type of special pixels on an edge of the image.

Output Image

Output image showing results of the fillgap application.

Output image for fillgap

Parameter Name: TO

This is the output image that results after a cubic interpolation to fill the special pixel data gaps. Notice the special pixels that move across samples and touch edges are not filled. This includes the block of null pixels at the top left corner of the image. This happens because the valid data only does not exist on both sides of these gaps and extrapolation is not permited. However, the special pixels that touch the upper and lower edges are filled since these gaps move across lines.


Example 3

Fill gaps of Cassini ISS image

Description

This example shows the fillgap application on the output of Example 2. Here we use the SAMPLE parameter to fill the remaining horizontal gaps in data using the DN values of each vertical column of samples.

Command Line

fillgap from=../IN/N1506393614_2.sp.line.cub to=OUT/N1506393614_2.sp.linesamp.cub interp=cubic direction=sample
fillgap gui example

GUI Screenshot

Fillgap Gui

Example Gui

Screenshot of GUI with parameters filled in to perform a fillgap operation on the input image.

Input Image

Input Cassini ISS image

Input image for fillgap

Parameter Name: FROM

This is a Cassini ISS image that has been altered to include each type of special pixels on an edge of the image. Some of these pixels have already been filled by a previous run of fill gap (see Example 2).

Output Image

Output image showing results of the fillgap application.

Output image for fillgap

Parameter Name: TO

This is the output image that results after a cubic interpolation to fill the special pixel data gaps. Notice all special pixels have been filled except the top left corner of the image. Special pixels in the corners of an image can not be filled by the fillgap application since they are beyond the endpoints of any known data values (i.e. DNs values of samples and lines).


History

Stacy Alley2007-08-08 based off slither - first version of fillgap
Christopher Austin2008-01-30 Changed INTERP option CUBIC's name to CUBICCONVOLUTION to correlate with other apps using the INTERP param.
Jeannie Walldren2008-11-05 Removed references to DataInterp class and replaced them with NumericalApproximation class.
Jeannie Walldren2009-04-21 Added an exception catch so the application may continue if the interpolation fails for some pixel. Added a message to the log to inform users how many pixels were not filled. Updated user documentation to explain what they may do if this occurs. Changed the INTERP parameter CUBICCONVOLUTION back to CUBIC since this application uses a cubic spline, not cubic convolution. Added test cases and documentation examples.