ISIS Application Documentation
Normalize columns in a HiRise cube by performing a lowpass/highpass filter
Description
Categories
Groups
History
Description
This program was created by adding the HiRise specific code from Eric
Eliason's Cubenorm_Filter script to the cubenorm program. Statistics
are first acquired from an input cube or from a PVL file or table that
was previously generated by the cubenorm program.
A combination lowpass/highpass filter is run on the columnar averages
and median values for the input cube. The filter used to do the lowpass
filtering is a one dimensional filter whose long dimension is an odd
positive value greater than one.
There is an option to create a normalized output cube by applying either
a multiplicative or subtractive correction to the data of the input cube.
The normalization is performed using the updated statistics that have been
filtered. The columnar averages or medians can be chosen as the normalizer.
Each pixel is normalized by subtracting the normalization factor or
by multiplying by the normalization factor.
There is an option NEW_VERSION which uses the updated logic for correcting
Average and Median columns of the cubenorm stats. Similar processing is done
individually for the Average and Median columns with combination of high
and low pass filters. The left and right edges are problamatic and are cut
out at the pause points. There are changes in the number of samples to be
NULLed on left/right edge of the image depending on the Channel in the
newer version. These samples are Nulled to avoid filter ringing.
For binning mode equal to 1, the number of iterations running lowpass
filter is increased to 50 from the original 10. The highpass filter performs
by checking for MaxValid pixels and filters by either divide or subtract
option depending on the user specified MODE while earlier it was only
subtraction. The highpass filter also Marks the samples with missing pixels
(less than MaxValid Pixels) due to a problem with furrows or noise. The
output of the highpass filter is checked for Markers and set to
1/0(Divide/Subtract) depending on the previous sample value. The direction
left/right is based on the Channel.
Categories
Applications
Parameter Groups
Files and options
Name

Description

FROM 
Input cube

TO 
Optional output cube

STATS 
Optional stats file

NEW_VERSION  New version of cubenorm filter 
FORMAT  Format type of STATS file (TABLE or PVL) 
Statistics Options
Name

Description

STATSOURCE  Input source of statistics to apply to FROM cube 
FROMSTATS  Optional statistics input file source 
HIGHPASS_MODE 
Apply subtraction or division for highpass filter

Filter options
Name

Description

FILTER  Size of boxcar filter 
PAUSECROP  Exclude column averages at the pause points 
Normalization options
Name

Description

NORMALIZER 
Apply normalization using average or median

MODE 
Apply coefficients through subtraction or division

PRESERVE  Preserve the input image median/average 
Files and options:
FROM
Description
Use this parameter to select input HiRise file
Type
 cube 
File Mode
 input 
Filter

*.cub

Files and options:
TO
Description
Output file with input columns divided by the column average
Type
 cube 
File Mode
 output 
Pixel Type
 real 
Internal Default

No Output file will be created

