Isis 3 Programmer Reference
Isis::BundleControlPoint Class Reference

This class holds information about a control point that BundleAdjust needs to run correctly. More...

#include <BundleControlPoint.h>

Inheritance diagram for Isis::BundleControlPoint:
Inheritance graph
Collaboration diagram for Isis::BundleControlPoint:
Collaboration graph

Public Member Functions

 BundleControlPoint (BundleSettingsQsp bundleSettings, ControlPoint *point)
 Constructs a BundleControlPoint object from a ControlPoint. More...
 
 BundleControlPoint (const BundleControlPoint &src)
 Copy constructor. More...
 
 ~BundleControlPoint ()
 Destructor for BundleControlPoint. More...
 
BundleControlPointoperator= (const BundleControlPoint &src)
 
void copy (const BundleControlPoint &src)
 Copies given BundleControlPoint to this BundleControlPoint. More...
 
BundleMeasureQsp addMeasure (ControlMeasure *controlMeasure)
 Creates a BundleMeasure from the given ControlMeasure and appends it to this BundleControlPoint's measure list. More...
 
void computeResiduals ()
 Computes the residuals for this BundleControlPoint. More...
 
void setAdjustedSurfacePoint (SurfacePoint surfacePoint)
 Sets the adjusted surface point for this BundleControlPoint. More...
 
void setNumberOfRejectedMeasures (int numRejected)
 Sets the number of rejected measures for this BundleControlPoint. More...
 
void setRejected (bool reject)
 Sets this BundleControlPoint to rejected or not rejected. More...
 
void setWeights (const BundleSettingsQsp settings)
 Sets the weights using the given BundleSettings QSharedPointer and a conversion value for meters to radians. More...
 
void setSigmaWeightFromGlobals (double gSigma, int index)
 Sets the member sigmas and weights from a global sigma. More...
 
void setSigmaWeightFromGlobals (double gSigma, int index, double cFactor)
 
void zeroNumberOfRejectedMeasures ()
 Resets the number of rejected measures for this BundleControlPoint to zero. More...
 
void productAlphaAV (double alpha, SparseBlockMatrix &sparseNormals, LinearAlgebra::Vector &v1)
 Perform the matrix multiplication v2 = alpha ( Q x v1 ). More...
 
void applyParameterCorrections (LinearAlgebra::Vector imageSolution, SparseBlockMatrix &sparseNormals, const BundleTargetBodyQsp target)
 Apply the parameter corrections to the bundle control point. More...
 
ControlPointrawControlPoint () const
 Accessor for the raw ControlPoint object used for this BundleControlPoint. More...
 
bool isRejected () const
 Method used to determine whether this control point is rejected. More...
 
int numberOfMeasures () const
 Accesses number of measures associated with this BundleControlPoint. More...
 
int numberOfRejectedMeasures () const
 Accesses the number of rejected measures for this BundleControlPoint. More...
 
double residualRms () const
 Gets the root-mean-square (rms) of the BundleControlPoint's residuals. More...
 
SurfacePoint adjustedSurfacePoint () const
 Accesses the adjusted SurfacePoint associated with this BundleControlPoint. More...
 
QString id () const
 Accesses the Point ID associated with this BundleControlPoint. More...
 
ControlPoint::PointType type () const
 Accesses BundleControlPoint's type. More...
 
SurfacePoint::CoordinateType coordTypeReports () const
 Accesses BundleControlPoint's coordinate type for reports. More...
 
SurfacePoint::CoordinateType coordTypeBundle () const
 Accesses BundleControlPoint's control point coordinate type for the bundle adjustment. More...
 
