Isis 3 Programmer Reference
CsmBundleObservation.h
1#ifndef CsmBundleObservation_h
2#define CsmBundleObservation_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 "BundleTargetBody.h"
18#include "LinearAlgebra.h"
19#include "BundleObservation.h"
20
21namespace Isis {
22
29
30 public:
31 // default constructor
33
34 // constructor
35 CsmBundleObservation(BundleImageQsp image, QString observationNumber, QString instrumentId,
36 BundleTargetBodyQsp bundleTargetBody);
37
38 // copy constructor
40
41 // destructor
43
44 // equals operator
46
47 // copy method
48 void copy(const CsmBundleObservation &src);
49
51
52 int numberParameters();
53
55
57
58 void bundleOutputString(std::ostream &fpOut,bool errorPropagation);
59 QString bundleOutputCSV(bool errorPropagation);
60
61 virtual QStringList parameterList();
62
63 bool computeTargetPartials(LinearAlgebra::Matrix &coeffTarget, BundleMeasure &measure, BundleSettingsQsp &bundleSettings, BundleTargetBodyQsp &bundleTargetBody);
67 double computeObservationValue(BundleMeasure &measure, double deltaVal);
68
69 private:
70 bool initParameterWeights();
71
72 private:
74 std::vector<int> m_paramIndices;
75 };
76}
77
78#endif // CsmBundleObservation_h
A container class for a ControlMeasure.
Abstract base class for an observation in bundle adjustment.
QString instrumentId()
Accesses the instrument id.
This class is used to modify and manage solve settings for 1 to many BundleObservations.
Class for observations that use CSM camera models in bundle adjustment.
bool computeRHSPartials(LinearAlgebra::Vector &coeffRHS, BundleMeasure &measure)
Calculates the sample, line residuals between the values measured in the image and the ground-to-imag...
CsmBundleObservation & operator=(const CsmBundleObservation &src)
Assignment operator.
int numberParameters()
Returns the number of total parameters there are for solving.
QString bundleOutputCSV(bool errorPropagation)
Creates and returns a formatted QString representing the bundle coefficients and parameters in csv fo...
bool computeTargetPartials(LinearAlgebra::Matrix &coeffTarget, BundleMeasure &measure, BundleSettingsQsp &bundleSettings, BundleTargetBodyQsp &bundleTargetBody)
Cannot compute target body parameters for a CSM observation, so always throws an exception.
bool computeImagePartials(LinearAlgebra::Matrix &coeffImage, BundleMeasure &measure)
Calculates the sensor partials with respect to the solve parameters and populates the coeffImage matr...
bool applyParameterCorrections(LinearAlgebra::Vector corrections)
Applies the parameter corrections.
const BundleObservationSolveSettingsQsp solveSettings()
Accesses the solve settings.
std::vector< int > m_paramIndices
The indices of the parameters the observation is solving for.
virtual QStringList parameterList()
Returns the list of observation parameter names.
void bundleOutputString(std::ostream &fpOut, bool errorPropagation)
Takes in an open std::ofstream and writes out information which goes into the bundleout....
bool computePoint3DPartials(LinearAlgebra::Matrix &coeffPoint3D, BundleMeasure &measure, SurfacePoint::CoordinateType coordType)
Calculates the ground partials for the line, sample currently set in the sensor model.
virtual bool setSolveSettings(BundleObservationSolveSettings solveSettings)
Set solve parameters.
CsmBundleObservation()
Constructs a CsmBundleObservation initialized to a default state.
double computeObservationValue(BundleMeasure &measure, double deltaVal)
Returns the observed value in (sample, line) coordinates.
BundleObservationSolveSettingsQsp m_solveSettings
Solve settings for this observation.
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.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16