Isis 3 Programmer Reference
Isis::ControlPointV0003 Class Reference

A container for the information stored in a version 3 and 4 ControlPoint. More...

#include <ControlPointV0003.h>

Collaboration diagram for Isis::ControlPointV0003:
Collaboration graph

Public Member Functions

 ControlPointV0003 (PvlObject &pointObject)
 Create a ControlPointV0003 object from a version 3 or 4 control point Pvl object.
 
 ControlPointV0003 (QSharedPointer< ControlPointFileEntryV0002 > pointData)
 Create a ControlPointV0003 object from a protobuf version 2 control point message.
 
 ControlPointV0003 (ControlPointV0002 &oldPoint)
 Create a ControlPointV0003 object from a ControlPointV0002 object.
 
const ControlPointFileEntryV0002 & pointData ()
 Access the protobuf control point data.
 

Private Member Functions

 ControlPointV0003 ()
 Default constructor.
 
 ControlPointV0003 (const ControlPointV0003 &other)
 Copy constructor.
 
ControlPointV0003operator= (const ControlPointV0003 &other)
 Assignment operator.
 
void copy (PvlContainer &container, QString keyName, QSharedPointer< ControlPointFileEntryV0002 > point, void(ControlPointFileEntryV0002::*setter)(bool))
 This convenience method takes a boolean value from a PvlKeyword and copies it into a version 2 protobuf field.
 
void copy (PvlContainer &container, QString keyName, QSharedPointer< ControlPointFileEntryV0002 > point, void(ControlPointFileEntryV0002::*setter)(double))
 This convenience method takes a double value from a PvlKeyword and copies it into a version 2 protobuf field.
 
void copy (PvlContainer &container, QString keyName, QSharedPointer< ControlPointFileEntryV0002 > point, void(ControlPointFileEntryV0002::*setter)(const std::string &))
 This convenience method takes a string value from a PvlKeyword and copies it into a version 2 protobuf field.
 
void copy (PvlContainer &container, QString keyName, ControlPointFileEntryV0002_Measure &measure, void(ControlPointFileEntryV0002_Measure::*setter)(bool))
 This convenience method takes a boolean value from a PvlKeyword and copies it into a version 2 protobuf field.
 
void copy (PvlContainer &container, QString keyName, ControlPointFileEntryV0002_Measure &measure, void(ControlPointFileEntryV0002_Measure::*setter)(double))
 This convenience method takes a double value from a PvlKeyword and copies it into a version 2 protobuf field.
 
void copy (PvlContainer &container, QString keyName, ControlPointFileEntryV0002_Measure &measure, void(ControlPointFileEntryV0002_Measure::*setter)(const std::string &))
 This convenience method takes a string value from a PvlKeyword and copies it into a version 2 protobuf field.
 

Private Attributes

QSharedPointer< ControlPointFileEntryV0002 > m_pointData
 protobuf container that holds information used to create a control point.
 

Detailed Description

A container for the information stored in a version 3 and 4 ControlPoint.

A wrapper around the version 3 and 4 protobuf serialization of a ControlPoint. It allows for reading ControlPoints serialized as both PvlObjects and protobuf messages. It also allows for upgrading version 2 ControlPoints to version 3 and 4 ControlPoints.

The version 3 and 4 binary serialization of ControlPoint use the same protobuf message, so this class works with both versions. The difference between the version 3 and 4 Pvl serializations is Ground and Tie points were renamed to Fixed and Free respectively. This is sufficiently minor that it is handled in the pvl constructor.

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.

