File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
BundleControlPoint.h
1 #ifndef BundleControlPoint_h
2 #define BundleControlPoint_h
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 #include <QVector>
13 
14 #include <QSharedPointer>
15 
16 #include "BundleMeasure.h"
17 #include "BundleSettings.h"
18 #include "ControlPoint.h"
19 #include "SparseBlockMatrix.h"
20 #include "SurfacePoint.h"
21 
22 namespace Isis {
23 
24  class ControlMeasure;
25  class LinearAlgebra;
26  class SparseBlockMatrix;
27 
91  class BundleControlPoint : public QVector<BundleMeasureQsp> {
92 
93  public:
94  // default constructor
96  ControlPoint *point);
97  // copy constructor
99 
100  //destructor
102 
103  // equals operator
104  BundleControlPoint &operator=(const BundleControlPoint &src);// ??? not implemented
105 
106  // copy method
107  void copy(const BundleControlPoint &src);
108 
109  // mutators
110  BundleMeasureQsp addMeasure(ControlMeasure *controlMeasure);
111  void computeResiduals();
112  void setAdjustedSurfacePoint(SurfacePoint surfacePoint);
113  void setNumberOfRejectedMeasures(int numRejected);
114  void setRejected(bool reject);
115  void setWeights(const BundleSettingsQsp settings);
116  void setSigmaWeightFromGlobals(double gSigma, int index);
117  void setSigmaWeightFromGlobals(double gSigma, int index, double cFactor);
119  void productAlphaAV(double alpha,
120  SparseBlockMatrix &sparseNormals,
121  // boost::numeric::ublas::bounded_vector< double, 3 > &v2,
122  // SparseBlockRowMatrix &Q,
125  SparseBlockMatrix &sparseNormals, const BundleTargetBodyQsp target);
126 
127  // accessors
128  ControlPoint *rawControlPoint() const;
129  bool isRejected() const;
130  int numberOfMeasures() const;
131  int numberOfRejectedMeasures() const;
132  double residualRms() const;
134  QString id() const;
138  boost::numeric::ublas::bounded_vector< double, 3 > &corrections();
139  boost::numeric::ublas::bounded_vector< double, 3 > &aprioriSigmas();
140  boost::numeric::ublas::bounded_vector< double, 3 > &adjustedSigmas();
141  boost::numeric::ublas::bounded_vector< double, 3 > &weights();
142  boost::numeric::ublas::bounded_vector<double, 3> &nicVector();
144 
145  // string format methods
146  QString formatBundleOutputSummaryString(bool errorPropagation) const;
147  QString formatBundleOutputDetailString(bool errorPropagation, bool solveRadius=false) const;
148  QString formatBundleLatitudinalOutputDetailString(bool errorPropagation,
149  bool solveRadius=false) const;
150  QString formatBundleRectangularOutputDetailString(bool errorPropagation) const;
151  QString formatValue(double value, int fieldWidth, int precision) const;
152  QString formatAprioriSigmaString(SurfacePoint::CoordIndex index, int fieldWidth,
153  int precision, bool solveRadius=false) const;
154  QString formatCoordAprioriSigmaString(SurfacePoint::CoordIndex index, int fieldWidth,
155  int precision, bool solveRadius=false) const;
156  QString formatAdjustedSigmaString(SurfacePoint::CoordIndex, int fieldWidth, int precision,
157  bool errorPropagation) const;
158  QString formatCoordAdjustedSigmaString(SurfacePoint::CoordIndex, int fieldWidth, int precision,
159  bool errorPropagation) const;
160 
161  private:
162  // methods
165 
167  ControlPoint *m_controlPoint;
168 
170  boost::numeric::ublas::bounded_vector< double, 3 > m_corrections;
172  boost::numeric::ublas::bounded_vector< double, 3 > m_aprioriSigmas;
174  boost::numeric::ublas::bounded_vector< double, 3 > m_adjustedSigmas;
176  boost::numeric::ublas::bounded_vector< double, 3 > m_weights;
178  boost::numeric::ublas::bounded_vector<double, 3> m_nicVector;
183  SurfacePoint::CoordinateType m_coordTypeBundle;
184  };
185 
186  // typedefs
189 }
190 
191 #endif // BundleControlPoint_h
Isis::BundleControlPoint::setAdjustedSurfacePoint
void setAdjustedSurfacePoint(SurfacePoint surfacePoint)
Sets the adjusted surface point for this BundleControlPoint.
Definition: BundleControlPoint.cpp:150
Isis::BundleControlPoint::~BundleControlPoint
~BundleControlPoint()
Destructor for BundleControlPoint.
Definition: BundleControlPoint.cpp:85
Isis::BundleControlPoint::applyParameterCorrections
void applyParameterCorrections(LinearAlgebra::Vector imageSolution, SparseBlockMatrix &sparseNormals, const BundleTargetBodyQsp target)
Apply the parameter corrections to the bundle control point.
Definition: BundleControlPoint.cpp:390
Isis::BundleControlPoint::formatAdjustedSigmaString
QString formatAdjustedSigmaString(SurfacePoint::CoordIndex, int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted sigma value indicated by the given type code.
Definition: BundleControlPoint.cpp:1043
Isis::BundleControlPoint::numberOfRejectedMeasures
int numberOfRejectedMeasures() const
Accesses the number of rejected measures for this BundleControlPoint.
Definition: BundleControlPoint.cpp:457
Isis::BundleControlPoint::updateAdjustedSurfacePointRectangularly
void updateAdjustedSurfacePointRectangularly()
pointer to the control point object this represents
Definition: BundleControlPoint.cpp:1159
Isis::BundleControlPoint::adjustedSurfacePoint
SurfacePoint adjustedSurfacePoint() const
Accesses the adjusted SurfacePoint associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:479
Isis::BundleControlPoint::type
ControlPoint::PointType type() const
Accesses BundleControlPoint's type.
Definition: BundleControlPoint.cpp:502
Isis::BundleControlPointQsp
QSharedPointer< BundleControlPoint > BundleControlPointQsp
Definition for BundleControlPointQSP, a shared pointer to a BundleControlPoint.
Definition: BundleControlPoint.h:188
Isis::BundleControlPoint::m_coordTypeReports
SurfacePoint::CoordinateType m_coordTypeReports
BundleControlPoint coordinate type.
Definition: BundleControlPoint.h:182
Isis::BundleControlPoint::weights
boost::numeric::ublas::bounded_vector< double, 3 > & weights()
Accesses the 3 dimensional ordered vector of weight values associated with coordinate1,...
Definition: BundleControlPoint.cpp:577
Isis::BundleControlPoint::m_cholmodQMatrix
SparseBlockRowMatrix m_cholmodQMatrix
The CholMod matrix associated with this point.
Definition: BundleControlPoint.h:180
Isis::BundleControlPoint::setRejected
void setRejected(bool reject)
Sets this BundleControlPoint to rejected or not rejected.
Definition: BundleControlPoint.cpp:174
Isis::BundleControlPoint::setWeights
void setWeights(const BundleSettingsQsp settings)
Sets the weights using the given BundleSettings QSharedPointer and a conversion value for meters to r...
Definition: BundleControlPoint.cpp:186
Isis::BundleControlPoint::m_weights
boost::numeric::ublas::bounded_vector< double, 3 > m_weights
weights for point parameters
Definition: BundleControlPoint.h:176
Isis::BundleControlPoint::isRejected
bool isRejected() const
Method used to determine whether this control point is rejected.
Definition: BundleControlPoint.cpp:435
Isis::ControlPoint::PointType
PointType
These are the valid 'types' of point.
Definition: ControlPoint.h:364
Isis::BundleControlPoint
This class holds information about a control point that BundleAdjust needs to run correctly.
Definition: BundleControlPoint.h:91
Isis::BundleControlPoint::corrections
boost::numeric::ublas::bounded_vector< double, 3 > & corrections()
Accesses the 3 dimensional ordered vector of correction values associated with coord1,...
Definition: BundleControlPoint.cpp:541
QSharedPointer< BundleSettings >
Isis::BundleControlPoint::id
QString id() const
Accesses the Point ID associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:489
Isis::BundleControlPoint::formatBundleLatitudinalOutputDetailString
QString formatBundleLatitudinalOutputDetailString(bool errorPropagation, bool solveRadius=false) const
Formats a detailed output string table for this Latitudinal BundleControlPoint.
Definition: BundleControlPoint.cpp:702
Isis::BundleControlPoint::residualRms
double residualRms() const
Gets the root-mean-square (rms) of the BundleControlPoint's residuals.
Definition: BundleControlPoint.cpp:469
Isis::BundleControlPoint::aprioriSigmas
boost::numeric::ublas::bounded_vector< double, 3 > & aprioriSigmas()
Accesses the 3 dimensional ordered vector of apriori sigmas (apriori coordinate1, apriori coordinate2...
Definition: BundleControlPoint.cpp:552
Isis::BundleControlPoint::formatBundleRectangularOutputDetailString
QString formatBundleRectangularOutputDetailString(bool errorPropagation) const
Formats a detailed output string table for this Rectangular BundleControlPoint.
Definition: BundleControlPoint.cpp:846
Isis::BundleControlPoint::setSigmaWeightFromGlobals
void setSigmaWeightFromGlobals(double gSigma, int index)
Sets the member sigmas and weights from a global sigma.
Definition: BundleControlPoint.cpp:283
Isis::BundleControlPoint::BundleControlPoint
BundleControlPoint(BundleSettingsQsp bundleSettings, ControlPoint *point)
Constructs a BundleControlPoint object from a ControlPoint.
Definition: BundleControlPoint.cpp:33
Isis::ControlPoint
A single control point.
Definition: ControlPoint.h:354
Isis::BundleControlPoint::coordTypeReports
SurfacePoint::CoordinateType coordTypeReports() const
Accesses BundleControlPoint's coordinate type for reports.
Definition: BundleControlPoint.cpp:515
Isis::BundleControlPoint::nicVector
boost::numeric::ublas::bounded_vector< double, 3 > & nicVector()
Accesses the 3 dimensional ordered NIC vector.
Definition: BundleControlPoint.cpp:587
Isis::LinearAlgebra::Vector
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
Definition: LinearAlgebra.h:120
Isis::SurfacePoint::CoordinateType
CoordinateType
Defines the coordinate typ, units, and coordinate index for some of the output methods.
Definition: SurfacePoint.h:139
Isis::BundleControlPoint::formatCoordAprioriSigmaString
QString formatCoordAprioriSigmaString(SurfacePoint::CoordIndex index, int fieldWidth, int precision, bool solveRadius=false) const
Formats the apriori coordinate 1 (latitude or X) sigma value.
Definition: BundleControlPoint.cpp:1022
Isis::BundleControlPoint::computeResiduals
void computeResiduals()
Computes the residuals for this BundleControlPoint.
Definition: BundleControlPoint.cpp:140
Isis::BundleControlPoint::m_adjustedSigmas
boost::numeric::ublas::bounded_vector< double, 3 > m_adjustedSigmas
adjusted sigmas for point parameters
Definition: BundleControlPoint.h:174
Isis::BundleControlPoint::m_aprioriSigmas
boost::numeric::ublas::bounded_vector< double, 3 > m_aprioriSigmas
apriori sigmas for point parameters
Definition: BundleControlPoint.h:172
Isis::BundleControlPoint::formatValue
QString formatValue(double value, int fieldWidth, int precision) const
Formats the given double precision value using the specified field width and precision.
Definition: BundleControlPoint.cpp:971
Isis::BundleControlPoint::zeroNumberOfRejectedMeasures
void zeroNumberOfRejectedMeasures()
Resets the number of rejected measures for this BundleControlPoint to zero.
Definition: BundleControlPoint.cpp:348
Isis::BundleControlPoint::formatBundleOutputSummaryString
QString formatBundleOutputSummaryString(bool errorPropagation) const
Formats an output summary string for this BundleControlPoint.
Definition: BundleControlPoint.cpp:616
Isis::BundleControlPoint::rawControlPoint
ControlPoint * rawControlPoint() const
Accessor for the raw ControlPoint object used for this BundleControlPoint.
Definition: BundleControlPoint.cpp:425
Isis::BundleControlPoint::addMeasure
BundleMeasureQsp addMeasure(ControlMeasure *controlMeasure)
Creates a BundleMeasure from the given ControlMeasure and appends it to this BundleControlPoint's mea...
Definition: BundleControlPoint.cpp:125
Isis::BundleControlPoint::setNumberOfRejectedMeasures
void setNumberOfRejectedMeasures(int numRejected)
Sets the number of rejected measures for this BundleControlPoint.
Definition: BundleControlPoint.cpp:162
Isis::BundleControlPoint::numberOfMeasures
int numberOfMeasures() const
Accesses number of measures associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:445
Isis::BundleControlPoint::updateAdjustedSurfacePointLatitudinally
void updateAdjustedSurfacePointLatitudinally(const BundleTargetBodyQsp target)
Apply the parameter corrections to the bundle control point latitudinally.
Definition: BundleControlPoint.cpp:1093
Isis::BundleControlPoint::adjustedSigmas
boost::numeric::ublas::bounded_vector< double, 3 > & adjustedSigmas()
Accesses the 3 dimensional ordered vector of adjusted sigmas (adjusted coordinate1,...
Definition: BundleControlPoint.cpp:566
Isis::BundleControlPoint::formatCoordAdjustedSigmaString
QString formatCoordAdjustedSigmaString(SurfacePoint::CoordIndex, int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted coordinate sigma value.
Definition: BundleControlPoint.cpp:1079
Isis::BundleControlPoint::formatAprioriSigmaString
QString formatAprioriSigmaString(SurfacePoint::CoordIndex index, int fieldWidth, int precision, bool solveRadius=false) const
Formats the apriori sigma value indicated by the given type code.
Definition: BundleControlPoint.cpp:993
Isis::BundleControlPoint::productAlphaAV
void productAlphaAV(double alpha, SparseBlockMatrix &sparseNormals, LinearAlgebra::Vector &v1)
Perform the matrix multiplication v2 = alpha ( Q x v1 ).
Definition: BundleControlPoint.cpp:362
Isis::BundleControlPoint::m_corrections
boost::numeric::ublas::bounded_vector< double, 3 > m_corrections
corrections to point parameters
Definition: BundleControlPoint.h:170
Isis::BundleControlPoint::formatBundleOutputDetailString
QString formatBundleOutputDetailString(bool errorPropagation, bool solveRadius=false) const
Formats a detailed output string table for this BundleControlPoint.
Definition: BundleControlPoint.cpp:663
Isis::BundleControlPoint::cholmodQMatrix
SparseBlockRowMatrix & cholmodQMatrix()
Accesses the CholMod matrix associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:597
Isis::SparseBlockRowMatrix
SparseBlockRowMatrix.
Definition: SparseBlockMatrix.h:125
QVector
This is free and unencumbered software released into the public domain.
Definition: Calculator.h:18
Isis::BundleControlPoint::coordTypeBundle
SurfacePoint::CoordinateType coordTypeBundle() const
Accesses BundleControlPoint's control point coordinate type for the bundle adjustment.
Definition: BundleControlPoint.cpp:528
Isis::BundleControlPoint::m_nicVector
boost::numeric::ublas::bounded_vector< double, 3 > m_nicVector
array of NICs (see Brown, 1976)
Definition: BundleControlPoint.h:178
Isis::SparseBlockMatrix
SparseBlockMatrix.
Definition: SparseBlockMatrix.h:186
Isis::LinearAlgebra
This class holds all static methods to perform linear algebra operations on vectors and matrices.
Definition: LinearAlgebra.h:89
Isis::SurfacePoint
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:132
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::BundleControlPoint::copy
void copy(const BundleControlPoint &src)
Copies given BundleControlPoint to this BundleControlPoint.
Definition: BundleControlPoint.cpp:94
Isis::ControlMeasure
a control measurement
Definition: ControlMeasure.h:175

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:16:11