ISIS Application Documentation
      Create auto registration group template
  
            Description
              Categories
              Groups
              Examples
              History
          Description
        
    This program creates an auto registration group template for applications
    such as "coreg", "pointreg", "qnet", "findrx", and other ISIS software
    with a pattern matching component.  Given a specific algorithm name, it will
    create that specific algorithm group template. If a tolerance is specified,
    the application will automatically insert the tolerance keyword and value into
    the auto registration template.  The user must enter values for the
    chip sizes of both the pattern and search chips.
    
    It is highly recommended that users review the Pattern Matching document (in
    the "Related Objects and Documents" section). This is where you will find the
    available auto registration algorithms.
    
     NOTE:  This program lacks updates for the Gruen pattern matching algorithm.
    In the future, this program will be deprecated and replaced with a wizard
    (expert system) which  will help guide the user in the selection of the
    appropriate algorithm and parameter values.
  
 
          Categories
        
Applications
Documents
                Parameter Groups
            
Files
| 
                    Name
                     | 
                    Description
                     | 
| TOPVL | 
          Output text file containing auto registration template
         | 
Algorithm
| 
                    Name
                     | 
                    Description
                     | 
| ALGORITHM | 
          AdaptiveGruen, MaximumCorrelation, or MinimumDifference
         | 
| TOLERANCE | 
          Tolerance for goodness of fit (See pattern matching documentation).
         | 
| REDUCTIONFACTOR | 
          The new pattern and search chips will be this many times smaller than the originals.
         | 
| SUBPIXELACCURACY | 
          Use sub-pixel accuracy
         | 
| INTERP | 
          Interpolator to be used to load chips.
         | 
PatternChip
| 
                    Name
                     | 
                    Description
                     | 
| PSAMP | 
          Pattern Chip Sample Size
         | 
| PLINE | 
          Pattern Chip Line Size
         | 
| PMIN | 
          Pattern Chip Valid Minimum Pixel Value
         | 
| PMAX | 
          Pattern Chip Valid Maximum Pixel Value
         | 
| MINIMUMZSCORE | 
          Minimum Pattern Chip Z-Score Range (Default = 1.0)
         | 
| PVALIDPERCENT | 
          Pattern Chip Valid Pixel Percent Value (Default = 50.0)
         | 
SearchChip
| 
                    Name
                     | 
                    Description
                     | 
| SSAMP | 
          Search Chip Sample Size
         | 
| SLINE | 
          Search Chip Line Size
         | 
| SMIN | 
          Search Chip Minimum Valid Pixel Value
         | 
| SMAX | 
          Search Chip Maximum Valid Pixel Value
         | 
| SSUBCHIPVALIDPERCENT | 
          Search Subchip Valid Pixel Percent Value (Default = 50.0)
         | 
SurfaceModel
Files:
                        TOPVL
                         Description
                       
          This file will contain the auto registration group template.
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | output | 
 
Algorithm:
                        ALGORITHM
                         Description
                       
          This is the name of the algorithm (AdaptiveGruen, MaximumCorrelation,
          or MinimumDifference) for the auto registration group being created.
        
 
Algorithm:
                        TOLERANCE
                         Description
                       
          This is the value of the tolerance for the auto registration,
          represented in the template as the Tolerance keyword.
        
 
Algorithm:
                        REDUCTIONFACTOR
                         Description
                       
          Reduction factor used to speed up the pattern matching algorithm. The original pattern
          and search chips are divided by this factor to get the size of the new pattern and
          search chips.
        
| 
                             Type
                            | integer | 
| 
                               Internal Default
                              | None | 
 
Algorithm:
                        SUBPIXELACCURACY
                         Description
                       
          This option allows the user to specify if sub-pixel accuracy will be
          used in the registration.  Enables the SurfaceModel options, as those
          tests will only be performed when calculating to sub-pixel accuracy.
          When this parameter is true, SurfaceModel parameters may be selected.
        
