ISIS Application Documentation
|Standard View | TOC | Home|
Creates a control network for a list of images
This program creates a control network for a set of cubes. The program uses the footprint overlap information from findimageoverlaps to decide where multiple images overlap.
The figure above shows the outline footprint of three images. They overlap in such a way so image #1 and #2 cover some of the same area on the ground, image #2 and #3 also cover some of the same area, and all three images, #1, #2 and #3, cover the same small area down the middle.
The program will create a set of control points for each overlap and will create a control measures for each image the control point falls on. The seeding method defined in the DEFFILE, controls the location and density of the control points.
Group = PolygonSeederAlgorithm Name = Grid MinimumThickness = 0.3 MinimumArea = 100000000 XSpacing = 10000 YSpacing = 10000 End_Group
The seeding definision file above tells autoseed to use an algorithum called "Grid", not to seed points in overlaps with a thickness ratio of less than "0.3", not to seed overlaps with an area of less than "100000000 square meters", and to space the pattern of points at "10000 meters" spacing in both the X and Y directions. For seeding algorithum templates see the "$ISISROOT/appdata/templates/autoseed" directory.
The figure above shows the position of the control poinsts generated by autoseed as blue "+" using the seeding definision file above.
autoseed also has the ability to use an existing control network, CNET, to ignore overlaps that contain at least one control point. This allows the user to run autoseed multiple times with different seeding parameters and algorithms. This can be useful when one run fails to seed all the overlaps or overlaps of different size and shape need to be seeded differently.
ISIS programs that must be run prior to running autoseed:
|FROMLIST||List of input cubes for which to create a control network|
|DEFFILE||PVL file containing the definition of the autoseeding algorithm|
|OVERLAPLIST||Input cube overlap list|
|CNET||Control network containing existing control points and measures|
|ONET||Output control network|
|ERRORS||Errors generated while seeding the overlaps|
|NETWORKID||Name of this control network|
|POINTID||The pattern to be used to create point ids.|
|DESCRIPTION||The description of the network.|
Use this parameter to select a filename which contains a list of cube filenames. The cubes identified inside this file will be used to create the control network. The following is an example of the contents of a typical FROMLIST file:
AS15-M-0582_16b.cub AS15-M-0583_16b.cub AS15-M-0584_16b.cub AS15-M-0585_16b.cub AS15-M-0586_16b.cub AS15-M-0587_16b.cub
Each file name in a FROMLIST file should be on a separate line.
Use this parameter to select the filename which contains the definition of the seeding to be preformed. This file must contain a valid autoseed plugin definition in PVL format.
Use this parameter to select the file name which contains the overlap polygons to be seeded with control points. The overlap polygons can be derived by the findimageoverlaps application.
Use this parameter to provide the file name of an existing control network. The control measures in this network should correspond to the cubes in the FROMLIST. If any control point from this network falls inside one of the overlaps listed in OVERLAPLIST that overlap will be ignored (i.e., not seeded)
To combine the existing network (CNET) with the one created by autoseed (ONET) use the cnetmerge application.
|Internal Default||No previous control network|
This file will contain the output control network.
This file will contain the errors that occurred while seeding the overlaps. Including:
|Internal Default||No Error Output|
The ID or name of this particular control network. This string will be added to the ouput control network file, and can be used by you to identify the network.
This string will be used to create unique IDs for each control point created by this program. The string must contain a single series of question marks ("?"). For example: "VallesMarineris????"
The question marks will be replaced with a number beginning with zero and incremented by one each time a new control point is created. The example above would cause the first control point to have an ID of "VallesMarineris0000", the second ID would be "VallesMarineris0001" and so on. The maximum number of new control points for this example would be 10000 with the final ID being "VallesMarineris9999".
Note: Make sure there are enough "?"s for all the control points that might be created during this run. If all the possible point IDs are exausted the program will exit with an error, and will not produce an output control network file. The number of control points created depends on the size and quantity of image overlaps and the density of control points as defined by the DEFFILE parameter.
Examples of POINTID:
A text description of the contents of the output control network. The text can contain anything the user wants. For example it could be used to describe the area of interest the control network is being made for.
|Stuart Sides||2005-08-20||Original version|
|Steven Lambright||2007-07-27||Changed category from Geometry to Control Networks|
|Stuart Sides||2008-11-11||Removed terminal output code|
|Steven Lambright||2008-11-24||Added the "OVERLAPLIST" parameter.|
|Christopher Austin||2008-12-18||Added the optional CNET parameter and fixed memory leaks.|
|Christopher Austin||2008-12-22||Removed beta status, fixed a bug, and added test.|
|Christopher Austin||2009-01-26||Replaced the cerr output with the ERRORS option.|
|Christopher Austin||2009-02-09||Added the seed definition parameters to the results group of the print.prt file|
|Christopher Austin||2009-03-16||Fixed the progress objects.|
|Travis Addair||2009-08-05||Moved seed definition parameters to unique group, and encapsulated the group creation within the seeding objects.|
|Travis Addair||2009-08-11||Added .def filter to the SEEDDEF parameter.|
|Christopher Austin||2009-10-23||Added keywords to the SEEDDEF file which tell autoseed which Control Measures to mark as ignored under the keyword's conditions. These new keywords include "PixelsFromEdge", "MinEmission", "MaxEmission", "MinIncidence", "MaxIncidence", "MinResolution", and "MaxResolution". Any Control Point with less than 2 valid measures as a result of these keywords will be marked as ignored.|
|Christopher Austin||2009-11-25||Added the keywords "MinDN" and "MaxDN" to the SEEDDEF possibilities. Using these keywords will increase runtime.|
|Eric Hyer||2010-01-29||Added Results group to print.prt|
|Christopher Austin||2010-03-26||Now throws an error if the output Control Net is empty.|
|Eric Hyer||2010-04-16||Added optional parameters to results group. Also now report invalid or unrecognized keywords found in the def file to the user.|
|Sharmila Prasad||2010-04-28||Fixed error while checking for max and min dn values restriction for a valid control point. Ignore control points with special pixel dn values.|
|Christopher Austin||2010-05-05||Adapted to handle seeding in both XY and SampleLine units using the optional Seeddef keywork SeedDomain.|
|Christopher Austin||2010-06-09||Added the ControlPointsIgnored and ControlMeasuresIgnored keywords to the results group.|
|Sharmila Prasad||2010-06-30||Throw exception, when SetUniversalGround Fails|
|Christopher Austin||2010-09-27||Removed the SetUniversalGround fail exception, and added an exception when serial numbers in the overlaps list are not included in the FROMLIST.|
|Christopher Austin||2011-01-18||Altered to compile with the new Control redesign.|
|Steven Lambright||2011-04-11||Changed SEEDDEF to DEFFILE and TO to ONET as per the control network standard application parameter names.|
|Debbie A. Cook and Tracie Sucharski||2011-06-07||Changed point type "tie" to "free"|
|Travis Addair||2011-07-18||AprioriSample and AprioriLine are now set to the same values as Sample and Line when creating a new Control Measure.|
|Stuart Sides||2011-09-30||Reworked the documentation with Laszlo Kestay and Jac Shinaman|
|Debbie A. Cook||2012-11-23||Changed to use TProjection instead of Projection. References #775.|
|Jeannie Backer||2016-04-22||Modified code to get TargetRadii using the cube label and mapping group if these values can not be found using the TargetName alone. Sets control net using these radii values rather than attempting to find them again. References #3892|