Isis 3 Programmer Reference
IsisBundleObservation.h
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"
16#include "BundleObservationSolveSettings.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:
90
93
95 };
96
98 typedef QSharedPointer<IsisBundleObservation> IsisBundleObservationQsp;
99}
100
101#endif // IsisBundleObservation_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 ISIS camera models in bundle adjustment.
SpiceRotation * m_instrumentRotation
Instrument spice rotation (in primary image).
const BundleObservationSolveSettingsQsp solveSettings()
Accesses the solve settings.
int numberParameters()
Returns the number of total parameters there are for solving.
IsisBundleObservation()
Constructs a IsisBundleObservation initialized to a default state.
virtual QStringList parameterList()
Returns the list of observation parameter names.
bool initParameterWeights()
Initializes the paramater weights for solving.
QString bundleOutputCSV(bool errorPropagation)
Creates and returns a formatted QString representing the bundle coefficients and parameters in csv fo...
bool computeImagePartials(LinearAlgebra::Matrix &coeffImage, BundleMeasure &measure)
Calculates the sensor partials with respect to the selected solve parameters and populates the coeffI...
BundleObservationSolveSettingsQsp m_solveSettings
Solve settings for this observation.
SpiceRotation * spiceRotation()
Accesses the instrument's spice rotation.
void updateBodyRotation()
Updates the body rotation.
void bundleOutputFetchData(QVector< double > &finalParameterValues, int &nPositionCoefficients, int &nPointingCoefficients, bool &useDefaultPosition, bool &useDefaultPointing, bool &useDefaultTwist)
Fetches data for the log file output methods.
void initializeBodyRotation()
Intializes the body rotation.
double computeObservationValue(BundleMeasure &measure, double deltaVal)
Converts the observed value from a focal plane coordinate to an image sample or line.
bool computeRHSPartials(LinearAlgebra::Vector &coeffRHS, BundleMeasure &measure)
Calculates the sample, line residuals between the measured focal plane values and the focal plane coo...
bool initializeExteriorOrientation()
Initializes the exterior orientation.
bool applyParameterCorrections(LinearAlgebra::Vector corrections)
Applies the parameter corrections.
virtual bool setSolveSettings(BundleObservationSolveSettings solveSettings)
Set solve parameters.
int numberPointingParameters()
Returns the number of pointing parameters being solved for.
int numberPositionParameters()
Returns the number of position parameters there are.
IsisBundleObservation & operator=(const IsisBundleObservation &src)
Assignment operator.
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 ground point currently set in the sensor model.
SpicePosition * spicePosition()
Accesses the instrument's spice position.
SpicePosition * m_instrumentPosition
Instrument spice position (in primary image).
bool computeTargetPartials(LinearAlgebra::Matrix &coeffTarget, BundleMeasure &measure, BundleSettingsQsp &bundleSettings, BundleTargetBodyQsp &bundleTargetBody)
Computes any needed partials for the target body parameters.
BundleTargetBodyQsp m_bundleTargetBody
QShared pointer to BundleTargetBody.
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.
Obtain SPICE position information for a body.
Obtain SPICE rotation information for a body.
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
QSharedPointer< IsisBundleObservation > IsisBundleObservationQsp
Typdef for IsisBundleObservation QSharedPointer.