| 
                             Type
                            | boolean | 
| 
                               Default
                              | TRUE | 
| 
                               Inclusions
                              | 
- DISTANCETOLERANCE
 
- WINDOWSIZE
 
 
 | 
 
Algorithm:
                        INTERP
                         Description
                       
          Type of interpolator to be used to read and load the pattern and
          search chips.
        
| 
                             Type
                            | string | 
| 
                               Default
                              | CUBICCONVOLUTIONTYPE | 
| 
                               Option List:
                              | 
| 
                                   Option | 
                                   Brief | 
                                   Description | 
 
| NEARESTNEIGHBORTYPE | 
              NearestNeighborType
             | 
              Indicates that a NearestNeighborType interpolator should be used
              to load chips.
             | 
 
| BILINEARTYPE | 
              BiLinearType
             | 
              Indicates that a BiLinearType interpolator should be used to load
              chips.
             | 
 
| CUBICCONVOLUTIONTYPE | 
              CubicConvolutionType
             | 
              Indicates that a CubicConvolutionType interpolator should be used
              to load chips.
             | 
 
 
 | 
 
PatternChip:
                        PSAMP
                         Description
                       
          The sample size of the pattern chip for the auto registration.
          The Sample keyword in the PatternChip group will be set to
          this value in the auto registration template.
        
 
PatternChip:
                        PLINE
                         Description
                       
          The line size of the pattern chip for the auto registration.
          The Line keyword in the PatternChip group will be set to
          this value in the auto registration template.
        
 
PatternChip:
                        PMIN
                         Description
                       
          The minimum value a pixel must have in order to be considered valid
          and used in the auto registration.  This parameter is optional, and
          does not have to be set.  The auto registration algorithm will default
          to the Isis ValidMinimum, if this parameter is not provided.
        
| 
                             Type
                            | integer | 
| 
                               Internal Default
                              | None | 
 
PatternChip:
                        PMAX
                         Description
                       
          The maximum value a pixel must have in order to be considered valid
          and used in the auto registration.  This parameter is optional, and
          does not have to be set.  The auto registration algorithm will default
          to the Isis ValidMaximum, if this parameter is not provided.
        
| 
                             Type
                            | integer | 
| 
                               Internal Default
                              | None | 
 
PatternChip:
                        MINIMUMZSCORE
                         Description
                       
          This option allows the user to specify the minimum z-score range for
          the minimum and maximum values for the pattern chip that will be
          used in the registration.  The auto registration algorithm will default
          to 1.0 if this parameter is not provided.
        
| 
                             Type
                            | double | 
| 
                               Internal Default
                              | None | 
 
PatternChip:
                        PVALIDPERCENT
                         Description
                       
          The minimum percent of pixels in the pattern chip that must be valid
          in order for the auto registration of the chip to be used.  This
          parameter is optional, and does not have to be set.  The auto
          registration algorithm will default to 50.0 if this parameter is
          not provided.
        
| 
                             Type
                            | double | 
| 
                               Internal Default
                              | None | 
 
SearchChip:
                        SSAMP
                         Description
                       
          The sample size of the search chip for the auto registration.   The
          Sample keyword in the SearchChip group will be set to this value in
          the auto registration template.
        
 
SearchChip:
                        SLINE
                         Description
                       
          The line size of the search chip for the auto registration.  The
          Line keyword in the SearchChip group will be set to this value in the
          auto registration template.
        
 
SearchChip:
                        SMIN
                         Description
                       
          The minimum value a pixel must have in order to be considered valid
          and used in the auto registration.  This parameter is optional, and
          does not have to be set.  The auto registration algorithm will default
          to the Isis ValidMinimum if this parameter is not provided.
        
| 
                             Type
                            | integer | 
| 
                               Internal Default
                              | None | 
 
