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
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
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
69 double vtpv();
70
75
76
77 virtual const BundleObservationSolveSettingsQsp solveSettings() = 0;
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
84 virtual QStringList parameterList() = 0;
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;
90 virtual bool computePoint3DPartials(LinearAlgebra::Matrix &coeffPoint3D, BundleMeasure &measure, SurfacePoint::CoordinateType coordType = SurfacePoint::Rectangular) = 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
106 LinearAlgebra::Vector m_corrections;
111 };
112
114 typedef QSharedPointer<BundleObservation> BundleObservationQsp;
115}
116
117#endif // BundleObservation_h
A container class for a ControlMeasure.
Abstract base class for an observation in bundle adjustment.
virtual LinearAlgebra::Vector & parameterWeights()
Accesses the solve parameter weights.
void setIndex(int n)
Sets the index for the observation.
virtual LinearAlgebra::Vector & adjustedSigmas()
Accesses the adjusted sigmas.
QString m_observationNumber
The shared portion of the serial numbers of all images in the observation.
virtual LinearAlgebra::Vector & aprioriSigmas()
Accesses the a priori sigmas.
int index()
Accesses the observation's index.
QString m_instrumentId
Spacecraft instrument id.
QStringList m_serialNumbers
List of all cube serial numbers in observation.
virtual ~BundleObservation()
Destructor.
virtual void append(const BundleImageQsp &value)
Appends a BundleImage shared pointer to the BundleObservation.
QString instrumentId()
Accesses the instrument id.
int m_index
Index of this observation in the set of observations. Map between cube serial number and BundleImage ...
LinearAlgebra::Vector m_aprioriSigmas
A posteriori (adjusted) parameter sigmas.
QStringList m_imageNames
List of all cube names.
virtual QStringList imageNames()
Access to image names for CorrelationMatrix to use.
LinearAlgebra::Vector m_adjustedSigmas
A posteriori (adjusted) parameter sigmas.
virtual LinearAlgebra::Vector & parameterCorrections()
Accesses the parameter corrections.
BundleImageQsp imageByCubeSerialNumber(QString cubeSerialNumber)
Returns the BundleImage shared pointer associated with the given serial number.
LinearAlgebra::Vector m_weights
Parameter weights. Cumulative parameter correction vector.
BundleObservation()
Constructs a BundleObservation initialized to a default state.
virtual BundleObservation & operator=(const BundleObservation &src)
Assignment operator.
double vtpv()
Compute vtpv, the weighted sum of squares of constrained image parameter residuals.
This class is used to modify and manage solve settings for 1 to many BundleObservations.
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
boost::numeric::ublas::matrix< double > Matrix
Definition for an Isis::LinearAlgebra::Matrix of doubles.
CoordinateType
Defines the coordinate typ, units, and coordinate index for some of the output methods.
@ Rectangular
Body-fixed rectangular x/y/z coordinates.
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.