ISIS Application Documentation
    This program extracts a sub-area from a HiRise cube. 
  
            Description
              Categories
              Groups
              History
          Description
        
    This program can be used to crop lines from a HiRise cube. The purpose of 
    the application is to remove boundary image data for which the 
    corresponding CK binary file data is missing or discontiuous. The user may
    choose from one of 4 options for determining where to crop the image.
    
      - The CK file provided by the user.
 
      - A jitter analysis file provided by the user.
 
      - A user entered start and stop times.
 
      - A user entered start line and number of lines.
 
    
    
    After the crop area is chosen, the program will first verify that the start
    and stop times lie within the input cube.  If not, the values will be cropped
    further, to the nearest time that contained within the cube data. 
    The program will also verify that the crop area lies entirely within the 
    coverage area of the given camera kernel. If it does not, an error message 
    will be thrown to alert the user that the provided source for finding the 
    crop boundaries is invalid.
  
 
          Categories
        
                Parameter Groups
            
Files
| 
                    Name
                     | 
                    Description
                     | 
| FROM | 
          Input HiRISE cube.
         | 
| CK | Input CK file | 
| SCLK | Input SCLK file | 
| LSK | Input LSK file | 
| JITTER | Input jitter analysis file | 
| TO | Output cube | 
Options
| 
                    Name
                     | 
                    Description
                     | 
| SOURCE | The source of the crop boundary. | 
| STARTTIME | ET for the starting line of the cropped cube. | 
| STOPTIME | ET corresponding to the ending line of the cropped cube. | 
| LINE | First line to be kept in the cropped cube. | 
| NLINES | Number of lines to be kept in the cropped cube. | 
Files:
                        FROM
                         Description
                       
  	      The HiRISE cube which will be cropped.
        
| 
                             Type
                            | cube | 
| 
                               File Mode
                              | input | 
| 
                               Filter
                              | 
          *.cub
         | 
 
Files:
                        CK
                         Description
                       
  	      The camera kernel file that will be used to spiceinit the cube. This 
          parameter is required to validate that the chosen crop area is covered 
          in the CK kernel. It is also the default method to determine the crop 
          area, if no other crop boundary source is chosen.
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | input | 
| 
                               Default Path
                              | $mro/kernels/ck | 
| 
                               Filter
                              | *.bc | 
 
Files:
                        SCLK
                         Description
                       
          The spacecraft clock kernel file for the given cube. This parameter
          is required to find the true spacecraft clock counts and ephemeris
          times associated with the cube. The default is the highest version
          found in the mro sclk directory.
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | input | 
| 
                               Default Path
                              | $mro/kernels/sclk | 
| 
                               Internal Default
                              | Use latest MRO SCLK file | 
| 
                               Filter
                              | *.tsc | 
 
Files:
                        LSK
                         Description
                       
  	      The leapsecond file for the given cube. This parameter is required to
          find the spacecraft clock counts and ephemeris times. The default is
          the highest version found in the base lsk directory.
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | input | 
| 
                               Default Path
                              | $base/kernels/lsk | 
| 
                               Internal Default
                              | Use latest LSK file | 
| 
                               Filter
                              | *.tls | 
 
Files:
                        JITTER
                         Description
                       
          Ascii table of pixel offsets representing jitter errors in the camera
          pointing for a given time. The table has three columns:  sampleOffset,
          lineOffset, and ephemerisTimeSeconds.  The user may choose this file 
          as the crop boundary source. In that case, SOURCE=JITTER must also be
          entered. When the jitter analsis file is used, the program will find 
          earliest and latest times in the file that do not have sample and line
          offsets that both equal zero. If any other SOURCE value is chosen, 
          this file should not be entered by the user.
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | input | 
| 
                               Filter
                              | *.txt | 
 
Files:
                        TO
                         Description
                       
          The cropped output cube containing a sub-area of the input cube.
        
| 
                             Type
                            | cube | 
| 
                               File Mode
                              | output | 
| 
                               Filter
                              | *.cub | 
 
Options:
                        SOURCE
                         Description
                       
          This option determines how the boundaries of the cropped cube will 
          be chosen.
        
| 
                             Type
                            | string | 
| 
                               Default
                              | CK | 