SearchChip:
                        SMAX
                         Description
                       
          The maximum value a pixel must have in order to be considered valid
          and used in the auto registration.  This parameter is optional, and
          does not have to be set.  The auto registration algorithm will default
          to the Isis ValidMaximum, if this parameter is not provided.
        
| 
                             Type
                            | integer | 
| 
                               Internal Default
                              | None | 
 
SearchChip:
                        SSUBCHIPVALIDPERCENT
                         Description
                       
          The minimum percent of pixels in the subchip of the search chip that
          must be valid in order for the auto registration of the chip to be
          used.  This parameter is optional, and does not have to be set.
          The auto registration algorithm will default to 50.0 if this parameter
          is not provided.
        
| 
                             Type
                            | double | 
| 
                               Internal Default
                              | None | 
 
SurfaceModel:
                        DISTANCETOLERANCE
                         Description
                       
          Set the distance that the surface model is allowed to move away from
          the best whole pixel fit in the chip.
        
 
SurfaceModel:
                        WINDOWSIZE
                         Description
                       
          Set the surface model window size in terms of the length of a
          square window.  The pixels in this window will be used to fit a
          surface model in order to compute to sub-pixel accuracy.  Must
          be odd and greater than or equal to five.
        
| 
                             Type
                            | integer | 
| 
                               Default
                              | 5 | 
| 
                               Minimum
                              | 5
                                   (inclusive)
                                  | 
 
            Examples
          
                Example 1
        Create an auto registration template with all defaults.
      
                Description
                
        This example shows how the autoregtemplate application works, and how
        to create a simple AutoReg template.  Here, only the required parameters
        have been entered.  Because SubpixelAccuracy is "true" by default, there
        is a SurfaceModel group in the output PVL containing the default
        DistanceTolerance and WindowSize.
        
            Object = AutoRegistration
              Group = Algorithm
                Name             = MaximumCorrelation
                Tolerance        = 0.7
                SubpixelAccuracy = True
              End_Group
              Group = PatternChip
                Samples = 15
                Lines   = 15
              End_Group
              Group = SearchChip
                Samples = 31
                Lines   = 31
              End_Group
              Group = SurfaceModel
                DistanceTolerance = 1.5
                WindowSize        = 5
              End_Group
            End_Object
            End
        
        The above output is the text file resulting when the following
        command line is run:
      
 
                  Command Line
                  
autoregtemplate 
          algorithm=MaximumCorrelation tolerance=0.7  psamp=15 pline=15
          ssamp=31 sline=31 topvl=out.txt
        
          Run autoregtemplate with an algorithm name, tolerance, output file
          name, and search and pattern chip sizes.
        
 
                Example 2
        Create an auto registration template without Subpixel Accuracy and with Chip
        Interpolator specified.
      
                Description
                
        This example shows the process and results of creating an auto registration
        template that disables calculating to subpixel accuracy.  All the
        parameter values from the previous example are left the same, except
        that the SUBPIXELACCURACY keyword is set to "false".  As a result,
        there is no SurfaceModel PVL group, and none of those keywords may be
        entered.  Notice, the INTERP parameter is not specified in the
        command line.  Thus, the default cubic convolution type of interpolator
        is used to load chips.
                
            Object = AutoRegistration
              Group = Algorithm
                Name             = MaximumCorrelation
                Tolerance        = 0.7
                SubpixelAccuracy = False
                ChipInterpolator = CubicConvolutionType
              End_Group
              Group = PatternChip
                Samples = 15
                Lines   = 15
              End_Group
              Group = SearchChip
                Samples = 31
                Lines   = 31
              End_Group
            End_Object
            End
        
        The above output is the text file resulting when the following
        command line is run:
      
 
                  Command Line
                  
