Isis 3 Programmer 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:
171  int m_index;
172 
175 
179 
180  QString m_instrumentId;
181 
183 
186 // SpiceRotation *m_bodyRotation; //!< Instrument body rotation (in primary image).
187 
189 
190  // TODO??? change these to LinearAlgebra vectors...
192  LinearAlgebra::Vector m_corrections;
194  //LinearAlgebra::Vector m_solution; //!< parameter solution vector.
199  };
200 
203 }
204 
205 #endif // BundleObservation_h
LinearAlgebra::Vector m_weights
Parameter weights. Cumulative parameter correction vector.
LinearAlgebra::Vector & parameterWeights()
Accesses the solve parameter weights.
QString m_observationNumber
This is typically equivalent to serial number except in the case of "observation mode" (e...
LinearAlgebra::Vector & adjustedSigmas()
Accesses the adjusted sigmas.
int numberPointingParameters()
Returns the number of pointing parameters being solved for.
BundleTargetBodyQsp m_bundleTargetBody
QShared pointer to BundleTargetBody.
void append(const BundleImageQsp &value)
Appends a BundleImage shared pointer to the BundleObservation.
bool initializeExteriorOrientation()
Initializes the exterior orientation.
BundleImageQsp imageByCubeSerialNumber(QString cubeSerialNumber)
Returns the BundleImage shared pointer associated with the given serial number.
QMap< QString, BundleImageQsp > m_cubeSerialNumberToBundleImageMap
Map between cube serial number and BundleImage pointers.
Class for bundle observations.
bool initParameterWeights()
Initializes the paramater weights for solving.
LinearAlgebra::Vector m_adjustedSigmas
A posteriori (adjusted) parameter sigmas.
bool setSolveSettings(BundleObservationSolveSettings solveSettings)
Set solve parameters.
QSharedPointer< BundleObservation > BundleObservationQsp
Typdef for BundleObservation QSharedPointer.
QString instrumentId()
Accesses the instrument id.
BundleObservationSolveSettingsQsp m_solveSettings
Solve settings for this observation.
SpiceRotation * spiceRotation()
Accesses the instrument&#39;s spice rotation.
QString bundleOutputCSV(bool errorPropagation)
Creates and returns a formatted QString representing the bundle coefficients and parameters in csv fo...
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
LinearAlgebra::Vector & aprioriSigmas()
Accesses the a priori sigmas.
BundleObservation & operator=(const BundleObservation &src)
Assignment operator.
int numberPositionParameters()
Returns the number of position parameters there are.
QString formatBundleOutputString(bool errorPropagation, bool imageCSV=false)
Creates and returns a formatted QString representing the bundle coefficients and parameters ...
void setIndex(int n)
Sets the index for the observation.
void initializeBodyRotation()
Intializes the body rotation.
SpiceRotation * m_instrumentRotation
Instrument spice rotation (in primary image).
QStringList imageNames()
Access to image names for CorrelationMatrix to use.
QStringList m_serialNumbers
List of all cube serial numbers in observation.
Obtain SPICE rotation information for a body.
QStringList parameterList()
Access to parameters for CorrelationMatrix to use.
This class is used to modify and manage solve settings for 1 to many BundleObservations.
QStringList m_parameterNamesList
List of all cube parameters.
void bundleOutputString(std::ostream &fpOut, bool errorPropagation)
Takes in an open std::ofstream and writes out information which goes into the bundleout.txt file.
int index()
Accesses the observation&#39;s index.
QString m_instrumentId
Spacecraft instrument id.
bool applyParameterCorrections(LinearAlgebra::Vector corrections)
Applies the parameter corrections.
LinearAlgebra::Vector m_aprioriSigmas
A posteriori (adjusted) parameter sigmas.
Obtain SPICE position information for a body.
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
LinearAlgebra::Vector & parameterCorrections()
Accesses the parameter corrections.
int numberParameters()
Returns the number of total parameters there are for solving.
SpicePosition * m_instrumentPosition
Instrument spice position (in primary image).
void updateBodyRotation()
Updates the body rotation.
const BundleObservationSolveSettingsQsp solveSettings()
Accesses the solve settings.
int m_index
Index of this observation.
QStringList m_imageNames
List of all cube names.
void bundleOutputFetchData(QVector< double > &finalParameterValues, int &nPositionCoefficients, int &nPointingCoefficients, bool &useDefaultPosition, bool &useDefaultPointing, bool &useDefaultTwist)
Fetches data for the log file output methods.
BundleObservation()
Constructs a BundleObservation initialized to a default state.
SpicePosition * spicePosition()
Accesses the instrument&#39;s spice position.