Isis Developer Reference
IsisBundleObservation.h
Go to the documentation of this file.
1#ifndef IsisBundleObservation_h
2#define IsisBundleObservation_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 "BundleObservation.h"
21#include "BundleMeasure.h"
22#include "SurfacePoint.h"
23
24namespace Isis {
26 class SpicePosition;
27 class SpiceRotation;
28
35
36 public:
37 // default constructor
39
40 // constructor
41 IsisBundleObservation(BundleImageQsp image, QString observationNumber, QString instrumentId,
42 BundleTargetBodyQsp bundleTargetBody);
43
44 // copy constructor
46
47 // destructor
49
50 // equals operator
52
53 // copy method
54 void copy(const IsisBundleObservation &src);
55
57
60 int numberParameters();
61
64
66
70 void updateBodyRotation();
71
72 void bundleOutputFetchData(QVector<double> &finalParameterValues,
73 int &nPositionCoefficients, int &nPointingCoefficients,
74 bool &useDefaultPosition, bool &useDefaultPointing,
75 bool &useDefaultTwist);
76 void bundleOutputString(std::ostream &fpOut,bool errorPropagation);
77 QString bundleOutputCSV(bool errorPropagation);
78
79 virtual QStringList parameterList();
80
81 bool computeTargetPartials(LinearAlgebra::Matrix &coeffTarget, BundleMeasure &measure, BundleSettingsQsp &bundleSettings, BundleTargetBodyQsp &bundleTargetBody);
85 double computeObservationValue(BundleMeasure &measure, double deltaVal);
86
87 private:
88 bool initParameterWeights();
89 BundleObservationSolveSettingsQsp m_solveSettings;
90
91 SpiceRotation *m_instrumentRotation;
92 SpicePosition *m_instrumentPosition;
93
94 BundleTargetBodyQsp m_bundleTargetBody;
95 };
96
98 typedef QSharedPointer<IsisBundleObservation> IsisBundleObservationQsp;
99}
100
101#endif // IsisBundleObservation_h
A container class for a ControlMeasure.
Definition BundleMeasure.h:55
Abstract base class for an observation in bundle adjustment.
Definition BundleObservation.h:35
QString instrumentId()
Accesses the instrument id.
Definition BundleObservation.cpp:167
This class is used to modify and manage solve settings for 1 to many BundleObservations.
Definition BundleObservationSolveSettings.h:82
Class for observations that use ISIS camera models in bundle adjustment.
Definition IsisBundleObservation.h:34
const BundleObservationSolveSettingsQsp solveSettings()
Accesses the solve settings.
Definition IsisBundleObservation.cpp:180
int numberParameters()
Returns the number of total parameters there are for solving.
Definition IsisBundleObservation.cpp:548
IsisBundleObservation()
Constructs a IsisBundleObservation initialized to a default state.
Definition IsisBundleObservation.cpp:34
~IsisBundleObservation()
Destructor.
Definition IsisBundleObservation.cpp:90
virtual QStringList parameterList()
Returns the list of observation parameter names.
Definition IsisBundleObservation.cpp:562
QString bundleOutputCSV(bool errorPropagation)
Creates and returns a formatted QString representing the bundle coefficients and parameters in csv fo...
Definition IsisBundleObservation.cpp:965
bool computeImagePartials(LinearAlgebra::Matrix &coeffImage, BundleMeasure &measure)
Calculates the sensor partials with respect to the selected solve parameters and populates the coeffI...
Definition IsisBundleObservation.cpp:1184
SpiceRotation * spiceRotation()
Accesses the instrument's spice rotation.
Definition IsisBundleObservation.cpp:159
void updateBodyRotation()
Updates the body rotation.
Definition IsisBundleObservation.cpp:288
void bundleOutputFetchData(QVector< double > &finalParameterValues, int &nPositionCoefficients, int &nPointingCoefficients, bool &useDefaultPosition, bool &useDefaultPointing, bool &useDefaultTwist)
Fetches data for the log file output methods.
Definition IsisBundleObservation.cpp:646
void initializeBodyRotation()
Intializes the body rotation.
Definition IsisBundleObservation.cpp:273
double computeObservationValue(BundleMeasure &measure, double deltaVal)
Converts the observed value from a focal plane coordinate to an image sample or line.
Definition IsisBundleObservation.cpp:1370
bool computeRHSPartials(LinearAlgebra::Vector &coeffRHS, BundleMeasure &measure)
Calculates the sample, line residuals between the measured focal plane values and the focal plane coo...
Definition IsisBundleObservation.cpp:1324
bool initializeExteriorOrientation()
Initializes the exterior orientation.
Definition IsisBundleObservation.cpp:190
bool applyParameterCorrections(LinearAlgebra::Vector corrections)
Applies the parameter corrections.
Definition IsisBundleObservation.cpp:405
virtual bool setSolveSettings(BundleObservationSolveSettings solveSettings)
Set solve parameters.
Definition IsisBundleObservation.cpp:122
void copy(const IsisBundleObservation &src)
int numberPointingParameters()
Returns the number of pointing parameters being solved for.
Definition IsisBundleObservation.cpp:530
int numberPositionParameters()
Returns the number of position parameters there are.
Definition IsisBundleObservation.cpp:520
IsisBundleObservation & operator=(const IsisBundleObservation &src)
Assignment operator.
Definition IsisBundleObservation.cpp:103
void bundleOutputString(std::ostream &fpOut, bool errorPropagation)
Takes in an open std::ofstream and writes out information which goes into the bundleout....
Definition IsisBundleObservation.cpp:744
bool computePoint3DPartials(LinearAlgebra::Matrix &coeffPoint3D, BundleMeasure &measure, SurfacePoint::CoordinateType coordType)
Calculates the ground partials for the ground point currently set in the sensor model.
Definition IsisBundleObservation.cpp:1281
SpicePosition * spicePosition()
Accesses the instrument's spice position.
Definition IsisBundleObservation.cpp:169
bool computeTargetPartials(LinearAlgebra::Matrix &coeffTarget, BundleMeasure &measure, BundleSettingsQsp &bundleSettings, BundleTargetBodyQsp &bundleTargetBody)
Computes any needed partials for the target body parameters.
Definition IsisBundleObservation.cpp:1073
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
Obtain SPICE position information for a body.
Definition SpicePosition.h:176
Obtain SPICE rotation information for a body.
Definition SpiceRotation.h:208
CoordinateType
Defines the coordinate typ, units, and coordinate index for some of the output methods.
Definition SurfacePoint.h:139
Definition JigsawWorkOrder.h:28
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
QSharedPointer< IsisBundleObservation > IsisBundleObservationQsp
Typdef for IsisBundleObservation QSharedPointer.
Definition IsisBundleObservation.h:98