autoregtemplate 
          algorithm=MaximumCorrelation tolerance=0.7 subpixelaccuracy=false
           psamp=15 pline=15 ssamp=31 sline=31 topvl=out.txt
        
          Run autoregtemplate with an algorithm name, tolerance, output file
          name, search and pattern chip sizes, specified chip interpolator, but
          no subpixel accuracy computation.
        
 
                Example 3
        Create an auto registration template specifying every parameter.
      
                Description
                
        This example shows the kinds of values one might potentially enter for
        every valid keyword in an auto registration template.  Every parameter is
        specified in the template for this example.  The only parameter not
        specified in the command line is subpixel accuracy, which must remain at
        its default ("true") in order to have a SurfaceModel group in the output
        PVL.  Interp is set to the nearest neighbor chip interpolator type.
        
            Object = AutoRegistration
              Group = Algorithm
                Name             = MinimumDifference
                Tolerance        = 0.7
                ReductionFactor  = 2
                SubpixelAccuracy = True
                ChipInterpolator = NearestNeighborType
              End_Group
              Group = PatternChip
                Samples       = 15
                Lines         = 15
                ValidMinimum  = 1200
                ValidMaximum  = 2800
                MinimumZScore = 0.5
                ValidPercent  = 75.0
              End_Group
              Group = SearchChip
                Samples             = 31
                Lines               = 31
                ValidMinimum        = 1200
                ValidMaximum        = 2800
                SubchipValidPercent = 80.0
              End_Group
              Group = SurfaceModel
                DistanceTolerance = 2.5
                WindowSize        = 11
              End_Group
            End_Object
            End
       
        The above output is the text file resulting when the following command
        line is run:
      
 
                  Command Line
                  
autoregtemplate 
          algorithm=MinimumDifference tolerance=0.7 reductionfactor=2
          interp=nearestneighbor psamp=15 pline=15 pmin=1200 pmax=2800
          pvalidpercent=75 ssamp=31 sline=31 smin=1200 smax=2800
          minimumzscore = 0.5 ssubchipvalidpercent = 80 distancetolerance=2.5
          windowsize=11 topvl=out.txt
        
          Run autoregtemplate with all parameters specified by the user.
        
 
              History
          
| Elizabeth Miller | 2005-09-28 | 
      Original Version
     | 
| Jacob Danton | 2006-01-05 | 
      Added SubpixelAccuracy option.
     | 
| Jacob Danton | 2006-05-17 | 
      Added MinimumPatternZScore option and updated appTest.
     | 
| Brendan George | 2006-07-19 | 
        Moved MininmumPatternZScore keyword to PatternChip Group
     | 
| Travis Addair | 2010-04-15 | 
        Updated to use the current version of keywords accepted by AutoReg,
        improved documentation on parameters, and improved error reports.
     | 
| Travis Addair | 2010-04-22 | 
        Updated tests and examples.
     | 
| Jeannie Walldren | 2010-06-16 | 
        Added CHIPINTERPOLATOR and INTERPOLATORTYPE parameters to Algorithm
        group.  Updated examples and added error unitTest.
     | 
| Jeannie Walldren | 2010-07-20 | 
        Changed VALIDPERCENT to SSUBCHIPVALIDPERCENT parameters in SearchChip
        group.  Added PVALIDPERCENT to PatternChip group.  Updated examples
        and unit tests.
     | 
| Jeff Anderson | 2011-10-05 | 
        Updated documentation
     | 
| Kimberly Oyama | 2012-10-03 | 
        Removed the ECCENTRICITYRATIO, ECCENTRICITYTESTING, RESIDUALTESTING, and RESIDUALTOLERANCE
        parameters because they are no longer used due to the new sub-pixel registration algorithm
        that has replaced the previous surface model algorithm. Also because of the new algorithm,
        the minimum windowsize was changed from 3 to 5. The CHIPINTERPOLATOR parameter has been
        removed and the INTERPOLATORTYPE parameter has been renamed INTERP. The TO parameter has
        been changed to TOPVL. The references to the AutoReg class have been rewritten for better
        user understanding and helpful documentation has been added for some parameters. The
        documentation has been updated to reflect these changes. Fixes #1043.
     |