User Documentation

Getting Started
Learn More
Explore in Detail
Get Inspired

Contributor Documentation

Getting Started
Learn More
Explore in Detail
Get Inspired

Quick Links

Software Manual
API Reference

Documentation Versions

Public Release


Technical Documents

ISIS Application Documentation


Standard View | TOC | Home

Generate an updated control network with fewer points, with efficient spatial distributed across images.



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


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


Parameter Groups


Name Description
ONET Output


Name Description
WEIGHTWeight applied to control point
TOLERANCEPoint count tolerance
MAXPOINTSNumber of points to retain per image
MINPOINTSSelect minimum number of points to save
SUPPRESSEDDisposition of removed points
NETWORKIDName of the resulting network

Files: CNET


The input Control Network to calculate a spacially-efficient subset of.

Type filename
File Mode input
Internal Default None
Filter *.net

Files: ONET


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


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) 

Type double
Default 0.0

Parameters: TOLERANCE


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.)

Type double
Default 0.1

Parameters: MAXPOINTS


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.

Type double

Parameters: MINPOINTS


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.

Type double
Default 3.0

Parameters: SUPPRESSED


Type string
Default REMOVE
Option List:
Option Brief Description
IGNORE Set suppressed points to IGNORE
REMOVE Remove points that were suppressed

Parameters: NETWORKID


Users have the option to rename the output control network.

Type string
Internal Default None


Kris Becker2016-09-27 Original Version
Kristin Berry2016-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 Becker2020-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 Edmundson2023-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.