| 
                               Option List:
                              | 
| 
                                   Option | 
                                   Brief | 
                                   Description | 
 
| CK | Use the CK file to find crop boundaries. | 
              Keep all lines in the cube that correspond to times that lie 
              entirely within the coverage area of the given camera kernel. 
              If this option is chosen, then JITTER, STARTTIME, STOPTIME, LINE,
              and NLINES should not be entered.
            Exclusions
- JITTER
 
- STARTTIME
 
- STOPTIME
 
- LINE
 
- NLINES
 
 
 | 
 
| JITTERFILE | Use a jitter analysis file to find crop boundaries. | 
              Keep all lines in the cube that correspond to times that lie 
              entirely between the first and last times in the jitter file.
              If one of these times has sample and line offsets both equal to 0, 
              then the time value is skipped and the next time in the table is 
              used. If this option is chosen, then JITTER should also be 
              entered and STARTTIME, STOPTIME, LINE, and NLINES should not be 
              entered.
            Exclusions
- STARTTIME
 
- STOPTIME
 
- LINE
 
- NLINES
 
 
 | 
 
| TIME | Enter start/stop times to find crop boundaries. | 
              Keep all lines in the cube that correspond to times that lie 
              entirely between the given start and stop times. If this option 
              is chosen, then STARTTIME and STOPTIME should also be entered 
              and JITTER, LINE, and NLINES should not be entered.
            Exclusions
 | 
 
| LINEVALUES | Enter line values to find crop boundaries. | 
              Keep all lines in the cube from LINE to (NLINES-LINE+1). If this 
              option is chosen, then LINE and NLINES should also be entered 
              and JITTER, STARTTIME, and STOPTIME should not be entered.
            Exclusions
- JITTER
 
- STARTTIME
 
- STOPTIME
 
 
 | 
 
 
 | 
 
Options:
                        STARTTIME
                         Description
                       
          The earliest time that will be kept in the cropped cube. This is the 
          initial start time for the cropped cube. If it does not correspond to
          the beginning of a line, the start time of the cropped cube will be 
          the time corresponding to the beginning of the next line in the input
          cube. This parameter should only be entered if SOURCE=TIME. If any 
          other SOURCE value is chosen, this value should not be entered by the 
          user.
        
 
Options:
                        STOPTIME
                         Description
                       
          The latest time that will be kept in the cropped cube. This is the 
          initial stop time for the cropped cube. If it does not correspond to
          the end of a line, the stop time of the cropped cube will be 
          the time corresponding to the end of the previous line in the input
          cube. This parameter should only be entered if SOURCE=TIME. If any 
          other SOURCE value is chosen, this value should not be entered by the 
          user.
        
 
Options:
                        LINE
                         Description
                       
          The line number of the input cube that will be the first line of the 
          cropped cube. This parameter should only be entered if 
          SOURCE=LINEVALUES. If any other SOURCE value is chosen, this value 
          should not be entered by the user.
        
| 
                             Type
                            | integer | 
| 
                               Minimum
                              | 1
                                   (inclusive)
                                  | 
| 
                               Inclusions
                              | 
 | 
 
Options:
                        NLINES
                         Description
                       
          The number of lines that will be taken from the input cube. The last
          line to be kept from the input cube is found by (NLINES - LINE + 1).
          If this end line is greater than the number of lines in the input
          cube, then the number of lines kept will be modified so that the 
          end line calculation equals the number of lines in the input cube.
          This parameter should only be entered if SOURCE=LINEVALUES. If any 
          other SOURCE value is chosen, this value should not be entered by the 
          user.
        
| 
                             Type
                            | integer | 
| 
                               Minimum
                              | 1
                                   (inclusive)
                                  | 
| 
                               Inclusions
                              | 
 | 
 
              History
          
| Jeannie Backer | 2012-11-21 | 
      Original version
     | 
| Lynn Weller | 2012-01-22 | 
      Application category name changed from Trim and Mask to Mars Reconnaissance Orbiter.  Fixes mantis ticket #951.
     | 
| Kristin Berry | 2015-07-31 | 
      Added additional NaifStatus::CheckErrors() calls to see if any NAIF errors were signaled. References #2248.
     |