boost::numeric::ublas::bounded_vector< double, 3 > & corrections ()
 Accesses the 3 dimensional ordered vector of correction values associated with coord1, coord2, and coord 3 (latitude, longitude, and radius or X, Y, and Z. More...
 
boost::numeric::ublas::bounded_vector< double, 3 > & aprioriSigmas ()
 Accesses the 3 dimensional ordered vector of apriori sigmas (apriori coordinate1, apriori coordinate2, apriori coordinate3). More...
 
boost::numeric::ublas::bounded_vector< double, 3 > & adjustedSigmas ()
 Accesses the 3 dimensional ordered vector of adjusted sigmas (adjusted coordinate1, adjusted coordinate2, adjusted coordinate3). More...
 
boost::numeric::ublas::bounded_vector< double, 3 > & weights ()
 Accesses the 3 dimensional ordered vector of weight values associated with coordinate1, coordinate2, and coordinate3. More...
 
boost::numeric::ublas::bounded_vector< double, 3 > & nicVector ()
 Accesses the 3 dimensional ordered NIC vector. More...
 
SparseBlockRowMatrixcholmodQMatrix ()
 Accesses the CholMod matrix associated with this BundleControlPoint. More...
 
QString formatBundleOutputSummaryString (bool errorPropagation) const
 Formats an output summary string for this BundleControlPoint. More...
 
QString formatBundleOutputDetailString (bool errorPropagation, bool solveRadius=false) const
 Formats a detailed output string table for this BundleControlPoint. More...
 
QString formatBundleLatitudinalOutputDetailString (bool errorPropagation, bool solveRadius=false) const
 Formats a detailed output string table for this Latitudinal BundleControlPoint. More...
 
QString formatBundleRectangularOutputDetailString (bool errorPropagation) const
 Formats a detailed output string table for this Rectangular BundleControlPoint. More...
 
QString formatValue (double value, int fieldWidth, int precision) const
 Formats the given double precision value using the specified field width and precision. More...
 
QString formatAprioriSigmaString (SurfacePoint::CoordIndex index, int fieldWidth, int precision, bool solveRadius=false) const
 Formats the apriori sigma value indicated by the given type code. More...
 
QString formatCoordAprioriSigmaString (SurfacePoint::CoordIndex index, int fieldWidth, int precision, bool solveRadius=false) const
 Formats the apriori coordinate 1 (latitude or X) sigma value. More...
 
QString formatAdjustedSigmaString (SurfacePoint::CoordIndex, int fieldWidth, int precision, bool errorPropagation) const
 Formats the adjusted sigma value indicated by the given type code. More...
 
QString formatCoordAdjustedSigmaString (SurfacePoint::CoordIndex, int fieldWidth, int precision, bool errorPropagation) const
 Formats the adjusted coordinate sigma value. More...
 

Private Member Functions

void updateAdjustedSurfacePointLatitudinally (const BundleTargetBodyQsp target)
 Apply the parameter corrections to the bundle control point latitudinally. More...
 
void updateAdjustedSurfacePointRectangularly ()
 pointer to the control point object this represents More...
 

Private Attributes

ControlPointm_controlPoint
 
boost::numeric::ublas::bounded_vector< double, 3 > m_corrections
 corrections to point parameters More...
 
boost::numeric::ublas::bounded_vector< double, 3 > m_aprioriSigmas
 apriori sigmas for point parameters More...
 
boost::numeric::ublas::bounded_vector< double, 3 > m_adjustedSigmas
 adjusted sigmas for point parameters More...
 
boost::numeric::ublas::bounded_vector< double, 3 > m_weights
 weights for point parameters More...
 
boost::numeric::ublas::bounded_vector< double, 3 > m_nicVector
 array of NICs (see Brown, 1976) More...
 
SparseBlockRowMatrix m_cholmodQMatrix
 The CholMod matrix associated with this point. More...
 
SurfacePoint::CoordinateType m_coordTypeReports
 BundleControlPoint coordinate type. More...
 
SurfacePoint::CoordinateType m_coordTypeBundle
 

Detailed Description

This class holds information about a control point that BundleAdjust needs to run correctly.

This class was created to extract functionality from BundleAdjust and wrap a ControlPoint with the extra necessary information to correctly perform a bundle adjustment.

Note that only non-ignored control points should be used to construct a BundleControlPoint. Similarly, a BundleControlPoint should only contain non-ignored control measures.

Author
2014-05-22 Ken Edmundson
History:

2014-05-22 Ken Edmundson - Original version.

2015-02-20 Jeannie Backer - Added unitTest. Reformatted output strings. Brought closer to ISIS coding standards.

2016-06-27 Jesse Mapel - Updated documentation and ISIS coding standards in preparation for merging IPCE into ISIS. Fixes #4075.

2016-08-15 Ian Humphrey - Added computeResiduals(), setNumberOfRejectedMeasures(), setRejected(), zeroNumberOfRejectedMeasures(), numberOfRejectedMeasures(), residualRms(), and type(). Modified numberMeasures() to return this->size(), since only non-ignored control measures will be added to this BundleControlPoint. Updated unit test for these methods (except computeResiduals). References #4173.

2016-08-15 Jesse Mapel - Changed contained member data type to a shared pointer. Added wrapper methods for several ControlPoint methods. Fixes #4159.

2016-10-27 Tyler Wilson - Modified formatRadiusAprioriSigmaString, formatAprioriSigmaString, and formatBundleOutputDetailString to accept a third argument (bool solveRadius) with a default value = false. References #4317.

2017-07-26 Debbie A. Cook - Added BundleSettings and metersToRadians as arguments to constructor and moved setWeights call from BundleAdjust::init into constructor. Added m_bundleControlPointCoordinateType. This option determines how control point coordinates are entered into BundleControlPoint, interpreted throughout the adjustment, and output. The coordinate type needs to be in this class, because BundleControlPoints are created without a parent control net and added to a control net later. Made format methods generic in regards to coordinate type. Added utility method setSigmaWeightFromGlobals. Merged methods formatLatitudeAdjustedSigmaString, formatLongitudeAdjustedSigmaString, and formatRadiusAdjustedSigmaString into a single generic coordinate method with an additional argument for the coordinate index. Did a similar merge for the family of
methods like formatLatitudeAprioriSigmaString. Moved some of the functionality from BundleAdjust to this class as a new method applyParameterCorrections. Also had to move BundleAdjust method productAlphaAV to this class to support applyParameterCorrections. References #4649 and #501.

2017-08-24 Debbie A. Cook - Revised output units to be compatible with output from previous versions, corrected units throughout in comments and code. Reference #4649 and #501.

2018-01-05 Debbie A. Cook - Added new members m_coordTypeReports and m_coordTypeBundle to copy method. Reference #4649 and #501.

2018-05-31 Debbie A. Cook - Moved code from BundleAdjust::applyParameterCorrections pertaining to updating the adjusted surface point and method productAlphaAv into new methods applyParameterCorrections, updateAdjustedSurfacePointLatitudinally, and updateAdjustedSurfacePointRectangularly in BundleControlPoint. Reference #4649 and #501.

2018-09-28 Debbie A. Cook - Removed the metersToRadians argument from the constructor and from the setWeights method since we are now using the local radius of the point to convert lat/lon sigmas from meters to radians. References #4649 and #501.

Definition at line 105 of file BundleControlPoint.h.

Constructor & Destructor Documentation

◆ BundleControlPoint() [1/2]

Isis::BundleControlPoint::BundleControlPoint ( BundleSettingsQsp  bundleSettings,
ControlPoint controlPoint 
)

Constructs a BundleControlPoint object from a ControlPoint.

Only the non-ignored measures are added to the BundleControlPoint.

Parameters
controlPointPointer to a ControlPoint that will be used to construct this BundleControlPoint.

Definition at line 25 of file BundleControlPoint.cpp.

References addMeasure(), Isis::ControlPoint::GetMeasure(), m_adjustedSigmas, m_aprioriSigmas, m_coordTypeReports, m_corrections, m_nicVector, m_weights, Isis::Null, and setWeights().

◆ BundleControlPoint() [2/2]

Isis::BundleControlPoint::BundleControlPoint ( const BundleControlPoint src)

Copy constructor.

Constructs a BundleControlPoint object from an existing BundleControlPoint.

Parameters
srcThe BundleControlPoint to be copied.

Definition at line 69 of file BundleControlPoint.cpp.

References copy().

◆ ~BundleControlPoint()

Isis::BundleControlPoint::~BundleControlPoint ( )

Destructor for BundleControlPoint.

Definition at line 77 of file BundleControlPoint.cpp.

Member Function Documentation

◆ addMeasure()

BundleMeasureQsp Isis::BundleControlPoint::addMeasure ( ControlMeasure controlMeasure)

Creates a BundleMeasure from the given ControlMeasure and appends it to this BundleControlPoint's measure list.

Parameters
controlMeasureThe ControlMeasure to be converted.
Returns
BundleMeasure* A pointer to the new BundleMeasure.

Definition at line 117 of file BundleControlPoint.cpp.

Referenced by BundleControlPoint().

◆ adjustedSigmas()

boost::numeric::ublas::bounded_vector< double, 3 > & Isis::BundleControlPoint::adjustedSigmas ( )

Accesses the 3 dimensional ordered vector of adjusted sigmas (adjusted coordinate1, adjusted coordinate2, adjusted coordinate3).

Returns
boost::numeric::ublas::bounded_vector<double,3>& The vector of adjusted sigmas.

Definition at line 558 of file BundleControlPoint.cpp.

References m_adjustedSigmas.

◆ adjustedSurfacePoint()

SurfacePoint Isis::BundleControlPoint::adjustedSurfacePoint ( ) const

Accesses the adjusted SurfacePoint associated with this BundleControlPoint.

Returns
SurfacePoint The adjusted surface point.

Definition at line 471 of file BundleControlPoint.cpp.

Referenced by Isis::BundleAdjust::computePartials(), formatAdjustedSigmaString(), and updateAdjustedSurfacePointRectangularly().

◆ applyParameterCorrections()

void Isis::BundleControlPoint::applyParameterCorrections ( LinearAlgebra::Vector  imageSolution,
SparseBlockMatrix sparseNormals,
const BundleTargetBodyQsp  target 
)

Apply the parameter corrections to the bundle control point.

Parameters
imageSolutionImage vector.
factorThe unit conversion factor to use on lat and lon rad or x/y/z km.
targetThe BundleTargetBody.

Definition at line 382 of file BundleControlPoint.cpp.

References _FILEINFO_, isRejected(), Isis::SurfacePoint::Latitudinal, m_corrections, m_nicVector, productAlphaAV(), Isis::IException::Programmer, Isis::SurfacePoint::Rectangular, Isis::toString(), updateAdjustedSurfacePointLatitudinally(), and updateAdjustedSurfacePointRectangularly().

◆ aprioriSigmas()

boost::numeric::ublas::bounded_vector< double, 3 > & Isis::BundleControlPoint::aprioriSigmas ( )

Accesses the 3 dimensional ordered vector of apriori sigmas (apriori coordinate1, apriori coordinate2, apriori coordinate3).

Returns
boost::numeric::ublas::bounded_vector<double,3>& The vector of apriori sigmas.

Definition at line 544 of file BundleControlPoint.cpp.

References m_aprioriSigmas.

◆ cholmodQMatrix()

SparseBlockRowMatrix & Isis::BundleControlPoint::cholmodQMatrix ( )

Accesses the CholMod matrix associated with this BundleControlPoint.

Returns
SparseBlockRowMatrix& The CholMod row matrix.

Definition at line 589 of file BundleControlPoint.cpp.

References m_cholmodQMatrix.

◆ computeResiduals()

void Isis::BundleControlPoint::computeResiduals ( )

Computes the residuals for this BundleControlPoint.

See also
ControlPoint::ComputeResiduals()

Definition at line 132 of file BundleControlPoint.cpp.

References Isis::ControlPoint::ComputeResiduals().

◆ coordTypeBundle()

SurfacePoint::CoordinateType Isis::BundleControlPoint::coordTypeBundle ( ) const

Accesses BundleControlPoint's control point coordinate type for the bundle adjustment.

Returns
ControlPoint::CoordinateType The BundleControlPoint's coordinate type. See SurfacePoint for the options.
See also
ControlPoint::getCoordTypeBundle()

Definition at line 520 of file BundleControlPoint.cpp.

◆ coordTypeReports()

SurfacePoint::CoordinateType Isis::BundleControlPoint::coordTypeReports ( ) const

Accesses BundleControlPoint's coordinate type for reports.

Returns
ControlPoint::CoordinateType The BundleControlPoint's coordinate type. See SurfacePoint for the options.
See also
ControlPoint::getCoordType()

Definition at line 507 of file BundleControlPoint.cpp.

References m_coordTypeReports.

◆ copy()

void Isis::BundleControlPoint::copy ( const BundleControlPoint src)

Copies given BundleControlPoint to this BundleControlPoint.

Parameters
srcThe BundleControlPoint to be copied.

Definition at line 86 of file BundleControlPoint.cpp.

References m_adjustedSigmas, m_aprioriSigmas, m_coordTypeReports, m_corrections, m_nicVector, and m_weights.

Referenced by BundleControlPoint().

◆ corrections()

boost::numeric::ublas::bounded_vector< double, 3 > & Isis::BundleControlPoint::corrections ( )

Accesses the 3 dimensional ordered vector of correction values associated with coord1, coord2, and coord 3 (latitude, longitude, and radius or X, Y, and Z.

A bounded vector is recommended because the size will always be 3.

Returns
boost::numeric::ublas::bounded_vector<double,3>& The vector of correction values.

Definition at line 533 of file BundleControlPoint.cpp.

References m_corrections.

◆ formatAdjustedSigmaString()

QString Isis::BundleControlPoint::formatAdjustedSigmaString ( SurfacePoint::CoordIndex  index,
int  fieldWidth,
int  precision,
bool  errorPropagation 
) const

Formats the adjusted sigma value indicated by the given type code.

If error propagation is false or the selected sigma type was set to Null, then only "N/A" will be returned.

Parameters
indexCoordIndex Coordinate index One: Latitude or X, Two: Longitude or Y,
or Three: Radius or Z
fieldWidthThe return string's field width.
precisionThe precision of the double to be saved off.
errorPropagationIndicates whether error propagation was selected.
Returns
QString The formatted value, as a string.

Definition at line 1035 of file BundleControlPoint.cpp.

References adjustedSurfacePoint(), Isis::SurfacePoint::GetSigmaDistance(), Isis::IsSpecial(), m_coordTypeReports, Isis::Distance::meters(), and Isis::Null.

Referenced by formatCoordAdjustedSigmaString().

◆ formatAprioriSigmaString()

QString Isis::BundleControlPoint::formatAprioriSigmaString ( SurfacePoint::CoordIndex  index,
int  fieldWidth,
int  precision,
bool  solveRadius = false 
) const

Formats the apriori sigma value indicated by the given type code.

If no sigma was set, then the string "N/A" will be returned.

Parameters
indexCoordIndex Coordinate index One: Latitude or X, Two: Longitude or Y,
or Three: Radius or Z
fieldWidthThe return string's field width.
precisionThe precision of the double to be saved off.
solveRadiusA flag indicating to solve for each points individual radius. When solveRadius is false, the point radius is heavily weighted
Returns
QString The formatted value, as a string.

Definition at line 985 of file BundleControlPoint.cpp.

References Isis::IsSpecial(), m_aprioriSigmas, Isis::ControlPoint::PointTypeToString(), and type().

Referenced by formatCoordAprioriSigmaString().

◆ formatBundleLatitudinalOutputDetailString()

QString Isis::BundleControlPoint::formatBundleLatitudinalOutputDetailString ( bool  errorPropagation,
bool  solveRadius = false 
) const

Formats a detailed output string table for this Latitudinal BundleControlPoint.

Parameters
errorPropagationIndicates whether error propagation was selected.
RTMConversion factor from radians to meters. Used to convert the latitude and longitude corrections to meters.
solveRadiusA flag indicating to solve for each points individual radius. When solveRadius is false, the point radius is heavily weighted
Returns
QString The formatted output detailed string.
History:
2017-08-24 Debbie A. Cook - Revised units of cor_rad to be km instead of meters when outputting latitudinal corrections in degrees. Fixed coordinate type for rectPoint to be Displacement::Kilometers instead of Distance::Kilometers. Corrected conversions of corrections in lat/longitudinal degrees to rectangular meters. Fixed output of radius corrections in km. It was outputting Z corrections.

Definition at line 694 of file BundleControlPoint.cpp.

References _FILEINFO_, Isis::DEG2RAD, Isis::Angle::degrees(), formatCoordAdjustedSigmaString(), formatCoordAprioriSigmaString(), formatValue(), Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLocalRadius(), Isis::SurfacePoint::GetLongitude(), Isis::IsSpecial(), Isis::Displacement::Kilometers, Isis::Displacement::kilometers(), Isis::Distance::kilometers(), Isis::SurfacePoint::LatitudeToMeters(), Isis::SurfacePoint::Latitudinal, Isis::SurfacePoint::LongitudeToMeters(), m_corrections, Isis::Null, numberOfMeasures(), numberOfRejectedMeasures(), Isis::ControlPoint::PointTypeToString(), Isis::IException::Programmer, Isis::RAD2DEG, Isis::SurfacePoint::Rectangular, Isis::toString(), and type().

Referenced by formatBundleOutputDetailString().

◆ formatBundleOutputDetailString()

QString Isis::BundleControlPoint::formatBundleOutputDetailString ( bool  errorPropagation,
bool  solveRadius = false 
) const

Formats a detailed output string table for this BundleControlPoint.

Parameters
errorPropagationIndicates whether error propagation was selected.
RTMConversion factor from radians to meters. Used to convert the latitude and longitude corrections to meters.
solveRadiusA flag indicating to solve for each points individual radius. When solveRadius is false, the point radius is heavily weighted
Returns
QString The formatted output detailed string.

Definition at line 655 of file BundleControlPoint.cpp.

References _FILEINFO_, formatBundleLatitudinalOutputDetailString(), formatBundleRectangularOutputDetailString(), Isis::SurfacePoint::Latitudinal, m_coordTypeReports, Isis::IException::Programmer, Isis::SurfacePoint::Rectangular, and Isis::toString().

◆ formatBundleOutputSummaryString()

QString Isis::BundleControlPoint::formatBundleOutputSummaryString ( bool  errorPropagation) const

Formats an output summary string for this BundleControlPoint.

This string includes ID, point type, number of rays from non-rejected measures, residual RMS, adjusted coordinate1, adjusted coordinate 2, and adjusted coordinate 3 followed by the adjusted sigmas. In the case of Latitudinal coordinates, the coordinates will be adjusted latitude and longitude (in degrees), the adjusted radius (in km), and the adjusted sigmas for latitude, longitude and radius all in meters. In the case of Rectangular coordinates, the coordinates will be X, Y, Z (in km), and the adjusted sigmas for X, Y, and Z all in meters.

Parameters
errorPropagationIndicates whether error propagation was selected.
Returns
QString The formatted output summary string.

Definition at line 608 of file BundleControlPoint.cpp.

References formatCoordAdjustedSigmaString(), formatValue(), Isis::SurfacePoint::GetCoord(), m_coordTypeReports, numberOfMeasures(), numberOfRejectedMeasures(), Isis::ControlPoint::PointTypeToString(), Isis::SurfacePoint::Rectangular, residualRms(), and type().

◆ formatBundleRectangularOutputDetailString()

QString Isis::BundleControlPoint::formatBundleRectangularOutputDetailString ( bool  errorPropagation) const

Formats a detailed output string table for this Rectangular BundleControlPoint.

Parameters
errorPropagationIndicates whether error propagation was selected.
Returns
QString The formatted output detailed string.
History:
2017-08-24 Debbie A. Cook - Corrected units reported in comments to correctly report km and also in label line.

Definition at line 838 of file BundleControlPoint.cpp.

References _FILEINFO_, Isis::Angle::Degrees, Isis::IsSpecial(), Isis::Distance::Kilometers, Isis::Displacement::kilometers(), Isis::SurfacePoint::Latitudinal, Isis::Null, Isis::ControlPoint::PointTypeToString(), Isis::IException::Programmer, Isis::RAD2DEG, Isis::SurfacePoint::Rectangular, and Isis::toString().

Referenced by formatBundleOutputDetailString().

◆ formatCoordAdjustedSigmaString()

QString Isis::BundleControlPoint::formatCoordAdjustedSigmaString ( SurfacePoint::CoordIndex  index,
int  fieldWidth,
int  precision,
bool  errorPropagation 
) const

Formats the adjusted coordinate sigma value.

Parameters
indexThe coordinate index of the sigma to return.
fieldWidthThe return string's field width.
precisionThe precision of the double to be saved off.
errorPropagationIndicates whether error propagation was selected.
Returns
QString The formatted adjusted coordinate sigma value, as a string.
See also
formatAdjustedSigmaString()

Definition at line 1071 of file BundleControlPoint.cpp.

References formatAdjustedSigmaString().

Referenced by formatBundleLatitudinalOutputDetailString(), and formatBundleOutputSummaryString().

◆ formatCoordAprioriSigmaString()

QString Isis::BundleControlPoint::formatCoordAprioriSigmaString ( SurfacePoint::CoordIndex  index,
int  fieldWidth,
int  precision,
bool  solveRadius = false 
) const

Formats the apriori coordinate 1 (latitude or X) sigma value.

Parameters
fieldWidthThe return string's field width.
precisionThe precision of the double to be saved off.
Returns
QString The formatted apriori coordinate 1 sigma value, as a string.
See also
formatAprioriSigmaString()

Definition at line 1014 of file BundleControlPoint.cpp.

References formatAprioriSigmaString().

Referenced by formatBundleLatitudinalOutputDetailString().

◆ formatValue()

QString Isis::BundleControlPoint::formatValue ( double  value,
int  fieldWidth,
int  precision 
) const

Formats the given double precision value using the specified field width and precision.

If the given value is special, then "Null" is returned.

Parameters
valueThe double value to be formattted.
fieldWidthThe return string's field width.
precisionThe precision of the given double value to be saved off.
Returns
QString The formatted value, as a string.

Definition at line 963 of file BundleControlPoint.cpp.

References Isis::IsSpecial().

Referenced by formatBundleLatitudinalOutputDetailString(), and formatBundleOutputSummaryString().

◆ id()

QString Isis::BundleControlPoint::id ( ) const

Accesses the Point ID associated with this BundleControlPoint.

Returns
QString The ID for this point.

Definition at line 481 of file BundleControlPoint.cpp.

References Isis::ControlPoint::GetId().

Referenced by Isis::BundleAdjust::computePartials().

◆ isRejected()

bool Isis::BundleControlPoint::isRejected ( ) const

Method used to determine whether this control point is rejected.

Returns
bool Indicates whether this control point is rejected.

Definition at line 427 of file BundleControlPoint.cpp.

Referenced by applyParameterCorrections().

◆ nicVector()

boost::numeric::ublas::bounded_vector< double, 3 > & Isis::BundleControlPoint::nicVector ( )

Accesses the 3 dimensional ordered NIC vector.

Returns
boost::numeric::ublas::bounded_vector<double,3>& The NIC vector.

Definition at line 579 of file BundleControlPoint.cpp.

References m_nicVector.

◆ numberOfMeasures()

int Isis::BundleControlPoint::numberOfMeasures ( ) const

Accesses number of measures associated with this BundleControlPoint.

Returns
int The number of measures for this point.

Definition at line 437 of file BundleControlPoint.cpp.

Referenced by formatBundleLatitudinalOutputDetailString(), and formatBundleOutputSummaryString().

◆ numberOfRejectedMeasures()

int Isis::BundleControlPoint::numberOfRejectedMeasures ( ) const

Accesses the number of rejected measures for this BundleControlPoint.

Returns
int Returns the number of rejected measures.
See also
ControlPoint::GetNumberOfRejectedMeasures()

Definition at line 449 of file BundleControlPoint.cpp.

References Isis::ControlPoint::GetNumberOfRejectedMeasures().

Referenced by formatBundleLatitudinalOutputDetailString(), and formatBundleOutputSummaryString().

◆ productAlphaAV()

void Isis::BundleControlPoint::productAlphaAV ( double  alpha,
SparseBlockMatrix sparseNormals,
LinearAlgebra::Vector v1 
)

Perform the matrix multiplication v2 = alpha ( Q x v1 ).

Parameters
alphaA constant multiplier.
sparseNormalsThe sparse block normal equations matrix.
v2The output vector.
QA sparse block matrix.
v1A vector.

Definition at line 354 of file BundleControlPoint.cpp.

References m_cholmodQMatrix, and m_nicVector.

Referenced by applyParameterCorrections().

◆ rawControlPoint()

ControlPoint * Isis::BundleControlPoint::rawControlPoint ( ) const

Accessor for the raw ControlPoint object used for this BundleControlPoint.

Returns
ControlPoint* A pointer to the raw ControlPoint.

Definition at line 417 of file BundleControlPoint.cpp.

◆ residualRms()

double Isis::BundleControlPoint::residualRms ( ) const

Gets the root-mean-square (rms) of the BundleControlPoint's residuals.

Returns
double Returns the rms of the residuals.
See also
ControlPoint::GetResidualRms()

Definition at line 461 of file BundleControlPoint.cpp.

References Isis::ControlPoint::GetResidualRms().

Referenced by formatBundleOutputSummaryString().

◆ setAdjustedSurfacePoint()

void Isis::BundleControlPoint::setAdjustedSurfacePoint ( SurfacePoint  surfacePoint)

Sets the adjusted surface point for this BundleControlPoint.

Parameters
surfacePointThe surface point to be set.

Definition at line 142 of file BundleControlPoint.cpp.

References Isis::ControlPoint::SetAdjustedSurfacePoint().

Referenced by updateAdjustedSurfacePointRectangularly().

◆ setNumberOfRejectedMeasures()

void Isis::BundleControlPoint::setNumberOfRejectedMeasures ( int  numRejected)

Sets the number of rejected measures for this BundleControlPoint.

Parameters
numRejectedNumber of rejected measures.
See also
ControlPoint::SetNumberOfRejectedMeasures(int numRejected)

Definition at line 154 of file BundleControlPoint.cpp.

References Isis::ControlPoint::SetNumberOfRejectedMeasures().

◆ setRejected()

void Isis::BundleControlPoint::setRejected ( bool  reject)

Sets this BundleControlPoint to rejected or not rejected.

Parameters
rejectTrue will set the BundleControlPoint to rejected.
See also
ControlPoint::SetRejected(bool reject)

Definition at line 166 of file BundleControlPoint.cpp.

References Isis::ControlPoint::SetRejected().

◆ setSigmaWeightFromGlobals()

void Isis::BundleControlPoint::setSigmaWeightFromGlobals ( double  gSigma,
int  index 
)

Sets the member sigmas and weights from a global sigma.

TODO *** Should index be SurfacePoint::CoordIndex?

Parameters
gSigmaThe global sigma to assign.
indexThe index of the point coordinate being set (0, 1, or 2).
cFactorThe conversion factor applied to gSigma to match bundle variable units.
See also
formatAprioriSigmaString()

Definition at line 275 of file BundleControlPoint.cpp.

References _FILEINFO_, Isis::SurfacePoint::Latitudinal, m_aprioriSigmas, m_weights, Isis::SurfacePoint::MetersToLatitude(), Isis::SurfacePoint::MetersToLongitude(), Isis::IException::Programmer, Isis::SurfacePoint::Rectangular, and Isis::toString().

Referenced by setWeights().

◆ setWeights()

◆ type()

ControlPoint::PointType Isis::BundleControlPoint::type ( ) const

Accesses BundleControlPoint's type.

Returns
ControlPoint::PointType The BundleControlPoint's type. Options are: Fixed = 0, Constrained = 1, Free = 2.
See also
ControlPoint::GetType()

Definition at line 494 of file BundleControlPoint.cpp.

References Isis::ControlPoint::GetType().

Referenced by formatAprioriSigmaString(), formatBundleLatitudinalOutputDetailString(), and formatBundleOutputSummaryString().

◆ updateAdjustedSurfacePointLatitudinally()

void Isis::BundleControlPoint::updateAdjustedSurfacePointLatitudinally ( const BundleTargetBodyQsp  target)
private

Apply the parameter corrections to the bundle control point latitudinally.

Parameters
factorThe unit conversion factor to use on lat & lon. Radius is in km & converted to m
targetThe BundleTargetBody.

Definition at line 1085 of file BundleControlPoint.cpp.

References Isis::Angle::Degrees, Isis::Angle::degrees(), Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLocalRadius(), Isis::SurfacePoint::GetLongitude(), Isis::Distance::Meters, Isis::Distance::meters(), Isis::RAD2DEG, and Isis::SurfacePoint::SetSphericalCoordinates().

Referenced by applyParameterCorrections().

◆ updateAdjustedSurfacePointRectangularly()

void Isis::BundleControlPoint::updateAdjustedSurfacePointRectangularly ( )
private

pointer to the control point object this represents

Apply the parameter corrections to the bundle control point rectangularly.

Parameters
factorThe unit conversion factor to use on the coordinates.

Definition at line 1151 of file BundleControlPoint.cpp.

References adjustedSurfacePoint(), m_nicVector, Isis::Displacement::Meters, Isis::Displacement::meters(), setAdjustedSurfacePoint(), and Isis::SurfacePoint::SetRectangularCoordinates().

Referenced by applyParameterCorrections().

◆ weights()

boost::numeric::ublas::bounded_vector< double, 3 > & Isis::BundleControlPoint::weights ( )

Accesses the 3 dimensional ordered vector of weight values associated with coordinate1, coordinate2, and coordinate3.

Returns
boost::numeric::ublas::bounded_vector<double,3>& The vector of weight values.

Definition at line 569 of file BundleControlPoint.cpp.

References m_weights.

◆ zeroNumberOfRejectedMeasures()

void Isis::BundleControlPoint::zeroNumberOfRejectedMeasures ( )

Resets the number of rejected measures for this BundleControlPoint to zero.

See also
ControlPoint::ZeroNumberOfRejectedMeasures()

Definition at line 340 of file BundleControlPoint.cpp.

References Isis::ControlPoint::ZeroNumberOfRejectedMeasures().

Member Data Documentation

◆ m_adjustedSigmas

boost::numeric::ublas::bounded_vector< double, 3 > Isis::BundleControlPoint::m_adjustedSigmas
private

adjusted sigmas for point parameters

Definition at line 188 of file BundleControlPoint.h.

Referenced by adjustedSigmas(), BundleControlPoint(), and copy().

◆ m_aprioriSigmas

boost::numeric::ublas::bounded_vector< double, 3 > Isis::BundleControlPoint::m_aprioriSigmas
private

apriori sigmas for point parameters

Definition at line 186 of file BundleControlPoint.h.

Referenced by aprioriSigmas(), BundleControlPoint(), copy(), formatAprioriSigmaString(), setSigmaWeightFromGlobals(), and setWeights().

◆ m_cholmodQMatrix

SparseBlockRowMatrix Isis::BundleControlPoint::m_cholmodQMatrix
private

The CholMod matrix associated with this point.

Definition at line 194 of file BundleControlPoint.h.

Referenced by cholmodQMatrix(), and productAlphaAV().

◆ m_coordTypeReports

◆ m_corrections

boost::numeric::ublas::bounded_vector< double, 3 > Isis::BundleControlPoint::m_corrections
private

corrections to point parameters

Definition at line 184 of file BundleControlPoint.h.

Referenced by applyParameterCorrections(), BundleControlPoint(), copy(), corrections(), and formatBundleLatitudinalOutputDetailString().

◆ m_nicVector

boost::numeric::ublas::bounded_vector<double, 3> Isis::BundleControlPoint::m_nicVector
private

◆ m_weights

boost::numeric::ublas::bounded_vector< double, 3 > Isis::BundleControlPoint::m_weights
private

weights for point parameters

Definition at line 190 of file BundleControlPoint.h.

Referenced by BundleControlPoint(), copy(), setSigmaWeightFromGlobals(), setWeights(), and weights().


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