ISIS Application Documentation
    Characterize jitter for rolling shutter images.
  
 
          Description
        
    
      This program calculates two sets of polynomial coefficients that characterize the jitter in an
      image acquired by a rolling shutter instrument. One polynomial for the line direction and one
      for the sample direction. The ISIS camera model for the instrument can
      then use the coefficients to adjust for the time dependent jitter.
     
    
      The coefficients are
      calculated by coregistering lines in the main cube with each line in the check line cube, where each
      check line was acquired durring the readout of the main cube using the
      same detector, but at a different time. The registration produces sample and line offsets
      which are fed into a least squares solution to determin the coeficients of an Nth degree
      polynomial in time. The coefficients are written to the cube label for use by the ISIS camera model.
     
    
      The main cube (FROM) is expected to be a full frame image collected by a rolling shutter sensor.
      The cube must have a table named "Normalized Main Readout Line Times" containing
      records for each line in the cube where
      the first column contains the sensor line number used to collect the corresponding image line,
      and the second column contains the associated exposure time (normalized -1 to 1). A table that
      meet these requirements is attacted to the cube during ingestion to ISIS (i.e., eis2isis).
     
    
      The checkline cube is expected to have individual lines (possibly repeated) from the same sensor as the
      main cube. The checklines must be read during the readout of the main image sequence. A table
      named "Normalized Main Readout Line Times" containing records for each check line
      where the first column is the sensor line number used to
      collect the corresponding check line and the second column contains the normalized time the line was
      exposed. The same minimum and maximum must be used to normalize these times as was used for
      the main image times.  
     
      An example line readout order for a 100 line sensor with 3 check lines read 3 times each
      could be (readout time for a line = line exposure number * exposure duration):
     
      Type   Line    Exp# 
             Number       
                          
      --------------------
      Main   1-10    1-10 
      Check  75      11   
      Main   11-20   12-21
      Check  50      22   
      Main   21-30   23-32
      Check  25      33   
      Main   31-40   34-43
      Check  75      44   
      Main   41-50   45-54
      Check  50      55   
      Main   51-60   56-65
      Check  25      66   
      Main   61-70   67-76
      Check  75      77   
      Main   71-80   78-87
      Check  50      88   
      Main   81-90   89-98
      Check  25      99   
      Main   91-100  100-109
    
    
      In this example the 9 check lines cause the last line of the array to be readout
      (9 * exposure duration) later than it would have without the check line readouts.
     
    
      This program was designed around work for the Europa Clipper Europa Imaging System Narrow
      Angel Camera by Randy Kirk. Since the program relies on the check lines and their 
      spatial and temporal relationship to the main lines, the program will not work with
      other instruments unless they provide similar data.
     
   
 
          Categories
        
 
              History
          
| Stuart Sides | 2020-01-20 | 
      Original version
     | 
 
 
 | 
 
 
                Parameter Groups
            
Registration
| 
                    Name
                     | 
                    Description
                     | 
 
| FROM | 
          Input cube to be jitter corrected.
         | 
 
| FROM2 | 
          Input cube containing the check lines.
         | 
 
| DEFFILE | 
          The Auto Registration template
         | 
 
| SCALE | 
          The scale of the image.
         | 
 
| TO | 
          Output file where the registration results will be written.
         | 
 
| TO2 | 
          Output file where the registration statistics will be written.
         | 
 
 
Fitting
| 
                    Name
                     | 
                    Description
                     | 
 
| TOLERANCE | 
          The tolerance that determines which points will be excluded based on the goodness of fit 
          of the registration.
         | 
 
| DEGREE | 
          The order of polynomial to solve for.
         | 
 
| MAXTIME | 
          The time, in seconds, that the last line was taken. The minimum is .0026 seconds it takes for 
          a 2250 line image to be taken plus the time it takes to take 60 check lines.
         | 
 
| COEFFICIENTTO | 
          Output file that holds the coefficients.
         | 
 
| RESIDUALTO | 
          Output file that holds the solution residuals.
         | 
 
 
 | 
 
