ISIS Application Documentation
     Generate an updated control network with fewer points, with efficient spatial distributed across images. 
  
 
          Description
        
    
      cnetthinner will compute the most efficient spatial control 
      point distribution for each image in the control network using an input number of maximum points. This would typically
      be used for very densely populated control networks that could be processed 
      more quickly if some of the less-useful control points or measures were ignored or removed. cnetthinner's goal is to decrease the total number 
      of control points without compromising their spatial coverage, as much as is possible. 
     
    
      cnetthinner accomplishes this goal using an algorithm called Suppression via Disk Covering (SDC) [1] to select 
      the most spacially-efficient control points to retain.        
     
    
      The maximum and minimum number of Control Points to keep in the output Control Network can 
      be specified with the MAXPOINTS and MINPOINTS parameters. MAXPOINTS must be specified by the user and should be determined by examining the current size and density of the Control Network. Suppressed Control Points can either be set to Ignored or Removed entirely from the output 
      Control Network using the SUPPRESSED parameter. The results can also be adjusted using the WEIGHT and TOLERANCE
      parameters. The TOLERANCE parameter adjusts how flexible the number of output points allowed from the suppression
      calculation is around the MAXPOINTS value and the WEIGHT parameter adjusts how much each input control point's strength is weighted in the algorithm, specifically based on the number of valid measures with "goodness of fit" it has.  
     
    
cnetthinner will output a Control Network and also output a Results PVL group. The Results group provides the following information about the results: 
 
Group = Results
  Points = (Original Number of Points)
  Saved = (Number Of Points Retained)
  Suppressed = (Number of Points Ignored or Removed) 
  Efficiency = (Number of Points Removed / Original Number of Points) * 100 percent
End_Group
 
  
  References
    
    Efficiently selecting spatially distributed keypoints for visual tracking
    S Gauglitz, L Foschini, M Turk, T Höllerer
    Image Processing (ICIP), 18th IEEE International Conference on, 1869-1872
    
    
   
 
          Categories
        
 
              History
          
| Kris Becker | 2016-09-27 | 
        Original Version
     | 
 
| Kristin Berry | 2016-11-25 | 
	      Add documentation, error-checking, and updates to meet ISIS coding
        standards and get checked in. Changed application name from
        cnetsuppress to cnetthinner on Kris's request. 
     | 
 
| Kris Becker | 2020-01-20 | 
        In file CnetManager.cpp, method KPoint::calculateStrength.
        Replaced BOOST ASSERT (abort) with the line "if ( count LE 0 ) return ( 0 )"
        to prevent a divide by zero and subsequent seg fault if a point doesn't
        contain valid measures when computing the point depth weight.
     | 
 
| Ken Edmundson | 2023-11-30 | 
        Moved Kris Becker's bug fix of 2020-01-20 from UofA code base to USGS
        code base and updated documentation. References #5354.
     | 
 
 
 | 
 
 
                Parameter Groups
            
Files
Parameters
 | 
 
Files:
                        CNET
                         Description
                       
	    The input Control Network to calculate a spacially-efficient subset of. 
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | input | 
| 
                               Internal Default
                              | None | 
| 
                               Filter
                              | *.net | 
 
 
Files:
                        ONET
                         Description
                       
          The output Control Network, which is the result of the suppression calculation on the input Control
	  Network. 
        
| 
                             Type
                            | filename | 
| 
                               File Mode
                              | output | 
| 
                               Internal Default
                              | None | 
| 
                               Filter
                              | 
          *.ctl *.pvl *.net
         | 
 
 
Parameters:
                        WEIGHT
                         Description
                       
              A weight factor of the natural LOG(#Measures) * WEIGHT is applied 
              to the AVERAGE(GoodnessOfFit) of all the measures to produce the 
              strength of a control point for purposes of selecting the best 
              points of spatial distribution accross the images in the control 
              network. The equation is:
             
                 AVERAGE(GoodnessOfFit of all Measures) * (1 + LOG(#Measures) * WEIGHT) 
             
           
 
Parameters:
                        TOLERANCE
                         Description
                       
             This tolerance factor adjusts the range of acceptable point count output results.     
	     Valid range is: 0.0 - 1.0. (Though 1.0 will result in only 1 output point.) 
          
 
Parameters:
                        MAXPOINTS
                         Description
                       
              Specify the number of control points per image to retain. 
              Typically, the absolute minimum points would be 3, but more are 
              better. In some cases, you may hundreds or perhaps 25 or so.
           
 
Parameters:
                        MINPOINTS
                         Description
                       
              For non-reference images that may have very little overlap,    
              this is the minimum number of control points to retain regardless 
              of the total points contained in the overlap. This is intended to 
              retain the minimum number of points jigsaw requires to produce an 
              acceptable bundle adjustment.
            
 
Parameters:
                        NETWORKID
                         Description
                       
           Users have the option to rename the output control network. 
         
| 
                             Type
                            | string | 
| 
                               Internal Default
                              | None |