Isis Developer Reference
CsmBundleObservation.h
Go to the documentation of this file.
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"
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:
73  BundleObservationSolveSettingsQsp m_solveSettings;
74  std::vector<int> m_paramIndices;
75  };
76 }
77 
78 #endif // CsmBundleObservation_h
BundleObservationSolveSettings.h
Isis::BundleObservationSolveSettings::Type
@ Type
Solve for all CSM parameters of a specific type.
Definition: BundleObservationSolveSettings.h:107
BundleImage.h
Isis::CSMCamera::getSensorPartials
std::vector< double > getSensorPartials(int index, SurfacePoint groundPoint)
Definition: CSMCamera.cpp:918
Isis::CSMCamera::getParameterCovariance
double getParameterCovariance(int index1, int index2)
Get the covariance between two parameters.
Definition: CSMCamera.cpp:913
Isis::BundleMeasure::cubeSerialNumber
QString cubeSerialNumber() const
Accesses the serial number of the cube containing this control measure.
Definition: BundleMeasure.cpp:251
Isis::BundleControlPoint::adjustedSurfacePoint
SurfacePoint adjustedSurfacePoint() const
Accesses the adjusted SurfacePoint associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:479
Isis::BundleObservationSolveSettings::Set
@ Set
Solve for all CSM parameters belonging to a specific set.
Definition: BundleObservationSolveSettings.h:106
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::Camera::Sample
virtual double Sample() const
Returns the current sample number.
Definition: Camera.cpp:2690
SpicePosition.h
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
Isis::CSMCamera::applyParameterCorrection
void applyParameterCorrection(int index, double correction)
Adjust the value of a parameter.
Definition: CSMCamera.cpp:901
CsmBundleObservation.h
Isis::BundleMeasure::camera
Camera * camera() const
Accesses the associated camera for this bundle measure.
Definition: BundleMeasure.cpp:128
Isis::SurfacePoint::Two
@ Two
Definition: SurfacePoint.h:151
Isis::BundleControlPoint
This class holds information about a control point that BundleAdjust needs to run correctly.
Definition: BundleControlPoint.h:91
Isis::SurfacePoint::Three
@ Three
Definition: SurfacePoint.h:152
BundleTargetBody.h
QSharedPointer
Definition: JigsawWorkOrder.h:28
Isis::Camera::SetGround
virtual bool SetGround(Latitude latitude, Longitude longitude)
Sets the lat/lon values to get the sample/line values.
Definition: Camera.cpp:401
Isis::Camera
Definition: Camera.h:236
Isis::LinearAlgebra::Matrix
boost::numeric::ublas::matrix< double > Matrix
Definition for an Isis::LinearAlgebra::Matrix of doubles.
Definition: LinearAlgebra.h:100
QStringList
Isis::BundleObservation::m_weights
LinearAlgebra::Vector m_weights
Parameter weights. Cumulative parameter correction vector.
Definition: BundleObservation.h:102
Isis::BundleControlPoint::id
QString id() const
Accesses the Point ID associated with this BundleControlPoint.
Definition: BundleControlPoint.cpp:489
Isis::toString
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Definition: IString.cpp:211
Isis::CsmBundleObservation
Class for observations that use CSM camera models in bundle adjustment.
Definition: CsmBundleObservation.h:28
Isis::IsSpecial
bool IsSpecial(const double d)
Returns if the input pixel is special.
Definition: SpecialPixel.h:197
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::SurfacePoint::LatitudinalDerivative
std::vector< double > LatitudinalDerivative(CoordIndex index)
Compute partial derivative of the conversion of the latitudinal coordinates to body-fixed rectangular...
Definition: SurfacePoint.cpp:798
SpiceRotation.h
Isis::BundleObservationSolveSettingsQsp
QSharedPointer< BundleObservationSolveSettings > BundleObservationSolveSettingsQsp
Definition for BundleObservationSolveSettingsQsp, a QSharedPointer to a BundleObservationSolveSetting...
Definition: BundleObservationSolveSettings.h:293
Isis::CSMCamera::getParameterValue
double getParameterValue(int index)
Get the value of a parameter.
Definition: CSMCamera.cpp:947
Isis::BundleObservation::m_aprioriSigmas
LinearAlgebra::Vector m_aprioriSigmas
A posteriori (adjusted) parameter sigmas.
Definition: BundleObservation.h:106
BundleObservation.h
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::SurfacePoint::Rectangular
@ Rectangular
Body-fixed rectangular x/y/z coordinates.
Definition: SurfacePoint.h:141
Isis::LinearAlgebra::Vector
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
Definition: LinearAlgebra.h:120
_FILEINFO_
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
Isis::SurfacePoint::CoordinateType
CoordinateType
Defines the coordinate typ, units, and coordinate index for some of the output methods.
Definition: SurfacePoint.h:139
Isis::BundleObservation::m_corrections
LinearAlgebra::Vector m_corrections
Definition: BundleObservation.h:104
Isis::BundleMeasure::parentControlPoint
BundleControlPoint * parentControlPoint()
Accesses the parent BundleControlPoint for this bundle measure.
Definition: BundleMeasure.cpp:138
Isis::CsmBundleObservation::computeObservationValue
double computeObservationValue(BundleMeasure &measure, double deltaVal)
Returns the observed value in (sample, line) coordinates.
Definition: CsmBundleObservation.cpp:481
Isis::SurfacePoint::One
@ One
Definition: SurfacePoint.h:150
Isis::BundleMeasure::sample
double sample() const
Accesses the current sample measurement for this control measure.
Definition: BundleMeasure.cpp:191
BundleControlPoint.h
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::IException
Isis exception class.
Definition: IException.h:91
Isis::CsmBundleObservation::solveSettings
const BundleObservationSolveSettingsQsp solveSettings()
Accesses the solve settings.
Definition: CsmBundleObservation.cpp:145
Camera.h
Isis::CSMCamera::getParameterIndices
std::vector< int > getParameterIndices(csm::param::Set paramSet) const
Get the indices of the parameters that belong to a set.
Definition: CSMCamera.cpp:836
Isis::CsmBundleObservation::applyParameterCorrections
bool applyParameterCorrections(LinearAlgebra::Vector corrections)
Applies the parameter corrections.
Definition: CsmBundleObservation.cpp:163
Isis::IException::Programmer
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
Isis::CSMCamera::getParameterUnits
QString getParameterUnits(int index)
Get the units of the parameter at a particular index.
Definition: CSMCamera.cpp:959
std
Namespace for the standard library.
Isis::CsmBundleObservation::copy
void copy(const CsmBundleObservation &src)
CSMCamera.h
LinearAlgebra.h
Isis::CSMCamera::getParameterName
QString getParameterName(int index)
Get the name of the parameter.
Definition: CSMCamera.cpp:935
Isis::CsmBundleObservation::CsmBundleObservation
CsmBundleObservation()
Constructs a CsmBundleObservation initialized to a default state.
Definition: CsmBundleObservation.cpp:33
Isis::BundleObservation::m_adjustedSigmas
LinearAlgebra::Vector m_adjustedSigmas
A posteriori (adjusted) parameter sigmas.
Definition: BundleObservation.h:108
Isis::BundleObservationSolveSettings::List
@ List
Solve for an explicit list of CSM parameters.
Definition: BundleObservationSolveSettings.h:108
Isis::BundleObservationSolveSettings
This class is used to modify and manage solve settings for 1 to many BundleObservations.
Definition: BundleObservationSolveSettings.h:82
Isis::SurfacePoint::Latitudinal
@ Latitudinal
Planetocentric latitudinal (lat/lon/rad) coordinates.
Definition: SurfacePoint.h:140
Isis::CSMCamera
Definition: CSMCamera.h:25
Isis::IString
Adds specific functionality to C++ strings.
Definition: IString.h:165
Isis::Camera::Line
virtual double Line() const
Returns the current line number.
Definition: Camera.cpp:2710
Isis::CSMCamera::GroundPartials
virtual std::vector< double > GroundPartials(SurfacePoint groundPoint)
Compute the partial derivatives of the sample, line with respect to the x, y, z coordinates of the gr...
Definition: CSMCamera.cpp:645
QVector< double >
Isis::BundleMeasure::line
double line() const
Accesses the current line measurement for this control measure.
Definition: BundleMeasure.cpp:215
Isis::SurfacePoint
This class defines a body-fixed surface point.
Definition: SurfacePoint.h:132
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::IException::User
@ User
A type of error that could only have occurred due to a mistake on the user's part (e....
Definition: IException.h:126
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