Registration:
                        FROM
                         Description
                       
          This input cube is the cube that needs to be de-jittered. The algorithms used
          are designed for a rolling shutter instrument with an accompanying check line cube
          file (see main description). This cube file must be writable. Coefficients to adjust
          the jitter will be written to the cube labels for use by the rolling shutter camera model.
        
| 
                             Type
                            | cube | 
| 
                               File Mode
                              | input | 
| 
                               Filter
                              | 
          *.cub
         | 
 
 
Registration:
                        FROM2
                         Description
                       
          This input cube is the check line cube. It contains a set of lines that were 
          repeatedly read from the sensor array interspersed with the readout of the main
          image data.
          ...EXPAND...
        
| 
                             Type
                            | cube | 
| 
                               File Mode
                              | input | 
| 
                               Filter
                              | 
          *.cub
         | 
 
 
Registration:
                        DEFFILE
                         Description
                       
          The parameter template to use for the auto registration process. The default template
          calls the Maximum Correlation pattern matching algorithm with predefined parameter values.
          There are other templates available in the system autoreg/template directory.  Also, the user
          can use the 'autoregtemplate' application to create a new template file.
          Example minimal auto registration definition file:
          
             Object = AutoRegistration
               Group = Algorithm
                 Name = MaximumCorrelation
                 Tolerance = 0.7
                 SubPixelAccuracy = True
               EndGroup
 
               Group = PatternChip
                 Samples = 1391
                 Lines = 1 
               EndGroup
 
               Group = SearchChip
                 Samples = 1399
                 Lines = 7
               EndGroup
               Group = SurfaceModel
                 WindowSize = 7
               EndGroup
             EndObject
          
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | input | 
| 
                               Filter
                              | 
          *.def
         | 
 
 
Registration:
                        SCALE
                         Description
                       
          This is the scale of the image. Only use this parameter if you have enlarged the main cube.
          This will allow the program to access the correct normal cube line number based on the 
          un-enlarged check table values.
          Enlarging the main image by 4x is used to assist the registration from becoming pixel locked
          (i.e., registering on the whole pixel value instead of a sub-pixel)
          Example: For a 4x enlargement set this value to 4.0.
        
 
Registration:
                        TO
                         Description
                       
          The resigstration results from the bundle adjustment will be written to this file.
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | output | 
| 
                               Internal Default
                              | None | 
| 
                               Filter
                              | 
          *.csv
         | 
 
 
Registration:
                        TO2
                         Description
                       
          This file will contain the statistics gathered during the registration process. The
          format is PVL and is identical to the statistics for all auto registration applications.
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | output | 
| 
                               Internal Default
                              | None | 
| 
                               Filter
                              | 
          *.csv
         | 
 
 
Fitting:
                        TOLERANCE
                         Description
                       
          This tolerance is used by the auto registration to determine which registrations are valid and
          which are invalid. See the auto registration documentation for more information. 
        
| 
                             Type
                            | double | 
| 
                               Default
                              | .7 | 
| 
                               Minimum
                              | 0.0
                                   (inclusive)
                                  | 
 
 
Fitting:
                        DEGREE
                         Description
                       
          SOMETHING
        
| 
                             Type
                            | integer | 
| 
                               Default
                              | 3 | 
| 
                               Minimum
                              | 1
                                   (inclusive)
                                  | 
 
 
Fitting:
                        MAXTIME
                         Description
                       
          SOMETHING
          WHAT IS THIS USED FOR
        
| 
                             Type
                            | double | 
| 
                               Default
                              | 0.0027114285714286 | 
| 
                               Minimum
                              | 0.0
                                   (exclusive)
                                  | 
 
 
Fitting:
                        COEFFICIENTTO
                         Description
                       
          A comma separated value file of the line and sample coefficients. One line of line, sample for each 
          degree.
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | output | 
| 
                               Filter
                              | 
          *.csv
         | 
 
 
Fitting:
                        RESIDUALTO
                         Description
                       
          A comma separated value file of the residual information from the least squares solution. The columns are:
          Registered Line, Solved Line, Registered Line Residual, Registered Sample, Solved Sample, Sample Residual, Time Taken
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | output | 
| 
                               Internal Default
                              | None | 
| 
                               Filter
                              | 
          *.csv
         |