Loading isis/src/control/objs/ControlNetVersioner/ControlPointV0002.h +116 −10 Original line number Diff line number Diff line Loading @@ -37,17 +37,122 @@ namespace Isis { * @breif A container for the information stored in a version 2 ControlPoint. * * A wrapper around the version 2 protobuf serialization of a ControlPoint. It allows for reading * ControlPoints serialized as both PvlObjects and protobuf messages. In order to simplify the * upgrade process from version 1 to version 2, the data is always stored in a protobuf message * after being read. * ControlPoints serialized as both PvlObjects and protobuf messages. * * The version 1 and 2 control points use the same internal protobuf message format. * Thus the "upgrade" process simply copies the shared pointer to the protobuf message. * * Version 2 was the first version to have a standardized Pvl format. In the * Pvl format, control points are represented by objects contained in the * ControlNetwork object. Control measures are represented by groups * contained in the control point objects. * * <b>Valid Control Point Keywords</b> * * <ul> * <li><em>PointId:</em> The point ID string</li> * <li><em>ChooserName:</em> The name of the application or user that last * modified the point</li> * <li><em>DateTime:</em> The date and time of the last modification to the * point</li> * <li><em>AprioriXYZSource:</em> What type of source the apriori ground * point was calculated from. Options: * <ul> * <li>None</li> * <li>User</li> * <li>AverageOfMeasures</li> * <li>Reference</li> * <li>Basemap</li> * <li>BundleSolution</li> * </ul></li> * <li><em>AprioriXYZSourceFile:</em> The name of the file that the apriori * ground point was calculated from</li> * <li><em>AprioriRadiusSource:</em> What type of source the apriori point * radius was calculated from. Options: * <ul> * <li>None</li> * <li>User</li> * <li>AverageOfMeasures</li> * <li>Ellipsoid</li> * <li>DEM</li> * <li>BundleSolution</li> * </ul></li> * <li><em>AprioriRadiusSourceFile:</em> The name of the file that the * apriori point radius was calculated from</li> * <li><em>JigsawRejected:</em> If the point was rejected by a bundle * adjustment</li> * <li><em>EditLock:</em> If the point is locked out of editing</li> * <li><em>Ignore:</em> If the point will be ignored</li> * <li><em>AprioriX:</em> The body fixed X coordinate of the a priori * ground point in meters</li> * <li><em>AprioriY:</em> The body fixed Y coordinate of the a priori * ground point in meters</li> * <li><em>AprioriZ:</em> The body fixed Z coordinate of the a priori * ground point in meters</li> * <li><em>AdjustedX:</em> The body fixed X coordinate of the adjusted * ground point in meters</li> * <li><em>AdjustedY:</em> The body fixed Y coordinate of the adjusted * ground point in meters</li> * <li><em>AdjustedZ:</em> The body fixed Z coordinate of the adjusted * ground point in meters</li> * <li><em>LatitudeConstrained:</em> If the latitude of the grount point * is constrained</li> * <li><em>LongitudeConstrained:</em> If the longitude of the grount point * is constrained</li> * <li><em>RadiusConstrained:</em> If the radius of the grount point * is constrained</li> * <li><em>PointType:</em> What type of point it is. Options: * <ul> * <li>Ground</li> * <li>Tie</li> * </ul></li> * <li><em>AprioriCovarianceMatrix:</em> A six element vector corresponding * to the upper triangle; elements (0,0), (0,1), (0,2), (1,1), (1,2), * and (2,2); of the 3x3, symmetric covariance matrix for * the rectangular, a priori ground point.</li> * <li><em>AdjustedCovarianceMatrix:</em> A six element vector corresponding * to the upper triangle; elements (0,0), (0,1), (0,2), (1,1), (1,2), * and (2,2); of the 3x3, symmetric covariance matrix for * the rectangular, adjusted ground point.</li> * </ul> * * <b>Valid Control Measure Keywords</b> * * <ul> * <li><em>SerialNumber:</em> The serial number of the cube the measure * is from</li> * <li><em>ChooserName:</em> The name of the application or user who last * modified the measure</li> * <li><em>DateTime:</em> The date and time of the last modification</li> * <li><em>Diameter:</em> If the measure was selected from a crater, this * is the diameter of the crater in meters</li> * <li><em>EditLock:</em> If the measure is locked out of editing</li> * <li><em>Ignore:</em> If the measure will be ignored</li> * <li><em>JigsawRejected:</em> If the measure was rejected during a * bundle adjustment</li> * <li><em>AprioriSample:</em> The a priori sample</li> * <li><em>AprioriLine:</em> The a priori line</li> * <li><em>SampleSigma:</em> The standard deviation of the sample * measurement</li> * <li><em>LineSigma:</em> The standard deviation of the line * measurement</li> * <li><em>Sample:</em> The adjusted sample</li> * <li><em>Line:</em> The adjusted line</li> * <li><em>SampleResidual:</em> The difference between the a priori and * adjusted sample</li> * <li><em>LineResidual:</em> The difference between the a priori and * adjusted line</li> * <li><em>Reference:</em> If the measure is the reference measure for * its point</li> * <li><em>MeasureType:</em> What type of measure it is. Options: * <ul> * <li>candidate</li> * <li>manual</li> * <li>registeredpixel</li> * <li>registeredsubpixel</li> * </ul></li> * </ul> * * The version 1 and 2 control points use the same internal protobuf message, because a new * version was not created. When version 2 was added, the version 1 protobuf message was simply * modified to accomodate both versions. Thus the "upgrade" process simply copyies the shared * pointer to the protobuf message. Then, ControlPointV0003 has logic to upgrade from either a * version 1, or version 2 ControlPoint. This choice was made to reduce the amount of new code * that needed to be written during the transition from working with entire files to working with * individual control points in the versioner. * * @ingroup ControlNetwork * Loading @@ -58,6 +163,7 @@ namespace Isis { * @history 2017-12-21 Jesse Mapel - Added support for measure log data. * @history 2017-12-21 Adam Goins - Changed Pvl constructor to take PvlObject. * @history 2018-01-03 Jesse Mapel - Improved documentation. * @history 2017-01-27 Jesse Mapel - More documentation improvements. */ class ControlPointV0002 { public: Loading Loading
isis/src/control/objs/ControlNetVersioner/ControlPointV0002.h +116 −10 Original line number Diff line number Diff line Loading @@ -37,17 +37,122 @@ namespace Isis { * @breif A container for the information stored in a version 2 ControlPoint. * * A wrapper around the version 2 protobuf serialization of a ControlPoint. It allows for reading * ControlPoints serialized as both PvlObjects and protobuf messages. In order to simplify the * upgrade process from version 1 to version 2, the data is always stored in a protobuf message * after being read. * ControlPoints serialized as both PvlObjects and protobuf messages. * * The version 1 and 2 control points use the same internal protobuf message format. * Thus the "upgrade" process simply copies the shared pointer to the protobuf message. * * Version 2 was the first version to have a standardized Pvl format. In the * Pvl format, control points are represented by objects contained in the * ControlNetwork object. Control measures are represented by groups * contained in the control point objects. * * <b>Valid Control Point Keywords</b> * * <ul> * <li><em>PointId:</em> The point ID string</li> * <li><em>ChooserName:</em> The name of the application or user that last * modified the point</li> * <li><em>DateTime:</em> The date and time of the last modification to the * point</li> * <li><em>AprioriXYZSource:</em> What type of source the apriori ground * point was calculated from. Options: * <ul> * <li>None</li> * <li>User</li> * <li>AverageOfMeasures</li> * <li>Reference</li> * <li>Basemap</li> * <li>BundleSolution</li> * </ul></li> * <li><em>AprioriXYZSourceFile:</em> The name of the file that the apriori * ground point was calculated from</li> * <li><em>AprioriRadiusSource:</em> What type of source the apriori point * radius was calculated from. Options: * <ul> * <li>None</li> * <li>User</li> * <li>AverageOfMeasures</li> * <li>Ellipsoid</li> * <li>DEM</li> * <li>BundleSolution</li> * </ul></li> * <li><em>AprioriRadiusSourceFile:</em> The name of the file that the * apriori point radius was calculated from</li> * <li><em>JigsawRejected:</em> If the point was rejected by a bundle * adjustment</li> * <li><em>EditLock:</em> If the point is locked out of editing</li> * <li><em>Ignore:</em> If the point will be ignored</li> * <li><em>AprioriX:</em> The body fixed X coordinate of the a priori * ground point in meters</li> * <li><em>AprioriY:</em> The body fixed Y coordinate of the a priori * ground point in meters</li> * <li><em>AprioriZ:</em> The body fixed Z coordinate of the a priori * ground point in meters</li> * <li><em>AdjustedX:</em> The body fixed X coordinate of the adjusted * ground point in meters</li> * <li><em>AdjustedY:</em> The body fixed Y coordinate of the adjusted * ground point in meters</li> * <li><em>AdjustedZ:</em> The body fixed Z coordinate of the adjusted * ground point in meters</li> * <li><em>LatitudeConstrained:</em> If the latitude of the grount point * is constrained</li> * <li><em>LongitudeConstrained:</em> If the longitude of the grount point * is constrained</li> * <li><em>RadiusConstrained:</em> If the radius of the grount point * is constrained</li> * <li><em>PointType:</em> What type of point it is. Options: * <ul> * <li>Ground</li> * <li>Tie</li> * </ul></li> * <li><em>AprioriCovarianceMatrix:</em> A six element vector corresponding * to the upper triangle; elements (0,0), (0,1), (0,2), (1,1), (1,2), * and (2,2); of the 3x3, symmetric covariance matrix for * the rectangular, a priori ground point.</li> * <li><em>AdjustedCovarianceMatrix:</em> A six element vector corresponding * to the upper triangle; elements (0,0), (0,1), (0,2), (1,1), (1,2), * and (2,2); of the 3x3, symmetric covariance matrix for * the rectangular, adjusted ground point.</li> * </ul> * * <b>Valid Control Measure Keywords</b> * * <ul> * <li><em>SerialNumber:</em> The serial number of the cube the measure * is from</li> * <li><em>ChooserName:</em> The name of the application or user who last * modified the measure</li> * <li><em>DateTime:</em> The date and time of the last modification</li> * <li><em>Diameter:</em> If the measure was selected from a crater, this * is the diameter of the crater in meters</li> * <li><em>EditLock:</em> If the measure is locked out of editing</li> * <li><em>Ignore:</em> If the measure will be ignored</li> * <li><em>JigsawRejected:</em> If the measure was rejected during a * bundle adjustment</li> * <li><em>AprioriSample:</em> The a priori sample</li> * <li><em>AprioriLine:</em> The a priori line</li> * <li><em>SampleSigma:</em> The standard deviation of the sample * measurement</li> * <li><em>LineSigma:</em> The standard deviation of the line * measurement</li> * <li><em>Sample:</em> The adjusted sample</li> * <li><em>Line:</em> The adjusted line</li> * <li><em>SampleResidual:</em> The difference between the a priori and * adjusted sample</li> * <li><em>LineResidual:</em> The difference between the a priori and * adjusted line</li> * <li><em>Reference:</em> If the measure is the reference measure for * its point</li> * <li><em>MeasureType:</em> What type of measure it is. Options: * <ul> * <li>candidate</li> * <li>manual</li> * <li>registeredpixel</li> * <li>registeredsubpixel</li> * </ul></li> * </ul> * * The version 1 and 2 control points use the same internal protobuf message, because a new * version was not created. When version 2 was added, the version 1 protobuf message was simply * modified to accomodate both versions. Thus the "upgrade" process simply copyies the shared * pointer to the protobuf message. Then, ControlPointV0003 has logic to upgrade from either a * version 1, or version 2 ControlPoint. This choice was made to reduce the amount of new code * that needed to be written during the transition from working with entire files to working with * individual control points in the versioner. * * @ingroup ControlNetwork * Loading @@ -58,6 +163,7 @@ namespace Isis { * @history 2017-12-21 Jesse Mapel - Added support for measure log data. * @history 2017-12-21 Adam Goins - Changed Pvl constructor to take PvlObject. * @history 2018-01-03 Jesse Mapel - Improved documentation. * @history 2017-01-27 Jesse Mapel - More documentation improvements. */ class ControlPointV0002 { public: Loading