Isis 3 Developer Reference
BundleObservation.h
Go to the documentation of this file.
1 #ifndef BundleObservation_h
2 #define BundleObservation_h
3 
26 #include <QStringList>
27 #include <QVector>
28 
29 #include "BundleImage.h"
31 #include "BundleTargetBody.h"
32 #include "LinearAlgebra.h"
33 
34 namespace Isis {
35  class BundleObservationSolveSettings;
36  class SpicePosition;
37  class SpiceRotation;
38 
98  class BundleObservation : public QVector<BundleImageQsp> {
99 
100  public:
101  // default constructor
103 
104  // constructor
105  BundleObservation(BundleImageQsp image, QString observationNumber, QString instrumentId,
106  BundleTargetBodyQsp bundleTargetBody);
107 
108  // copy constructor
110 
111  // destructor
113 
114  // equals operator
116 
117  // copy method
118  void copy(const BundleObservation &src);
119 
120  void append(const BundleImageQsp &value);
121 
122  BundleImageQsp imageByCubeSerialNumber(QString cubeSerialNumber);
123 
125 
126  void setIndex(int n);
127  int index();
128 
131  int numberParameters();
132 
133  QString instrumentId();
134 
137 
142 
144 
147  void initializeBodyRotation();
148  void updateBodyRotation();
149 
150  void bundleOutputFetchData(QVector<double> &finalParameterValues,
151  int &nPositionCoefficients, int &nPointingCoefficients,
152  bool &useDefaultPosition, bool &useDefaultPointing,
153  bool &useDefaultTwist);
154  void bundleOutputString(std::ostream &fpOut,bool errorPropagation);
155  QString bundleOutputCSV(bool errorPropagation);
156 
157  QString formatBundleOutputString(bool errorPropagation, bool imageCSV=false);
160 
161  private:
162  bool initParameterWeights();
163 
164  private:
165  QString m_observationNumber;
171  int m_index;
172 
174  QMap<QString, BundleImageQsp> m_cubeSerialNumberToBundleImageMap;
175 
176  QStringList m_serialNumbers;
177  QStringList m_parameterNamesList;
178  QStringList m_imageNames;
179 
180  QString m_instrumentId;
181 
182  BundleObservationSolveSettingsQsp m_solveSettings;
183 
184  SpiceRotation *m_instrumentRotation;
185  SpicePosition *m_instrumentPosition;
186 // SpiceRotation *m_bodyRotation; //!< Instrument body rotation (in primary image).
187 
188  BundleTargetBodyQsp m_bundleTargetBody;
189 
190  // TODO??? change these to LinearAlgebra vectors...
191  LinearAlgebra::Vector m_weights;
192  LinearAlgebra::Vector m_corrections;
194  //LinearAlgebra::Vector m_solution; //!< parameter solution vector.
196  LinearAlgebra::Vector m_aprioriSigmas;
198  LinearAlgebra::Vector m_adjustedSigmas;
199  };
200 
203 }
204 
205 #endif // BundleObservation_h
LinearAlgebra::Vector & parameterWeights()
Accesses the solve parameter weights.
Definition: BundleObservation.cpp:273
LinearAlgebra::Vector & adjustedSigmas()
Accesses the adjusted sigmas.
Definition: BundleObservation.cpp:312
int numberPointingParameters()
Returns the number of pointing parameters being solved for.
Definition: BundleObservation.cpp:744
void append(const BundleImageQsp &value)
Appends a BundleImage shared pointer to the BundleObservation.
Definition: BundleObservation.cpp:165
bool initializeExteriorOrientation()
Initializes the exterior orientation.
Definition: BundleObservation.cpp:336
BundleImageQsp imageByCubeSerialNumber(QString cubeSerialNumber)
Returns the BundleImage shared pointer associated with the given serial number.
Definition: BundleObservation.cpp:181
Class for bundle observations.
Definition: BundleObservation.h:98
bool setSolveSettings(BundleObservationSolveSettings solveSettings)
Set solve parameters.
Definition: BundleObservation.cpp:203
QSharedPointer< BundleObservation > BundleObservationQsp
Typdef for BundleObservation QSharedPointer.
Definition: BundleObservation.h:202
QString instrumentId()
Accesses the instrument id.
Definition: BundleObservation.cpp:243
SpiceRotation * spiceRotation()
Accesses the instrument&#39;s spice rotation.
Definition: BundleObservation.cpp:253
QString bundleOutputCSV(bool errorPropagation)
Creates and returns a formatted QString representing the bundle coefficients and parameters in csv fo...
Definition: BundleObservation.cpp:1475
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
Definition: LinearAlgebra.h:135
LinearAlgebra::Vector & aprioriSigmas()
Accesses the a priori sigmas.
Definition: BundleObservation.cpp:302
~BundleObservation()
Destructor.
Definition: BundleObservation.cpp:125
void copy(const BundleObservation &src)
BundleObservation & operator=(const BundleObservation &src)
Assignment operator.
Definition: BundleObservation.cpp:139
int numberPositionParameters()
Returns the number of position parameters there are.
Definition: BundleObservation.cpp:734
QString formatBundleOutputString(bool errorPropagation, bool imageCSV=false)
Creates and returns a formatted QString representing the bundle coefficients and parameters ...
Definition: BundleObservation.cpp:805
void setIndex(int n)
Sets the index for the observation.
Definition: BundleObservation.cpp:772
void initializeBodyRotation()
Intializes the body rotation.
Definition: BundleObservation.cpp:421
QStringList imageNames()
Access to image names for CorrelationMatrix to use.
Definition: BundleObservation.cpp:1586
Definition: JigsawWorkOrder.h:28
Obtain SPICE rotation information for a body.
Definition: SpiceRotation.h:223
QStringList parameterList()
Access to parameters for CorrelationMatrix to use.
Definition: BundleObservation.cpp:1576
This class is used to modify and manage solve settings for 1 to many BundleObservations.
Definition: BundleObservationSolveSettings.h:91
Definition: Calculator.h:33
void bundleOutputString(std::ostream &fpOut, bool errorPropagation)
Takes in an open std::ofstream and writes out information which goes into the bundleout.txt file.
Definition: BundleObservation.cpp:1251
int index()
Accesses the observation&#39;s index.
Definition: BundleObservation.cpp:782
bool applyParameterCorrections(LinearAlgebra::Vector corrections)
Applies the parameter corrections.
Definition: BundleObservation.cpp:619
Obtain SPICE position information for a body.
Definition: SpicePosition.h:183
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
LinearAlgebra::Vector & parameterCorrections()
Accesses the parameter corrections.
Definition: BundleObservation.cpp:283
int numberParameters()
Returns the number of total parameters there are for solving.
Definition: BundleObservation.cpp:762
void updateBodyRotation()
Updates the body rotation.
Definition: BundleObservation.cpp:439
const BundleObservationSolveSettingsQsp solveSettings()
Accesses the solve settings.
Definition: BundleObservation.cpp:323
Definition: CubeIoHandler.h:38
void bundleOutputFetchData(QVector< double > &finalParameterValues, int &nPositionCoefficients, int &nPointingCoefficients, bool &useDefaultPosition, bool &useDefaultPointing, bool &useDefaultTwist)
Fetches data for the log file output methods.
Definition: BundleObservation.cpp:1153
BundleObservation()
Constructs a BundleObservation initialized to a default state.
Definition: BundleObservation.cpp:23
SpicePosition * spicePosition()
Accesses the instrument&#39;s spice position.
Definition: BundleObservation.cpp:263