Valid Control Point Keywords

  • PointId: The point ID string
  • ChooserName: The name of the application or user that last modified the point
  • DateTime: The date and time of the last modification to the point
  • AprioriXYZSource: What type of source the apriori ground point was calculated from. Options:
    • None
    • User
    • AverageOfMeasures
    • Reference
    • Basemap
    • BundleSolution
  • AprioriXYZSourceFile: The name of the file that the apriori ground point was calculated from
  • AprioriRadiusSource: What type of source the apriori point radius was calculated from. Options:
    • None
    • User
    • AverageOfMeasures
    • Ellipsoid
    • DEM
    • BundleSolution
  • AprioriRadiusSourceFile: The name of the file that the apriori point radius was calculated from
  • JigsawRejected: If the point was rejected by a bundle adjustment
  • EditLock: If the point is locked out of editing
  • Ignore: If the point will be ignored
  • AprioriX: The body fixed X coordinate of the a priori ground point in meters
  • AprioriY: The body fixed Y coordinate of the a priori ground point in meters
  • AprioriZ: The body fixed Z coordinate of the a priori ground point in meters
  • AdjustedX: The body fixed X coordinate of the adjusted ground point in meters
  • AdjustedY: The body fixed Y coordinate of the adjusted ground point in meters
  • AdjustedZ: The body fixed Z coordinate of the adjusted ground point in meters
  • LatitudeConstrained: If the latitude of the ground point is constrained
  • LongitudeConstrained: If the longitude of the ground point is constrained
  • RadiusConstrained: If the radius of the ground point is constrained
  • PointType: What type of point it is. Options:
    • Fixed
    • Ground
    • Constrained
    • Free
    • Tie
  • AprioriCovarianceMatrix: 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.
  • AdjustedCovarianceMatrix: 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.

Valid Control Measure Keywords

  • SerialNumber: The serial number of the cube the measure is from
  • ChooserName: The name of the application or user who last modified the measure
  • DateTime: The date and time of the last modification
  • Diameter: If the measure was selected from a crater, this is the diameter of the crater in meters
  • EditLock: If the measure is locked out of editing
  • Ignore: If the measure will be ignored
  • JigsawRejected: If the measure was rejected during a bundle adjustment
  • AprioriSample: The a priori sample
  • AprioriLine: The a priori line
  • SampleSigma: The standard deviation of the sample measurement
  • LineSigma: The standard deviation of the line measurement
  • Sample: The adjusted sample
  • Line: The adjusted line
  • SampleResidual: The difference between the a priori and adjusted sample
  • LineResidual: The difference between the a priori and adjusted line
  • Reference: If the measure is the reference measure for its point
  • MeasureType: What type of measure it is. Options:
    • candidate
    • manual
    • registeredpixel
    • registeredsubpixel
Author
2017-12-14 Jesse Mapel
History

2017-12-14 Jesse Mapel - Original version.

2017-12-21 Jesse Mapel - Added support for measure log data.

2017-12-21 Adam Goins - Changed Pvl constructor to take PvlObject.

2017-12-21 Adam Goins - Changed Pvl constructor to not used the deprecated "ToProtocolBuffer()" call from ControlMeasureLogData.

2018-01-03 Jesse Mapel - Improved documentation.

2017-01-27 Jesse Mapel - More documentation improvements.

Definition at line 160 of file ControlPointV0003.h.

Constructor & Destructor Documentation

◆ ControlPointV0003() [1/5]

Isis::ControlPointV0003::ControlPointV0003 ( PvlObject & pointObject)

Create a ControlPointV0003 object from a version 3 or 4 control point Pvl object.

Parameters
pointObjectThe control point and its measures in a Pvl object

Definition at line 40 of file ControlPointV0003.cpp.

References copy(), Isis::PvlContainer::deleteKeyword(), Isis::PvlContainer::hasKeyword(), Isis::IException::Io, Isis::PvlContainer::keywords(), m_pointData, Isis::PvlContainer::name(), Isis::IException::Programmer, Isis::toDouble(), and Isis::IException::User.

◆ ControlPointV0003() [2/5]

Isis::ControlPointV0003::ControlPointV0003 ( QSharedPointer< ControlPointFileEntryV0002 > pointData)

Create a ControlPointV0003 object from a protobuf version 2 control point message.

Parameters
pointDataThe protobuf message from a control net file.

Definition at line 29 of file ControlPointV0003.cpp.

◆ ControlPointV0003() [3/5]

Isis::ControlPointV0003::ControlPointV0003 ( ControlPointV0002 & oldPoint)

Create a ControlPointV0003 object from a ControlPointV0002 object.

Parameters
oldPointThe PvlControlPointV0002 that will be upgraded to V0003.

Definition at line 276 of file ControlPointV0003.cpp.

References m_pointData, Isis::toString(), and Isis::IException::User.

◆ ControlPointV0003() [4/5]

Isis::ControlPointV0003::ControlPointV0003 ( )
private

Default constructor.

Intentionally un-implemented.

◆ ControlPointV0003() [5/5]

