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 
21 namespace 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);
64  bool computeImagePartials(LinearAlgebra::Matrix &coeffImage, BundleMeasure &measure);
66  bool computeRHSPartials(LinearAlgebra::Vector &coeffRHS, BundleMeasure &measure);
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
Isis::CsmBundleObservation::computeImagePartials
bool computeImagePartials(LinearAlgebra::Matrix &coeffImage, BundleMeasure &measure)
Calculates the sensor partials with respect to the solve parameters and populates the coeffImage matr...
Definition: CsmBundleObservation.cpp:350
Isis::CsmBundleObservation::bundleOutputString
void bundleOutputString(std::ostream &fpOut, bool errorPropagation)
Takes in an open std::ofstream and writes out information which goes into the bundleout....
Definition: CsmBundleObservation.cpp:205
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::CsmBundleObservation
Class for observations that use CSM camera models in bundle adjustment.
Definition: CsmBundleObservation.h:28
Isis::CsmBundleObservation::bundleOutputCSV
QString bundleOutputCSV(bool errorPropagation)
Creates and returns a formatted QString representing the bundle coefficients and parameters in csv fo...
Definition: CsmBundleObservation.cpp:274
Isis::CsmBundleObservation::computePoint3DPartials
bool computePoint3DPartials(LinearAlgebra::Matrix &coeffPoint3D, BundleMeasure &measure, SurfacePoint::CoordinateType coordType)
Calculates the ground partials for the line, sample currently set in the sensor model.
Definition: CsmBundleObservation.cpp:381
Isis::CsmBundleObservation::~CsmBundleObservation
~CsmBundleObservation()
Destructor.
Definition: CsmBundleObservation.cpp:71
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::CsmBundleObservation::computeObservationValue
double computeObservationValue(BundleMeasure &measure, double deltaVal)
Returns the observed value in (sample, line) coordinates.
Definition: CsmBundleObservation.cpp:481
Isis::CsmBundleObservation::computeTargetPartials
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.
Definition: CsmBundleObservation.cpp:329
Isis::CsmBundleObservation::setSolveSettings
virtual bool setSolveSettings(BundleObservationSolveSettings solveSettings)
Set solve parameters.
Definition: CsmBundleObservation.cpp:100
Isis::CsmBundleObservation::operator=
CsmBundleObservation & operator=(const CsmBundleObservation &src)
Assignment operator.
Definition: CsmBundleObservation.cpp:84
Isis::BundleMeasure
A container class for a ControlMeasure.
Definition: BundleMeasure.h:55
Isis::CsmBundleObservation::computeRHSPartials
bool computeRHSPartials(LinearAlgebra::Vector &coeffRHS, BundleMeasure &measure)
Calculates the sample, line residuals between the values measured in the image and the ground-to-imag...
Definition: CsmBundleObservation.cpp:441
Isis::CsmBundleObservation::solveSettings
const BundleObservationSolveSettingsQsp solveSettings()
Accesses the solve settings.
Definition: CsmBundleObservation.cpp:145
Isis::CsmBundleObservation::m_solveSettings
BundleObservationSolveSettingsQsp m_solveSettings
Solve settings for this observation.
Definition: CsmBundleObservation.h:73
Isis::CsmBundleObservation::applyParameterCorrections
bool applyParameterCorrections(LinearAlgebra::Vector corrections)
Applies the parameter corrections.
Definition: CsmBundleObservation.cpp:163
Isis::CsmBundleObservation::CsmBundleObservation
CsmBundleObservation()
Constructs a CsmBundleObservation initialized to a default state.
Definition: CsmBundleObservation.cpp:33
Isis::BundleObservationSolveSettings
This class is used to modify and manage solve settings for 1 to many BundleObservations.
Definition: BundleObservationSolveSettings.h:82
Isis::CsmBundleObservation::m_paramIndices
std::vector< int > m_paramIndices
The indices of the parameters the observation is solving for.
Definition: CsmBundleObservation.h:74
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::CsmBundleObservation::numberParameters
int numberParameters()
Returns the number of total parameters there are for solving.
Definition: CsmBundleObservation.cpp:191
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::CsmBundleObservation::parameterList
virtual QStringList parameterList()
Returns the list of observation parameter names.
Definition: CsmBundleObservation.cpp:305