Isis 3 Programmer Reference
BundleObservation.h
1 #ifndef BundleObservation_h
2 #define BundleObservation_h
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 #include <QStringList>
13 #include <QVector>
14 
15 #include "BundleImage.h"
16 #include "BundleObservationSolveSettings.h"
17 #include "BundleSettings.h"
18 #include "BundleTargetBody.h"
19 #include "LinearAlgebra.h"
20 #include "BundleMeasure.h"
21 #include "SurfacePoint.h"
22 
23 namespace Isis {
24 
35  class BundleObservation : public QVector<BundleImageQsp> {
36 
37  public:
38  // default constructor
40 
41  // constructor
42  BundleObservation(BundleImageQsp image, QString observationNumber, QString instrumentId,
43  BundleTargetBodyQsp bundleTargetBody);
44 
45  // copy constructor
47 
48  // destructor
49  virtual ~BundleObservation();
50 
51  // equals operator
52  virtual BundleObservation &operator=(const BundleObservation &src);
53 
54  // copy method
55 
56  void copy(const BundleObservation &src);
57 
58  virtual bool setSolveSettings(BundleObservationSolveSettings solveSettings) = 0;
59 
60  virtual void append(const BundleImageQsp &value);
61 
62  BundleImageQsp imageByCubeSerialNumber(QString cubeSerialNumber);
63 
64  void setIndex(int n);
65  int index();
66 
67  QString instrumentId();
68 
73 
74 
75  virtual const BundleObservationSolveSettingsQsp solveSettings() = 0;
76  virtual int numberParameters() = 0;
77  virtual bool applyParameterCorrections(LinearAlgebra::Vector corrections) = 0;
78 
79  virtual void bundleOutputString(std::ostream &fpOut,bool errorPropagation) = 0;
80  virtual QString bundleOutputCSV(bool errorPropagation) = 0;
81 
82  virtual QStringList parameterList() = 0;
83  virtual QStringList imageNames();
84 
85  virtual bool computeTargetPartials(LinearAlgebra::Matrix &coeffTarget, BundleMeasure &measure,
86  BundleSettingsQsp &bundleSettings, BundleTargetBodyQsp &bundleTargetBody) = 0;
87  virtual bool computeImagePartials(LinearAlgebra::Matrix &coeffImage, BundleMeasure &measure) = 0;
88  virtual bool computePoint3DPartials(LinearAlgebra::Matrix &coeffPoint3D, BundleMeasure &measure, SurfacePoint::CoordinateType coordType = SurfacePoint::Rectangular) = 0;
89  virtual bool computeRHSPartials(LinearAlgebra::Vector &coeffRHS, BundleMeasure &measure) = 0;
90  virtual double computeObservationValue(BundleMeasure &measure, double deltaVal) = 0;
91 
92  protected:
95  int m_index;
96  QMap<QString, BundleImageQsp> m_cubeSerialNumberToBundleImageMap;
100  QString m_instrumentId;
101 
103  LinearAlgebra::Vector m_corrections;
109  };
110 
113 }
114 
115 #endif // BundleObservation_h
Isis::BundleObservation::aprioriSigmas
virtual LinearAlgebra::Vector & aprioriSigmas()
Accesses the a priori sigmas.
Definition: BundleObservation.cpp:197
Isis::BundleObservation::imageNames
virtual QStringList imageNames()
Access to image names for CorrelationMatrix to use.
Definition: BundleObservation.cpp:237
Isis::BundleObservation::m_instrumentId
QString m_instrumentId
Spacecraft instrument id.
Definition: BundleObservation.h:100
Isis::BundleObservation::operator=
virtual BundleObservation & operator=(const BundleObservation &src)
Assignment operator.
Definition: BundleObservation.cpp:112
Isis::BundleObservation::parameterCorrections
virtual LinearAlgebra::Vector & parameterCorrections()
Accesses the parameter corrections.
Definition: BundleObservation.cpp:187
Isis::BundleObservation::BundleObservation
BundleObservation()
Constructs a BundleObservation initialized to a default state.
Definition: BundleObservation.cpp:31
QSharedPointer
Definition: JigsawWorkOrder.h:28
Isis::LinearAlgebra::Matrix
boost::numeric::ublas::matrix< double > Matrix
Definition for an Isis::LinearAlgebra::Matrix of doubles.
Definition: LinearAlgebra.h:100
QStringList
Isis::BundleObservation::m_weights
LinearAlgebra::Vector m_weights
Parameter weights. Cumulative parameter correction vector.
Definition: BundleObservation.h:102
Isis::BundleObservation::index
int index()
Accesses the observation's index.
Definition: BundleObservation.cpp:227
Isis::BundleObservation::m_aprioriSigmas
LinearAlgebra::Vector m_aprioriSigmas
A posteriori (adjusted) parameter sigmas.
Definition: BundleObservation.h:106
Isis::BundleObservation::adjustedSigmas
virtual LinearAlgebra::Vector & adjustedSigmas()
Accesses the adjusted sigmas.
Definition: BundleObservation.cpp:207
Isis::SurfacePoint::Rectangular
@ Rectangular
Body-fixed rectangular x/y/z coordinates.
Definition: SurfacePoint.h:141
Isis::BundleObservation::m_index
int m_index
Index of this observation in the set of observations. Map between cube serial number and BundleImage ...
Definition: BundleObservation.h:95
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::BundleObservation::m_imageNames
QStringList m_imageNames
List of all cube names.
Definition: BundleObservation.h:99
Isis::BundleObservation::append
virtual void append(const BundleImageQsp &value)
Appends a BundleImage shared pointer to the BundleObservation.
Definition: BundleObservation.cpp:135
Isis::BundleObservation::imageByCubeSerialNumber
BundleImageQsp imageByCubeSerialNumber(QString cubeSerialNumber)
Returns the BundleImage shared pointer associated with the given serial number.
Definition: BundleObservation.cpp:151
Isis::BundleMeasure
A container class for a ControlMeasure.
Definition: BundleMeasure.h:55
Isis::BundleObservation::parameterWeights
virtual LinearAlgebra::Vector & parameterWeights()
Accesses the solve parameter weights.
Definition: BundleObservation.cpp:177
Isis::BundleObservation::m_observationNumber
QString m_observationNumber
The shared portion of the serial numbers of all images in the observation.
Definition: BundleObservation.h:93
Isis::BundleObservation::m_adjustedSigmas
LinearAlgebra::Vector m_adjustedSigmas
A posteriori (adjusted) parameter sigmas.
Definition: BundleObservation.h:108
QMap
This is free and unencumbered software released into the public domain.
Definition: CubeIoHandler.h:22
Isis::BundleObservationQsp
QSharedPointer< BundleObservation > BundleObservationQsp
Typdef for BundleObservation QSharedPointer.
Definition: BundleObservation.h:112
Isis::BundleObservationSolveSettings
This class is used to modify and manage solve settings for 1 to many BundleObservations.
Definition: BundleObservationSolveSettings.h:82
QVector
This is free and unencumbered software released into the public domain.
Definition: Calculator.h:18
Isis::BundleObservation::m_serialNumbers
QStringList m_serialNumbers
List of all cube serial numbers in observation.
Definition: BundleObservation.h:98
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::BundleObservation::setIndex
void setIndex(int n)
Sets the index for the observation.
Definition: BundleObservation.cpp:217
Isis::BundleObservation::instrumentId
QString instrumentId()
Accesses the instrument id.
Definition: BundleObservation.cpp:167
Isis::BundleObservation
Abstract base class for an observation in bundle adjustment.
Definition: BundleObservation.h:35
Isis::BundleObservation::~BundleObservation
virtual ~BundleObservation()
Destructor.
Definition: BundleObservation.cpp:98