Home

Quick Links

Software Manual
GitHub
API Reference

Documentation Versions

Public Release
8.3.0
8.2.0
8.1.0
8.0.0
7.2.0
7.1.0
7.0.0
6.0.0
3.9.0
3.5.0
USGS

ISIS Application Documentation


cnetstats

Standard View | TOC | Home

The application cnetstats has the ability to generate statistics and apply filters on a Control Network and outputs results in a specified output file in CSV format.

Description
Categories
Groups
History


Description

The application cnetstats has the ability to generate Statistics and apply filters on a Control Network and the results are saved to specified output file in CSV (Comma Separated Value) format.

Application takes in as input the Control Net CNET and its corresponding images list FROMLIST. FROMLIST contains the filenames of all the images that are part of the input Control Net. When application is run it will generate a Control Net Statistics in PVL format. This is displayed in the Application Gui and also logged in the print.prt file. The Control Net Statistics are generated for all the Points in the Control Net irrespective of all the different options chosen.

Following is the Control Net Statistics format:

Group = ControlNetSummary
TotalImages = Positive Integer
ImagesInControlNet = Positive Integer
TotalPoints = Positive Integer
ValidPoints = Positive Integer
IgnoredPoints = Positive Integer
FixedPoints = Positive Integer
ConstrainedPoints = Positive Integer
FreePoints = Positive Integer
EditLockPoints = Positive Integer
TotalMeasures = Positive Integer
ValidMeasures = Positive Integer
IgnoredMeasures = Positive Integer
EditLockMeasures = Positive Integer
AvgResidual = Double
MinResidual = Double
MaxResidual = Double
MinLineResidual = Double
MaxLineResidual = Double
MinSampleResidual = Double
MaxSampleResidual = Double
MinLineShift = Double
MaxLineShift = Double
MinSampleShift = Double
MaxSampleShift = Double
AvgPixelShift = Double
MinPixelShift = Double
MaxPixelShift = Double
MinGoodnessOfFit = Double
MaxGoodnessOfFit = Double
MinEccentricity = Double
MaxEccentricity = Double
MinPixelZScore = Double
MaxPixelZScore = Double
MinConvexHullRatio = Double
MaxConvexHullRatio = Double
AvgConvexHullRatio = Double
EndGroup

Additional Statistics can be generated if required based on Images and/or Control Points into the user specified output file.

1. Image Stats provides Statistics based on Images in the Control Net. To generate Image Stats report, click on the option CREATE_IMAGE_STATS which will enable IMAGE_STATS_FILE option. Image Stats are generated in CSV format in the output file specified in the option IMAGE_STATS_FILE. It also reports images that are part of the input list but not in the Control Net. For images that are not part of the Control Net, the image stats would be zero.
Following is the Image Stats information in CSV format:

FilenameSerialNumberImageTotalPoints ImagePointsIgnoredImagePointsEditLockedImagePointsFixedImagePointsConstrainedImagePointsFree ImageConvexHullRatio

2. Point Stats provides statistics based on Control Points in the Control Net. To generate the Point Stats report, click on the CREATE_POINT_STATS option which will enable POINT_STATS_FILE option. Point Stats are generated in CSV format in the output file specified in the option POINT_STATS_FILE. Following are the information generated by this option:
PointIdPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresValidMeasuresIgnoredMeasuresEditLocked

cnetstats also has the option to Filter the input ControlNet based on different Filters. To apply Filters, the FILTER option must be enabled and the Filters in PVL format must be provided in the DEFFILE. The results of the Filters will be placed in the specified output file FLATFILE in CSV format. Each Filter has its own custom report format and hence the output format is different depending on the last Filter used.
Note:The Points and Measure with EditLocks will always be filtered in irrespective of the filter settings.
The DEFFILE contains the PVL filters in the following format:

Object = Filters
Group = FilterName1
option = value
EndGroup
Group = FilterName2
option = value
EndGroup
EndObject

The DEFFILE is validated upfront before any processing to save time involved in reading a Control Net. It is important that the DEFFILE adheres to the specified format. The DEFFILE can contain as many filters as available and the application will apply the filters sequentially in the First In First Out fashion. The output of the previous Filter will be the input for the current Filter. The report generated will be based on the last Filter run on the Control Net. It should also be noted that a Filter can be defined only once in a DEFFILE that means it can be run only once during an execution of cnetstats. If the Filter needs to be run again, the application must be run again with this Filter in the DEFFILE.

In any given Filter if it requires options LessThan/GreaterThan the values will always be inclusive. For example, in measures Filter, if LessThan = 3 and GreaterThan =1, cnetstats will find all the Control Points with Control Measures >= 1 and <=3.

