File failed to load: https://isis.astrogeology.usgs.gov/3.9.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Developer Reference
BundleControlPoint.h
Go to the documentation of this file.
1 #ifndef BundleControlPoint_h
2 #define BundleControlPoint_h
3 
26 #include <QVector>
27 
28 #include <QSharedPointer>
29 
30 #include "BundleMeasure.h"
31 #include "BundleSettings.h"
32 #include "ControlPoint.h"
33 #include "SparseBlockMatrix.h"
34 #include "SurfacePoint.h"
35 
36 namespace Isis {
37 
38  class ControlMeasure;
39  class LinearAlgebra;
40  class SparseBlockMatrix;
41 
105  class BundleControlPoint : public QVector<BundleMeasureQsp> {
106 
107  public:
108  // default constructor
109  BundleControlPoint(BundleSettingsQsp bundleSettings,
110  ControlPoint *point);
111  // copy constructor
113 
114  //destructor
116 
117  // equals operator
118  BundleControlPoint &operator=(const BundleControlPoint &src);// ??? not implemented
119 
120  // copy method
121  void copy(const BundleControlPoint &src);
122 
123  // mutators
124  BundleMeasureQsp addMeasure(ControlMeasure *controlMeasure);
125  void computeResiduals();
126  void setAdjustedSurfacePoint(SurfacePoint surfacePoint);
127  void setNumberOfRejectedMeasures(int numRejected);
128  void setRejected(bool reject);
129  void setWeights(const BundleSettingsQsp settings);
130  void setSigmaWeightFromGlobals(double gSigma, int index);
131  void setSigmaWeightFromGlobals(double gSigma, int index, double cFactor);
133  void productAlphaAV(double alpha,
134  SparseBlockMatrix &sparseNormals,
135  // boost::numeric::ublas::bounded_vector< double, 3 > &v2,
136  // SparseBlockRowMatrix &Q,
139  SparseBlockMatrix &sparseNormals, const BundleTargetBodyQsp target);
140 
141  // accessors
142  ControlPoint *rawControlPoint() const;
143  bool isRejected() const;
144  int numberOfMeasures() const;
145  int numberOfRejectedMeasures() const;
146  double residualRms() const;
148  QString id() const;
152  boost::numeric::ublas::bounded_vector< double, 3 > &corrections();
153  boost::numeric::ublas::bounded_vector< double, 3 > &aprioriSigmas();
154  boost::numeric::ublas::bounded_vector< double, 3 > &adjustedSigmas();
155  boost::numeric::ublas::bounded_vector< double, 3 > &weights();
156  boost::numeric::ublas::bounded_vector<double, 3> &nicVector();
158 
159  // string format methods
160  QString formatBundleOutputSummaryString(bool errorPropagation) const;
161  QString formatBundleOutputDetailString(bool errorPropagation, bool solveRadius=false) const;
162  QString formatBundleLatitudinalOutputDetailString(bool errorPropagation,
163  bool solveRadius=false) const;
164  QString formatBundleRectangularOutputDetailString(bool errorPropagation) const;
165  QString formatValue(double value, int fieldWidth, int precision) const;
166  QString formatAprioriSigmaString(SurfacePoint::CoordIndex index, int fieldWidth,
167  int precision, bool solveRadius=false) const;
168  QString formatCoordAprioriSigmaString(SurfacePoint::CoordIndex index, int fieldWidth,
169  int precision, bool solveRadius=false) const;
170  QString formatAdjustedSigmaString(SurfacePoint::CoordIndex, int fieldWidth, int precision,
171  bool errorPropagation) const;
172  QString formatCoordAdjustedSigmaString(SurfacePoint::CoordIndex, int fieldWidth, int precision,
173  bool errorPropagation) const;
174 
175  private:
176  // methods
177  void updateAdjustedSurfacePointLatitudinally(const BundleTargetBodyQsp target);
178  void updateAdjustedSurfacePointRectangularly();
179 
181  ControlPoint *m_controlPoint;
182 
184  boost::numeric::ublas::bounded_vector< double, 3 > m_corrections;
186  boost::numeric::ublas::bounded_vector< double, 3 > m_aprioriSigmas;
188  boost::numeric::ublas::bounded_vector< double, 3 > m_adjustedSigmas;
190  boost::numeric::ublas::bounded_vector< double, 3 > m_weights;
192  boost::numeric::ublas::bounded_vector<double, 3> m_nicVector;
194  SparseBlockRowMatrix m_cholmodQMatrix;
196  SurfacePoint::CoordinateType m_coordTypeReports;
197  SurfacePoint::CoordinateType m_coordTypeBundle;
198  };
199 
200  // typedefs
203 }
204 
205 #endif // BundleControlPoint_h
206 
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:148
CoordIndex
Definition: SurfacePoint.h:165
SparseBlockMatrix.
Definition: SparseBlockMatrix.h:198
QString formatBundleRectangularOutputDetailString(bool errorPropagation) const
Formats a detailed output string table for this Rectangular BundleControlPoint.
Definition: BundleControlPoint.cpp:838
ControlPoint::PointType type() const
Accesses BundleControlPoint&#39;s type.
Definition: BundleControlPoint.cpp:494
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:1035
QString formatBundleOutputDetailString(bool errorPropagation, bool solveRadius=false) const
Formats a detailed output string table for this BundleControlPoint.
Definition: BundleControlPoint.cpp:655
double residualRms() const
Gets the root-mean-square (rms) of the BundleControlPoint&#39;s residuals.
Definition: BundleControlPoint.cpp:461
BundleControlPoint(BundleSettingsQsp bundleSettings, ControlPoint *point)
Constructs a BundleControlPoint object from a ControlPoint.
Definition: BundleControlPoint.cpp:25
SurfacePoint::CoordinateType coordTypeBundle() const
Accesses BundleControlPoint&#39;s control point coordinate type for the bundle adjustment.
Definition: BundleControlPoint.cpp:520
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:985
void setRejected(bool reject)
Sets this BundleControlPoint to rejected or not rejected.
Definition: BundleControlPoint.cpp:166
BundleMeasureQsp addMeasure(ControlMeasure *controlMeasure)
Creates a BundleMeasure from the given ControlMeasure and appends it to this BundleControlPoint&#39;s mea...
Definition: BundleControlPoint.cpp:117
void applyParameterCorrections(LinearAlgebra::Vector imageSolution, SparseBlockMatrix &sparseNormals, const BundleTargetBodyQsp target)
Apply the parameter corrections to the bundle control point.
Definition: BundleControlPoint.cpp:382
void copy(const BundleControlPoint &src)
Copies given BundleControlPoint to this BundleControlPoint.
Definition: BundleControlPoint.cpp:86
PointType
These are the valid &#39;types&#39; of point.
Definition: ControlPoint.h:379
void computeResiduals()
Computes the residuals for this BundleControlPoint.
Definition: BundleControlPoint.cpp:132
boost::numeric::ublas::bounded_vector< double, 3 > & weights()
Accesses the 3 dimensional ordered vector of weight values associated with coordinate1, coordinate2, and coordinate3.
Definition: BundleControlPoint.cpp:569
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
boost::numeric::ublas::bounded_vector< double, 3 > & aprioriSigmas()
Accesses the 3 dimensional ordered vector of apriori sigmas (apriori coordinate1, apriori coordinate2...
Definition: BundleControlPoint.cpp:544
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:963
boost::numeric::ublas::bounded_vector< double, 3 > & adjustedSigmas()
Accesses the 3 dimensional ordered vector of adjusted sigmas (adjusted coordinate1, adjusted coordinate2, adjusted coordinate3).
Definition: BundleControlPoint.cpp:558
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
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.
Definition: BundleControlPoint.cpp:533
boost::numeric::ublas::bounded_vector< double, 3 > & nicVector()
Accesses the 3 dimensional ordered NIC vector.
Definition: BundleControlPoint.cpp:579
ControlPoint * rawControlPoint() const
Accessor for the raw ControlPoint object used for this BundleControlPoint.
Definition: BundleControlPoint.cpp:417
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
Definition: LinearAlgebra.h:135
QString formatBundleLatitudinalOutputDetailString(bool errorPropagation, bool solveRadius=false) const
Formats a detailed output string table for this Latitudinal BundleControlPoint.
Definition: BundleControlPoint.cpp:694
int numberOfRejectedMeasures() const
Accesses the number of rejected measures for this BundleControlPoint.
Definition: BundleControlPoint.cpp:449
void zeroNumberOfRejectedMeasures()
Resets the number of rejected measures for this BundleControlPoint to zero.
Definition: BundleControlPoint.cpp:340
void setAdjustedSurfacePoint(SurfacePoint surfacePoint)
Sets the adjusted surface point for this BundleControlPoint.
Definition: BundleControlPoint.cpp:142
This class holds information about a control point that BundleAdjust needs to run correctly...
Definition: BundleControlPoint.h:105
~BundleControlPoint()
Destructor for BundleControlPoint.
Definition: BundleControlPoint.cpp:77
A single control point.
Definition: ControlPoint.h:369
void productAlphaAV(double alpha, SparseBlockMatrix &sparseNormals, LinearAlgebra::Vector &v1)
Perform the matrix multiplication v2 = alpha ( Q x v1 ).
Definition: BundleControlPoint.cpp:354
SurfacePoint::CoordinateType coordTypeReports() const
Accesses BundleControlPoint&#39;s coordinate type for reports.
Definition: BundleControlPoint.cpp:507
CoordinateType
Defines the coordinate typ, units, and coordinate index for some of the output methods.
Definition: SurfacePoint.h:155
QString formatCoordAdjustedSigmaString(SurfacePoint::CoordIndex, int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted coordinate sigma value.
Definition: BundleControlPoint.cpp:1071
Definition: Calculator.h:33
SurfacePoint adjustedSurfacePoint() const
Accesses the adjusted SurfacePoint associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:471
int numberOfMeasures() const
Accesses number of measures associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:437
This class holds all static methods to perform linear algebra operations on vectors and matrices...
Definition: LinearAlgebra.h:104
void setSigmaWeightFromGlobals(double gSigma, int index)
Sets the member sigmas and weights from a global sigma.
Definition: BundleControlPoint.cpp:275
QString id() const
Accesses the Point ID associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:481
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:1014
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
QString formatBundleOutputSummaryString(bool errorPropagation) const
Formats an output summary string for this BundleControlPoint.
Definition: BundleControlPoint.cpp:608
a control measurement
Definition: ControlMeasure.h:189
bool isRejected() const
Method used to determine whether this control point is rejected.
Definition: BundleControlPoint.cpp:427
BundleControlPoint & operator=(const BundleControlPoint &src)
QSharedPointer< BundleControlPoint > BundleControlPointQsp
Definition for BundleControlPointQSP, a shared pointer to a BundleControlPoint.
Definition: BundleControlPoint.h:202
void setWeights(const BundleSettingsQsp settings)
Sets the weights using the given BundleSettings QSharedPointer and a conversion value for meters to r...
Definition: BundleControlPoint.cpp:178
void setNumberOfRejectedMeasures(int numRejected)
Sets the number of rejected measures for this BundleControlPoint.
Definition: BundleControlPoint.cpp:154
SparseBlockRowMatrix & cholmodQMatrix()
Accesses the CholMod matrix associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:589
SparseBlockRowMatrix.
Definition: SparseBlockMatrix.h:136

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/12/2023 23:15:19