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 | 2004-06-15 | 
      Original version (as colnorm)
     | 
| Drew Davidson | 2005-07-06 | 
      Added options for subtractive corrections
     | 
| Drew Davidson | 2005-07-06 | 
      Added process by line option and rename to cubenorm
     | 
| Drew Davidson | 2005-07-06 | 
      Modified unit test to take new options in to account
     | 
| Jeff Anderson | 2005-09-09 | 
      Major reworking and bug fixes
     | 
| Drew Davidson | 2005-10-24 | 
      Specialized to run using input files.
     | 
| Kris Becker | 2007-01-11 | 
      Incorporate UA cubenorm_plus version functionality
     | 
| Christopher Austin | 2008-03-17 | 
      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 | 2008-05-13 | 
      Removed references to CubeInfo 
     | 
| Steven Koechle | 2008-09-02 | 
      Fixed check in getstats method that sees whether you are processing by 
      line or column.
     | 
| Janet Barrett | 2009-03-10 | 
      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 | 2011-01-27 | 
      Modified for the updated Cubenorm_Filter Perl script used in the HiCal 
      pipeline at UofA. Added option NEW_VERSION
     | 
| Sharmila Prasad | 2011-02-14 | 
      Fixed GUI defaults
     |