There are 2 kinds of Filters, Point Filters and Cube Filters.

Following are the Point Filters:
1. ResidualMagnitude
2. Id
3. Measures
4. Properties
5. Latitude Longitude Range
6. Distance
7. Measure Properties
8. Cube Names(Serial Number)
9. EditLock
10. Measures EditLock
11.Pixel Shift
12.Goodness of Fit

Following are the Cube Filters:
1. Name
2. Number of Points
3. Distance
4. Convex Hull Ratio

The Format for the output files will be in Comma Separated Value(CVS).

1. ResidualMagnitude - Filter the ControlNet by Control Point ResidualMagnitude. This Filter, filters all the Control Points which have atleast one Control Measure in the specified range. Options LessThan and GreaterThan can be combined which will be applied as a Range or used alone. These values will always be inclusive. To omit an option, it can be deleted from the group.
Object = Filters
Group = Point_ResidualMagnitude
LessThan = Double
GreaterThan = Double
EndGroup
EndObject

Report Format:
PointIDPointTypePointIgnoredPointEditLockedFilename SerialNumberResidualMagnitudeMeasureTypeMeasureIgnoredMeasureEditLocked Reference



2. Id - Filter the Control Net by the specified Control Point Id Expression. Wildcard '*' is allowed any number of times in the Expression. This filters all the Control Points matching the expression.
Object = Filters
Group = Point_IdExpression
Expression = String
EndGroup
EndObject

Report Format:
PointIDPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresIgnoredMeasuresEditLocked



3. Measures - Filter the Control Net by the specified number of Control Measures in a Control Point. Options LessThan and GreaterThan can be combined which will be applied as a Range or used alone. These values will always be inclusive. To omit an option, it can be deleted from the group.
Object = Filters
Group = Point_NumMeasures
LessThan = Positive Integer
GreaterThan = Positive Integer
EndGroup
EndObject

Report Format:
PointIDPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresIgnoredMeasuresEditLockedFilenameSerialNumberMeasureType MeasureIgnoredMeasureEditLockedReference



4. Properties - Filter the Control Net by Control Point Properties "Ignore" and/or Type "Fixed", "Constrained", "Free". If both Control Point Type and Ignore is used, then the Filter will filter Control Points of the specified type and ignore flag. Options can be combined. To omit an option, it can be set to "false" or just deleted from the group.
Object = Filters
Group = Point_Properties
PointType =All / Fixed / Constrained / Free
Ignore = true/false
EndGroup
EndObject


Report Format:
PointIDPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresIgnoredMeasuresEditLocked



5. Latitude Longitude Range - Filter the Control Net by Control Points location (Latitude/Longitude). Control Points in the specified Minimum and Maximum Latitude/Longitude Range are filtered. The Filter Options can be combined. To omit an option, it can be deleted from the group. Note that any unset value will default to Minimum and Maximum double value.
Object = Filters
Group = Point_LatLon
MinLat = Double
MaxLat = Double
MinLon = Double
MaxLon = Double
EndGroup
EndObject


Report Format:
PointIDPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresIgnoredMeasuresEditLockedLatitude LongitudeRadius



6. Distance - Filter the Control Net by the specified distance between the Control Points. All the Control Points which are less than or equal to the specified distance will be filtered. The units can be in pixels/meters and the output distance will be in the specified units. Default is pixels.
Object = Filters
Group = Point_Distance
MaxDistance = Double
Units = meters/pixels
EndGroup
EndObject


Report Format: Displays the Control Point information and a field Point#Distance. This field has the Control Point ID and the distance. This indicates the distance of the current Control Point from the Control Point in Point#Distance

PointIDPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresIgnoredMeasuresEditLockedPoint#Distance >>



7. Measure Properties - Filter the Control Net by Control Measure properties like Ignore and/or Measure Type (Manual, Estimated, Auto-Registered, Manual_Validated, AutoReg_Validated). There is an option "All" to include all Control Measure Types. To omit an option, it can be set to "false" or just deleted from the group.
Object = Filters
Group = Point_MeasureProperties
MeasureType = All / Manual/Estimated / Auto-Registered / Manual_Validated / AutoReg_Validated
Ignored = true/false
EndGroup
EndObject


Report Format:
PointIDPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresIgnoredMeasuresEditLockedFileNameSerialNumberMeasureIgnored MeasureType MeasureEditLocked Reference