Isis::ControlPointV0003::ControlPointV0003 ( const ControlPointV0003 & other)
private

Copy constructor.

Intentionally un-implemented.

Parameters
otherThe other ControlPointV0003 to copy from.

Member Function Documentation

◆ copy() [1/6]

void Isis::ControlPointV0003::copy ( PvlContainer & container,
QString keyName,
ControlPointFileEntryV0002_Measure & measure,
void(ControlPointFileEntryV0002_Measure::*)(bool) setter )
private

This convenience method takes a boolean value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control measure that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]measureThe version 2 protobuf representation of the control measure that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 675 of file ControlPointV0003.cpp.

◆ copy() [2/6]

void Isis::ControlPointV0003::copy ( PvlContainer & container,
QString keyName,
ControlPointFileEntryV0002_Measure & measure,
void(ControlPointFileEntryV0002_Measure::*)(const std::string &) setter )
private

This convenience method takes a string value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control measure that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]measureThe version 2 protobuf representation of the control measure that the value will be into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 737 of file ControlPointV0003.cpp.

◆ copy() [3/6]

void Isis::ControlPointV0003::copy ( PvlContainer & container,
QString keyName,
ControlPointFileEntryV0002_Measure & measure,
void(ControlPointFileEntryV0002_Measure::*)(double) setter )
private

This convenience method takes a double value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control measure that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]measureThe version 2 protobuf representation of the control measure that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 708 of file ControlPointV0003.cpp.

References Isis::toDouble().

◆ copy() [4/6]

void Isis::ControlPointV0003::copy ( PvlContainer & container,
QString keyName,
QSharedPointer< ControlPointFileEntryV0002 > point,
void(ControlPointFileEntryV0002::*)(bool) setter )
private

This convenience method takes a boolean value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control point that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]pointThe version 2 protobuf representation of the control point that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 584 of file ControlPointV0003.cpp.

Referenced by ControlPointV0003().

◆ copy() [5/6]

void Isis::ControlPointV0003::copy ( PvlContainer & container,
QString keyName,
QSharedPointer< ControlPointFileEntryV0002 > point,
void(ControlPointFileEntryV0002::*)(const std::string &) setter )
private

This convenience method takes a string value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control point that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]pointThe version 2 protobuf representation of the control point that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 646 of file ControlPointV0003.cpp.

◆ copy() [6/6]

void Isis::ControlPointV0003::copy ( PvlContainer & container,
QString keyName,
QSharedPointer< ControlPointFileEntryV0002 > point,
void(ControlPointFileEntryV0002::*)(double) setter )
private

This convenience method takes a double value from a PvlKeyword and copies it into a version 2 protobuf field.

Once copied, the PvlKeyword is deleted.

If the keyword doesn't exist, this does nothing.

Parameters
containerThe PvlContainer representation of the control point that contains the PvlKeyword.
keyNameThe name of the keyword to be copied.
[out]pointThe version 2 protobuf representation of the control point that the value will be copied into.
setterThe protobuf mutator method that sets the value of the field in the protobuf representation.

Definition at line 617 of file ControlPointV0003.cpp.

References Isis::toDouble().

◆ operator=()

ControlPointV0003 & Isis::ControlPointV0003::operator= ( const ControlPointV0003 & other)
private

Assignment operator.

Intentionally un-implemented.

Parameters
otherThe other ControlPointV0003 to assign from.
Returns
ControlPointV0003& A reference to this after assignment.

◆ pointData()

const ControlPointFileEntryV0002 & Isis::ControlPointV0003::pointData ( )

Access the protobuf control point data.

If there is not internal point data then default point data is returned. Note that default point data may be missing required fields.

Returns
const ControlPointFileEntryV0002& A constant reference to the internal control point data. There is no guarantee that the point data is fully initialized.

Definition at line 561 of file ControlPointV0003.cpp.

References m_pointData.

Referenced by Isis::ControlNetVersioner::createPoint().

Member Data Documentation

◆ m_pointData

QSharedPointer<ControlPointFileEntryV0002> Isis::ControlPointV0003::m_pointData
private

protobuf container that holds information used to create a control point.

Definition at line 214 of file ControlPointV0003.h.

Referenced by ControlPointV0003(), ControlPointV0003(), and pointData().


The documentation for this class was generated from the following files: