Isis 3.0
Home
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 
71  class BundleControlPoint : public QVector<BundleMeasureQsp> {
72 
73  public:
74  BundleControlPoint(ControlPoint *point); // default constructor
77 
78  // copy
79  BundleControlPoint &operator=(const BundleControlPoint &src);// ??? not implemented
80  void copy(const BundleControlPoint &src);
81 
82  // mutators
84  void computeResiduals();
85  void setAdjustedSurfacePoint(SurfacePoint surfacePoint);
86  void setNumberOfRejectedMeasures(int numRejected);
87  void setRejected(bool reject);
88  void setWeights(const BundleSettingsQsp settings, double metersToRadians);
90 
91  // accessors
93  bool isRejected() const;
94  int numberOfMeasures() const;
95  int numberOfRejectedMeasures() const;
96  double residualRms() const;
98  QString id() const;
100  boost::numeric::ublas::bounded_vector< double, 3 > &corrections();
101  boost::numeric::ublas::bounded_vector< double, 3 > &aprioriSigmas();
102  boost::numeric::ublas::bounded_vector< double, 3 > &adjustedSigmas();
103  boost::numeric::ublas::bounded_vector< double, 3 > &weights();
104  boost::numeric::ublas::bounded_vector<double, 3> &nicVector();
106 
107  // string format methods
108  QString formatBundleOutputSummaryString(bool errorPropagation) const;
109  QString formatBundleOutputDetailString(bool errorPropagation, double RTM, bool solveRadius=false) const;
110  QString formatValue(double value, int fieldWidth, int precision) const;
111  QString formatAprioriSigmaString(int type, int fieldWidth, int precision, bool solveRadius=false) const;
112  QString formatLatitudeAprioriSigmaString(int fieldWidth, int precision) const;
113  QString formatLongitudeAprioriSigmaString(int fieldWidth, int precision) const;
114  QString formatRadiusAprioriSigmaString(int fieldWidth, int precision, bool solveRadius=false) const;
115  QString formatAdjustedSigmaString(int type, int fieldWidth, int precision,
116  bool errorPropagation) const;
117  QString formatLatitudeAdjustedSigmaString(int fieldWidth, int precision,
118  bool errorPropagation) const;
119  QString formatLongitudeAdjustedSigmaString(int fieldWidth, int precision,
120  bool errorPropagation) const;
121  QString formatRadiusAdjustedSigmaString(int fieldWidth, int precision,
122  bool errorPropagation) const;
123 
124  private:
126  ControlPoint *m_controlPoint;
127 
129  boost::numeric::ublas::bounded_vector< double, 3 > m_corrections;
131  boost::numeric::ublas::bounded_vector< double, 3 > m_aprioriSigmas;
133  boost::numeric::ublas::bounded_vector< double, 3 > m_adjustedSigmas;
135  boost::numeric::ublas::bounded_vector< double, 3 > m_weights;
137  boost::numeric::ublas::bounded_vector<double, 3> m_nicVector;
139  SparseBlockRowMatrix m_cholmodQMatrix;
140  };
141 
142  // typedefs
144  typedef QSharedPointer<BundleControlPoint> BundleControlPointQsp;
145 }
146 
147 #endif // BundleControlPoint_h
148 
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:86
int numberOfRejectedMeasures() const
Accesses the number of rejected measures for this BundleControlPoint.
Definition: BundleControlPoint.cpp:290
QSharedPointer< BundleSettings > BundleSettingsQsp
Definition for a BundleSettingsQsp, a shared pointer to a BundleSettings object.
Definition: BundleSettings.h:404
QString formatAprioriSigmaString(int type, int fieldWidth, int precision, bool solveRadius=false) const
Formats the apriori sigma value indicated by the given type code.
Definition: BundleControlPoint.cpp:565
QString formatLatitudeAprioriSigmaString(int fieldWidth, int precision) const
Formats the apriori latitude sigma value.
Definition: BundleControlPoint.cpp:593
BundleControlPoint(ControlPoint *point)
Constructs a BundleControlPoint object from a ControlPoint.
Definition: BundleControlPoint.cpp:20
void setRejected(bool reject)
Sets this BundleControlPoint to rejected or not rejected.
Definition: BundleControlPoint.cpp:151
BundleMeasureQsp addMeasure(ControlMeasure *controlMeasure)
Creates a BundleMeasure from the given ControlMeasure and appends it to this BundleControlPoint&#39;s mea...
Definition: BundleControlPoint.cpp:102
QString formatLatitudeAdjustedSigmaString(int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted latitude sigma value.
Definition: BundleControlPoint.cpp:686
void copy(const BundleControlPoint &src)
Copies given BundleControlPoint to this BundleControlPoint.
Definition: BundleControlPoint.cpp:74
PointType
These are the valid &#39;types&#39; of point.
Definition: ControlPoint.h:349
void computeResiduals()
Computes the residuals for this BundleControlPoint.
Definition: BundleControlPoint.cpp:117
boost::numeric::ublas::bounded_vector< double, 3 > & weights()
Accesses the 3 dimensional ordered vector of weight values associated with latitude, longitude, and radius.
Definition: BundleControlPoint.cpp:381
int numberOfMeasures() const
Accesses number of measures associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:278
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 dimenstional ordered vector of apriori sigmas (apriori latitude, apriori longitude...
Definition: BundleControlPoint.cpp:358
ControlPoint * rawControlPoint() const
Accessor for the raw ControlPoint object used for this BundleControlPoint.
Definition: BundleControlPoint.cpp:258
QString formatBundleOutputSummaryString(bool errorPropagation) const
Formats an output summary string for this BundleControlPoint.
Definition: BundleControlPoint.cpp:416
boost::numeric::ublas::bounded_vector< double, 3 > & adjustedSigmas()
Accesses the 3 dimenstional ordered vector of adjusted sigmas (adjusted latitude, adjusted longitude...
Definition: BundleControlPoint.cpp:370
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 latitude, longitude, and radius.
Definition: BundleControlPoint.cpp:347
boost::numeric::ublas::bounded_vector< double, 3 > & nicVector()
Accesses the 3 dimensional ordered NIC vector.
Definition: BundleControlPoint.cpp:391
SurfacePoint adjustedSurfacePoint() const
Accesses the adjusted SurfacePoint associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:312
void zeroNumberOfRejectedMeasures()
Resets the number of rejected measures for this BundleControlPoint to zero.
Definition: BundleControlPoint.cpp:248
void setAdjustedSurfacePoint(SurfacePoint surfacePoint)
Sets the adjusted surface point for this BundleControlPoint.
Definition: BundleControlPoint.cpp:127
bool isRejected() const
Method used to determine whether this control point is rejected.
Definition: BundleControlPoint.cpp:268
ControlPoint::PointType type() const
Accesses BundleControlPoint&#39;s type.
Definition: BundleControlPoint.cpp:335
This class holds information about a control point that BundleAdjust needs to run corretly...
Definition: BundleControlPoint.h:71
~BundleControlPoint()
Destructor for BundleControlPoint.
Definition: BundleControlPoint.cpp:65
A single control point.
Definition: ControlPoint.h:339
double residualRms() const
Gets the root-mean-square (rms) of the BundleControlPoint&#39;s residuals.
Definition: BundleControlPoint.cpp:302
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:545
Definition: Calculator.h:33
QString formatRadiusAprioriSigmaString(int fieldWidth, int precision, bool solveRadius=false) const
Formats the apriori radius sigma value.
Definition: BundleControlPoint.cpp:625
QString formatLongitudeAprioriSigmaString(int fieldWidth, int precision) const
Formats the apriori longitude sigma value.
Definition: BundleControlPoint.cpp:609
void setWeights(const BundleSettingsQsp settings, double metersToRadians)
Sets the weights using the given BundleSettings QSharedPointer and a conversion value for meters to r...
Definition: BundleControlPoint.cpp:163
QSharedPointer< BundleMeasure > BundleMeasureQsp
Definition for BundleMeasureQsp, a shared pointer to a BundleMeasure.
Definition: BundleMeasure.h:113
QString formatRadiusAdjustedSigmaString(int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted radius sigma value.
Definition: BundleControlPoint.cpp:720
a control measurement
Definition: ControlMeasure.h:171
QString formatLongitudeAdjustedSigmaString(int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted longitude sigma value.
Definition: BundleControlPoint.cpp:703
BundleControlPoint & operator=(const BundleControlPoint &src)
QString id() const
Accesses the Point ID associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:322
QString formatAdjustedSigmaString(int type, int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted sigma value indicated by the given type code.
Definition: BundleControlPoint.cpp:645
QSharedPointer< BundleControlPoint > BundleControlPointQsp
Definition for BundleControlPointQSP, a shared pointer to a BundleControlPoint.
Definition: BundleControlPoint.h:144
QString formatBundleOutputDetailString(bool errorPropagation, double RTM, bool solveRadius=false) const
Formats a detailed output string table for this BundleControlPoint.
Definition: BundleControlPoint.cpp:453
void setNumberOfRejectedMeasures(int numRejected)
Sets the number of rejected measures for this BundleControlPoint.
Definition: BundleControlPoint.cpp:139
SparseBlockRowMatrix & cholmodQMatrix()
Accesses the CholMod matrix associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:401
SparseBlockRowMatrix.
Definition: SparseBlockMatrix.h:125