8. Cube Names (Serial Number) - Filter the Control Net by Cube Serial Number. Only the Control Points with the specified Image as one of their Measures will be Filtered in. Any number of Cubes can be entered with "Cube=". The report will also display the Image information for all the other Control Measures in the filtered Control Points.
Object = Filters
Group = Point_CubeNames
Cube = Serial Number1
Cube = Serial Number2
EndGroup
EndObject


Report Format:
PointIDPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresIgnoredMeasuresEditLockedFileNameSerialNumberImageTotalPoints ImagePointsIgnoredImagePointsEditLockedImagePointsFixedImagePointsConstrainedImagePointsFree ImageConvexHullRatioImageMeasureIgnoredImageMeasureEditLocked



9. Point EditLock - Filter the Control Net for all Control Points that have EditLock set to user specified true/false.
Object = Filters
Group = Point_EditLock
EditLock = true/false
EndGroup
EndObject


Report Format:
PointIDPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresIgnoredMeasuresEditLocked



10. Measure EditLock - Filter the ControlNet for all Control Points that have the number of Control Measures with the EditLock in the user specified range. Options LessThan and GreaterThan can be combined which will be applied as a Range or used alone. These values will always be inclusive. To omit an option, it can be deleted from the group.
Object = Filters
Group = Point_NumMeasuresEditLock
LessThan = Positive Integer
GreaterThan = Positive Integer
EndGroup
EndObject


Report Format:
PointIDPointTypePointIgnoredPointEditLockedTotalMeasures MeasuresIgnoredMeasuresEditLockedFilenameSerialNumberMeasureType MeasureIgnoredMeasureEditLockedReference



11. Pixel Shift - Filter the ControlNet for all Control Points whose maximum pixel shift are in the user specified range. These values will always be inclusive. Options LessThan and GreaterThan can be combined which will be applied as a Range or used alone. To omit an option, it can be deleted from the group.
Object = Filters
Group =Point_PixelShift
LessThan = Double
GreaterThan = Double
EndGroup
EndObject


Report Format:
PointIDPointTypePointIgnoredFilenameSerialNumber PixelShiftMeasureTypeMeasureIgnoredMeasureEditLockedReference



12. Goodness Of Fit - Filter the ControlNet by Control Measure's GoodnessOfFit. These values will always be inclusive. Options LessThan and GreaterThan can be combined which will be applied as a Range or used alone. To omit an option, it can be deleted from the group.
Group = Point_GoodnessOfFit
LessThan = Double
GreaterThan = Double
EndGroup


Report Format:
PointIDPointTypePointIgnoredPointEditLocked TotalMeasuresMeasuresIgnoredMeasuresEditLocked FileNameSerialNumberGoodnessOfFitMeasureType MeasureIgnoredMeasureEditLockedReference



Following are the Cube Filters:
1. Name - Filter the Control Net by the Cube Serial Number Expression. Wildcard '*' is allowed any number of times in the Expression. All the Control Points which have the cubes with Serial Numbers matching the expression will be filtered.
Object = Filters
Group = Cube_NameExpression
Expression = String
EndGroup
EndObject


Report Format:
FileNameSerialNumberImageTotalPoints ImagePointsIgnoredImagePointsEditLockedImagePointsFixed ImagePointsConstrainedImagePointsFreeImageConvexHullRatio



2. Number of Points - Filter the Control Net for all the Cubes/Images by the user specified number of Control Points in each Cube. All the Cubes which have the user specified number of Control Points will be filtered. These values will always be inclusive. Options LessThan and GreaterThan can be combined which will be applied as a Range or used alone. To omit an option, it can be deleted from the group.
Object = Filters
Group = Cube_NumPoints
LessThan = Positive Integer
GreaterThan =Positive Integer
EndGroup
EndObject


Report Format:
FileNameSerialNumberImageTotalPoints ImagePointsIgnoredImagePointsEditLockedImagePointsFixed ImagePointsConstrainedImagePointsFreeImageConvexHullRatio



3. Distance - Filter the Control Net by the specified distance between the Control Points in an Image. All the Images which have Points which are <= to the specified distance between them will be filtered in. The units can be in pixels/meters. Default is pixels.
Object = Filters
Group = Cube_Distance
MaxDistance = Double
Units = meters/pixels
EndGroup
EndObject


Report Format:
FileNameSerialNumberImageTotalPoints ImagePointsIgnoredImagePointsEditLockedImagePointsFixed ImagePointsConstrainedImagePointsFreeImageConvexHullRatio Distance_PointIDs >>


4. Convex Hull Ratio - Filter the Control Net for all the Cubes/Images by the user specified Convex Hull Ratio of all valid Control Points in each Cube.
Convex Hull Example The convex hull or convex envelope for a set of points X in a real vector space V is the minimal convex set containing X.

ConvexHullRatio = Convex Hull / Image Area.
All the Cubes whose ConvexHullRatio is in the specified range will be filtered in. These values will always be inclusive. Options LessThan and GreaterThan can be combined which will be applied as a Range or used alone. To omit an option, it can be deleted from the group.
Object = Filters
Group = Cube_ConvexHullRatio
LessThan = Positive double
GreaterThan =Positive double
EndGroup
EndObject


Report Format:
FileNameSerialNumberImageTotalPoints ImagePointsIgnoredImagePointsEditLockedImagePointsFixed ImagePointsConstrainedImagePointsFreeImageConvexHullRatio




Categories


Parameter Groups

Input

Name Description
FROMLISTList of Input cubes in the Control Net
CNETInput Control Net

Filter

Name Description
FILTERApply filters on the Control Net
DEFFILEInput Filter Definition file
FLATFILEOutput Flat File

Statistics

Name Description
CREATE_IMAGE_STATSGenerates stats of all the Images in the Control Net
IMAGE_STATS_FILEGenerates stats of all the Images in the Control Net
CREATE_POINT_STATSGenerates stats of all the Points in the Control Net
POINT_STATS_FILEContains statistics of all the Points in the Control Net

Input: FROMLIST

Description

Use this parameter to specify the cube filenames which are associated with the Control Net.

Type filename
File Mode input
Filter *.lis

Input: CNET

Description

This file must contain Control Net with valid points and measurements

Type filename
File Mode input
Filter *.net

Filter: FILTER

Description

Apply filters on the Control Net defined in the DEFFILE. The resulting stats are logged in the Output FLATFILE.

Type boolean
Internal Default false
Inclusions
  • DEFFILE
  • FLATFILE

Filter: DEFFILE

Description

This file contains the filters to be run on the Control Network for which the statistics is generated and printed onto the Output file.
The DEFFILE contains the PVL filters in the following format:

Object = Filters
Group = FilterName1
option = value
EndGroup
Group = FilterName2
option = value
EndGroup
EndObject

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

Filter: FLATFILE

Description

This file will contain statistics in the csv format for the specified Filters.

Type filename
File Mode output
Internal Default None

Statistics: CREATE_IMAGE_STATS

Description

When Enabled, generates the statistics of all the Images wrt the Control Net into the IMAGE_STATS_FILE.

Type boolean
Internal Default false
Inclusions
  • IMAGE_STATS_FILE

Statistics: IMAGE_STATS_FILE

Description

This file will contain statistics of all the Images wrt the Control Net. It also reports images that are part of the input list but not in the Control Net. For images that are not part of the Control Net, the image stats would be zero. Following is the Image Stats information in CSV format.

FilenameSerialNumberTotalPoints PointsIgnoredPointsEditLockedFixedConstrainedFree

Type filename
File Mode output
Internal Default None

Statistics: CREATE_POINT_STATS

Description

When Enabled, generates the statistics of all the Control Points in the Control Net into the POINT_STATS_FILE.

Type boolean
Internal Default false
Inclusions
  • POINT_STATS_FILE

Statistics: POINT_STATS_FILE

Description

This file contains the statistics of all the Control Points in the Control Net. It has the following information in CSV format.

PointIdPointTypePointIgnorePointEditLockTotalMeasures MeasuresValidMeasuresIgnoredMeasuresEditLocked

Type filename
File Mode output
Internal Default None

History

Sharmila Prasad2010-08-04 Original version
Sharmila Prasad2010-09-17 Removed unused Format group and modified to verify the input before the actual stats processing
Sharmila Prasad2010-09-27Validate DefFile comparing with the Template. Record the DefFile in the Log
Sharmila Prasad2010-10-06 Modified for binary control net
Sharmila Prasad2011-07-21 Report and filter by new data members edit lock, residual tolerance and pixelshift
Sharmila Prasad2011-07-28 Report the stats for the input controlnet for now
Sharmila Prasad, Mark Rosiek, Ken Edmundson2011-10-05Updated Documentation
Sharmila Prasad2011-11-03Added functionality to filter by Image's Convex Hull Ratio. Fixes Mantis #305
Sharmila Prasad2011-12-29Updated GoodnessOfFit Filter and added ControlNet stats for ControlMeasureLogData. Fixes Mantis #652
Kristin Berry2015-06-04Updated ControlNetStatistics to throw errors when output files cannot be opened or successfully written to. Fixes #996.