Files and options:
STATS
Description
Statistical output of each column
(band #, column #, valid pixels, average, median, std, min, max)
Type
 filename 
File Mode
 output 
Internal Default

No Output file will be created

Files and options:
NEW_VERSION
Description
This option is used to correct average and median Stats from
cubenorm application for the hiproc pipeline using latest version
1.9 2009/12/22 18:48:39 of Eric Eliason's hical pipeline
Type
 boolean 
Default
 FALSE 
Files and options:
FORMAT
Description
Specify the format type of the statistics file, either
use tabular or PVL style format.
Type
 string 
Default
 TABLE 
Option List:

Option 
Brief 
Description 
TABLE  Create TABLE output 
Statistics data to be generated in tabluar form, each
sample column is placed in a row in the tabluar output.

PVL  Create PVL output 
Statistics data to be in PVL (Parameter Value
Language) format


Statistics Options:
STATSOURCE
Description
This option is intended to be used when the statistics come from
a source other than the input cube (default). cubenorm initial
derives all its statistics from the input cube and applies it as
specified by the user in the same run. This works for most
conditions but does not works so well with abrupt changes
in brightness such as craters or poles.
With this option, it is now possible to have the statistics come
a file in a format compatable with the STATS output file. This can
be a TABLE or PVL formatted input file. This allows statistics
from other cubenorm runs to be used as input statistics source.
It also allows intermediate processing on the FROM stats to
apply additional smoothing or culling techniques.
Type
 string 
Default
 CUBE 
Option List:

Option 
Brief 
Description 
CUBE  Statistics are computed from FROM input cube 
This is the old behavior. The statistics are computed from
the input cube as specified by the FROM parameter. They
are also applied to the TO file if specifed in the same run.
Exclusions

PVL  Statistics are provided in FROMSTATS in PVL format 
This option requires a filename in FROMSTATS with PVL formatted
data. This format is the same format as is generated in the STATS
output file.

TABLE  Statistics are provided in FROMSTATS in TABLE format 
This option requires a filename in FROMSTATS with TABLE formatted
data. This format is the same format as is generated in the STATS
output file.


Statistics Options:
FROMSTATS
Description
This optional file provides the statistics that are applied to the input
FROM file. Its format must be TABLE or PVL and consistant with
the STATS file output format.
If this option is utilized, the statistics gathering step is bypassed.
Type
 filename 
File Mode
 input 
Internal Default

Optional Input Statistics file 
Filter
 *.txt 
Statistics Options:
HIGHPASS_MODE
Description
This option is used to choose subtract/divide for the highpass
filter
Type
 string 
Default
 HIGHPASS_DIVIDE 
Option List:

Option 
Brief 
Description 
HIGHPASS_DIVIDE  Use Division for highpass filter 
This option will use division for highpass filter

HIGHPASS_SUBTRACT  Use Subtraction for highpass filter 
This option will use subtraction for highpass filter


Filter options:
FILTER
Description
This is the total number of samples in the boxcar. It must be a
positive odd integer.
Type
 integer 
Default
 5 
Minimum
 3
(inclusive)

Odd

This value must be an odd number

Filter options:
PAUSECROP
Description
This option is used to exclude the column averages (11 pixels) at the pause points
in the image array. This option only applies to images with a bin mode of 1.
Type
 boolean 
Default
 TRUE 
Normalization options:
NORMALIZER
Description
This option is used to select if column or line is normalized using its average or median
Type
 string 
Default
 MEDIAN 
Option List:

Option 
Brief 
Description 
MEDIAN  Use column/line median when normalizing 
This option will use the median of the column/line when normalizing each column/line

AVERAGE  Use column/line average when normalizing 
This option will use the average of the column/line when normalizing each column/line


Normalization options:
MODE
Description
This option is used to select select how normalization coefficients are applied, either subtracting or dividing by
the average or median.
Type
 string 
Default
 DIVIDE 
Option List:

Option 
Brief 
Description 
DIVIDE  Divide column/row by its median/average 
This option will divide each column (or row) by its normalizer (median or average).

SUBTRACT  Subtract median/average from column/row 
This option will subtract the normalizer (median or average) from each column (or row).


Normalization options:
PRESERVE
Description
This option is used to preserve the average/median of the input image. If turned off, the output image
average of the data will be one (unity) for the DIVIDE mode or zero for the SUBTRACT mode.
Type
 boolean 
Default
 TRUE 
History
Eric Eliason  20040615 
Original version (as colnorm)

Drew Davidson  20050706 
Added options for subtractive corrections

Drew Davidson  20050706 
Added process by line option and rename to cubenorm

Drew Davidson  20050706 
Modified unit test to take new options in to account

Jeff Anderson  20050909 
Major reworking and bug fixes

Drew Davidson  20051024 
Specialized to run using input files.

Kris Becker  20070111 
Incorporate UA cubenorm_plus version functionality

Christopher Austin  20080317 
Changed a single valid pixel's RowCol's Standard Deviation to 0 instead of
Isis:Null. When reading in a table file, all Standard Deviations less
than 0 are considered 0.

Steven Lambright  20080513 
Removed references to CubeInfo

Steven Koechle  20080902 
Fixed check in getstats method that sees whether you are processing by
line or column.

Janet Barrett  20090310 
Changed name to hicubenorm and added Eric Eliason's highpass filter
code from the Cubenorm_Filter Perl script used in the pipeline at
UofA.

Sharmila Prasad  20110127 
Modified for the updated Cubenorm_Filter Perl script used in the HiCal
pipeline at UofA. Added option NEW_VERSION

Sharmila Prasad  20110214 
Fixed GUI defaults
