Isis Developer Reference
BundleObservation.h
Go to the documentation of this file.
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"
17#include "BundleSettings.h"
18#include "BundleTargetBody.h"
19#include "LinearAlgebra.h"
20#include "BundleMeasure.h"
21#include "SurfacePoint.h"
22
23namespace 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
53
54 // copy method
55
56 void copy(const BundleObservation &src);
57
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
69 double vtpv();
70
75
76
78 virtual int numberParameters() = 0;
79 virtual bool applyParameterCorrections(LinearAlgebra::Vector corrections) = 0;
80
81 virtual void bundleOutputString(std::ostream &fpOut,bool errorPropagation) = 0;
82 virtual QString bundleOutputCSV(bool errorPropagation) = 0;
83
85 virtual QStringList imageNames();
86
87 virtual bool computeTargetPartials(LinearAlgebra::Matrix &coeffTarget, BundleMeasure &measure,
88 BundleSettingsQsp &bundleSettings, BundleTargetBodyQsp &bundleTargetBody) = 0;
89 virtual bool computeImagePartials(LinearAlgebra::Matrix &coeffImage, BundleMeasure &measure) = 0;
91 virtual bool computeRHSPartials(LinearAlgebra::Vector &coeffRHS, BundleMeasure &measure) = 0;
92 virtual double computeObservationValue(BundleMeasure &measure, double deltaVal) = 0;
93
94 protected:
97 int m_index;
99 QMap<QString, BundleImageQsp> m_cubeSerialNumberToBundleImageMap;
103
111 };
112
114 typedef QSharedPointer<BundleObservation> BundleObservationQsp;
115}
116
117#endif // BundleObservation_h
A container class for a ControlMeasure.
Definition BundleMeasure.h:55
Abstract base class for an observation in bundle adjustment.
Definition BundleObservation.h:35
virtual double computeObservationValue(BundleMeasure &measure, double deltaVal)=0
virtual LinearAlgebra::Vector & parameterWeights()
Accesses the solve parameter weights.
Definition BundleObservation.cpp:177
void setIndex(int n)
Sets the index for the observation.
Definition BundleObservation.cpp:217
void copy(const BundleObservation &src)
virtual LinearAlgebra::Vector & adjustedSigmas()
Accesses the adjusted sigmas.
Definition BundleObservation.cpp:207
virtual int numberParameters()=0
QString m_observationNumber
The shared portion of the serial numbers of all images in the observation.
Definition BundleObservation.h:95
virtual LinearAlgebra::Vector & aprioriSigmas()
Accesses the a priori sigmas.
Definition BundleObservation.cpp:197
int index()
Accesses the observation's index.
Definition BundleObservation.cpp:227
QString m_instrumentId
Spacecraft instrument id.
Definition BundleObservation.h:102
QStringList m_serialNumbers
List of all cube serial numbers in observation.
Definition BundleObservation.h:100
virtual ~BundleObservation()
Destructor.
Definition BundleObservation.cpp:98
LinearAlgebra::Vector m_corrections
Definition BundleObservation.h:106
virtual void append(const BundleImageQsp &value)
Appends a BundleImage shared pointer to the BundleObservation.
Definition BundleObservation.cpp:135
virtual bool applyParameterCorrections(LinearAlgebra::Vector corrections)=0
QString instrumentId()
Accesses the instrument id.
Definition BundleObservation.cpp:167
virtual bool computeImagePartials(LinearAlgebra::Matrix &coeffImage, BundleMeasure &measure)=0
int m_index
Index of this observation in the set of observations. Map between cube serial number and BundleImage ...
Definition BundleObservation.h:97
LinearAlgebra::Vector m_aprioriSigmas
A posteriori (adjusted) parameter sigmas.
Definition BundleObservation.h:108
virtual bool computeRHSPartials(LinearAlgebra::Vector &coeffRHS, BundleMeasure &measure)=0
QStringList m_imageNames
List of all cube names.
Definition BundleObservation.h:101
virtual QString bundleOutputCSV(bool errorPropagation)=0
virtual QStringList imageNames()
Access to image names for CorrelationMatrix to use.
Definition BundleObservation.cpp:237
LinearAlgebra::Vector m_adjustedSigmas
A posteriori (adjusted) parameter sigmas.
Definition BundleObservation.h:110
virtual const BundleObservationSolveSettingsQsp solveSettings()=0
virtual bool setSolveSettings(BundleObservationSolveSettings solveSettings)=0
virtual LinearAlgebra::Vector & parameterCorrections()
Accesses the parameter corrections.
Definition BundleObservation.cpp:187
BundleImageQsp imageByCubeSerialNumber(QString cubeSerialNumber)
Returns the BundleImage shared pointer associated with the given serial number.
Definition BundleObservation.cpp:151
virtual bool computePoint3DPartials(LinearAlgebra::Matrix &coeffPoint3D, BundleMeasure &measure, SurfacePoint::CoordinateType coordType=SurfacePoint::Rectangular)=0
LinearAlgebra::Vector m_weights
Parameter weights. Cumulative parameter correction vector.
Definition BundleObservation.h:104
virtual QStringList parameterList()=0
QMap< QString, BundleImageQsp > m_cubeSerialNumberToBundleImageMap
Definition BundleObservation.h:99
BundleObservation()
Constructs a BundleObservation initialized to a default state.
Definition BundleObservation.cpp:31
virtual bool computeTargetPartials(LinearAlgebra::Matrix &coeffTarget, BundleMeasure &measure, BundleSettingsQsp &bundleSettings, BundleTargetBodyQsp &bundleTargetBody)=0
virtual BundleObservation & operator=(const BundleObservation &src)
Assignment operator.
Definition BundleObservation.cpp:112
double vtpv()
Compute vtpv, the weighted sum of squares of constrained image parameter residuals.
Definition BundleObservation.cpp:247
virtual void bundleOutputString(std::ostream &fpOut, bool errorPropagation)=0
This class is used to modify and manage solve settings for 1 to many BundleObservations.
Definition BundleObservationSolveSettings.h:82
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
Definition LinearAlgebra.h:132
boost::numeric::ublas::matrix< double > Matrix
Definition for an Isis::LinearAlgebra::Matrix of doubles.
Definition LinearAlgebra.h:102
CoordinateType
Defines the coordinate typ, units, and coordinate index for some of the output methods.
Definition SurfacePoint.h:139
@ Rectangular
Body-fixed rectangular x/y/z coordinates.
Definition SurfacePoint.h:141
Definition JigsawWorkOrder.h:28
This is free and unencumbered software released into the public domain.
Definition Calculator.h:18
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
QSharedPointer< BundleObservation > BundleObservationQsp
Typdef for BundleObservation QSharedPointer.
Definition BundleObservation.h:114