File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
BundleTargetBody.h
1 #ifndef BundleTargetBody_h
2 #define BundleTargetBody_h
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 #include <set>
13 
14 #include <QSharedPointer>
15 #include <QStringList>
16 
17 #include <boost/numeric/ublas/vector.hpp>
18 
19 #include "Angle.h"
20 #include "Distance.h"
21 #include "Latitude.h"
22 #include "LinearAlgebra.h"
23 #include "Longitude.h"
24 
25 namespace Isis {
26 
27  class BundleSettings;
28  class PvlObject;
29  class Target;
30 
53 
54  public:
55  // constructors
56  BundleTargetBody(); // default
57  BundleTargetBody(Target *target);
58  BundleTargetBody(const BundleTargetBody &src); // copy
59  virtual ~BundleTargetBody();
60 
62 
65  None = 0,
66  Mean = 1,
67  All = 2
68  };
69 
71  enum TargetSolveCodes { PoleRA = 0,
72  VelocityPoleRA = 1,
73  AccelerationPoleRA = 2,
74  PoleDec = 3,
75  VelocityPoleDec = 4,
76  AccelerationPoleDec = 5,
77  PM = 6,
78  VelocityPM = 7,
79  AccelerationPM = 8,
80  TriaxialRadiusA = 9,
81  TriaxialRadiusB = 10,
82  TriaxialRadiusC = 11,
83  MeanRadius = 12
84  };
85 
86  void setSolveSettings(std::set<int> targetParameterSolveCodes,
87  Angle aprioriPoleRA, Angle sigmaPoleRA, Angle aprioriVelocityPoleRA,
88  Angle sigmaVelocityPoleRA, Angle aprioriPoleDec, Angle sigmaPoleDec,
89  Angle aprioriVelocityPoleDec, Angle sigmaVelocityPoleDec,
90  Angle aprioriPM, Angle sigmaPM, Angle aprioriVelocityPM,
91  Angle sigmaVelocityPM, TargetRadiiSolveMethod solveRadiiMethod,
92  Distance aprioriRadiusA, Distance sigmaRadiusA, Distance aprioriRadiusB,
93  Distance sigmaRadiusB, Distance aprioriRadiusC, Distance sigmaRadiusC,
94  Distance aprioriMeanRadius, Distance sigmaMeanRadius);
95 
97  static QString targetRadiiOptionToString(TargetRadiiSolveMethod targetRadiiSolveMethod);
98 
99  bool readFromPvl(PvlObject &tbPvlObject);
100 
101  // mutators
102  //
103 
104  // accessors
110 
111  std::vector<Angle> poleRaCoefs();
112  std::vector<Angle> poleDecCoefs();
113  std::vector<Angle> pmCoefs();
114 
115  std::vector<Distance> radii();
117 
118  // string format methods
119  QString formatBundleOutputString(bool errorPropagation);
121  // TODO implement
122  QString formatValue(double value, int fieldWidth, int precision) const;
123  QString formatAprioriSigmaString(int type, int fieldWidth, int precision) const;
124  QString formatPolePositionAprioriSigmaString(int fieldWidth, int precision) const;
125  QString formatW0AprioriSigmaString(int fieldWidth, int precision) const;
126  QString formatWDotAprioriSigmaString(int fieldWidth, int precision) const;
127  QString formatRadiusAprioriSigmaString(int fieldWidth, int precision) const;
128  QString formatPolePositionAdjustedSigmaString(int fieldWidth, int precision) const;
129  QString formatW0AdjustedSigmaString(int fieldWidth, int precision) const;
130  QString formatWDotAdjustedSigmaString(int fieldWidth, int precision) const;
131  QString formatRadiusAdjustedSigmaString(int fieldWidth, int precision) const;
132 
133  virtual bool solvePoleRA();
134  virtual bool solvePoleRAVelocity();
135  virtual bool solvePoleRAAcceleration();
136  virtual bool solvePoleDec();
137  virtual bool solvePoleDecVelocity();
138  virtual bool solvePoleDecAcceleration();
139  virtual bool solvePM();
140  virtual bool solvePMVelocity();
141  virtual bool solvePMAcceleration();
142  virtual bool solveTriaxialRadii();
143  virtual bool solveMeanRadius();
144 
145 // int numberPoleParameters();
146 // int numberW0Parameters();
147 // int numberWDotParameters();
149  virtual int numberParameters();
150 
152 
153  double vtpv();
154 
155  Distance localRadius(const Latitude &lat, const Longitude &lon);
156 
157  private:
167 
168  std::vector<Distance> m_radii;
170 
171  std::vector<Angle> m_raPole;
172  std::vector<Angle> m_decPole;
173  std::vector<Angle> m_pm ;
174 
175  std::set<int> m_parameterSolveCodes;
178 
184  };
185 
188 }
189 
190 #endif // BundleTargetBody_h
Isis::BundleTargetBody::m_weights
LinearAlgebra::Vector m_weights
Parameter weights.
Definition: BundleTargetBody.h:179
Isis::BundleTargetBody::parameterCorrections
LinearAlgebra::Vector & parameterCorrections()
Returns the vector of corrections applied to the parameters.
Definition: BundleTargetBody.cpp:743
Isis::BundleTargetBody::m_decPole
std::vector< Angle > m_decPole
pole dec quadratic polynomial coefficients
Definition: BundleTargetBody.h:172
Isis::BundleTargetBody::formatBundleOutputString
QString formatBundleOutputString(bool errorPropagation)
Formats and returns the parameter values as a QString.
Definition: BundleTargetBody.cpp:966
Isis::BundleTargetBody::localRadius
Distance localRadius(const Latitude &lat, const Longitude &lon)
Gets the local radius for the given latitude/longitude coordinate.
Definition: BundleTargetBody.cpp:1690
Isis::PvlObject
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:61
Isis::Latitude
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:51
Isis::BundleTargetBody::solvePoleDec
virtual bool solvePoleDec()
If the pole declination angle will be solved for with this target body.
Definition: BundleTargetBody.cpp:471
Isis::BundleTargetBody::radii
std::vector< Distance > radii()
Returns the radius values.
Definition: BundleTargetBody.cpp:906
Isis::BundleTargetBody::numberRadiusParameters
int numberRadiusParameters()
Returns the number of radius parameters being solved for.
Definition: BundleTargetBody.cpp:823
Isis::BundleTargetBody::poleDecCoefs
std::vector< Angle > poleDecCoefs()
Returns the coefficients of the declination polynomial.
Definition: BundleTargetBody.cpp:873
Isis::BundleTargetBody::None
@ None
Solve for none.
Definition: BundleTargetBody.h:65
Isis::BundleTargetBody::adjustedSigmas
LinearAlgebra::Vector & adjustedSigmas()
Returns the vector of adjusted parameters sigmas.
Definition: BundleTargetBody.cpp:782
Isis::BundleTargetBody::aprioriSigmas
LinearAlgebra::Vector & aprioriSigmas()
Returns the vector of apriori parameters sigmas.
Definition: BundleTargetBody.cpp:769
Isis::BundleTargetBody::stringToTargetRadiiOption
static TargetRadiiSolveMethod stringToTargetRadiiOption(QString option)
Converts a QString to a TargetRadiiSolveMethod.
Definition: BundleTargetBody.cpp:681
Isis::BundleTargetBody::m_adjustedSigmas
LinearAlgebra::Vector m_adjustedSigmas
Adjusted parameter sigmas.
Definition: BundleTargetBody.h:183
Isis::BundleTargetBody::m_meanRadius
Distance m_meanRadius
Adjusted mean radius value.
Definition: BundleTargetBody.h:169
Isis::BundleTargetBody::solvePM
virtual bool solvePM()
If the prime meridian angle will be solved for with this target body.
Definition: BundleTargetBody.cpp:507
Isis::BundleTargetBody::TargetSolveCodes
TargetSolveCodes
Enumeration that defines what BundleTargetBody can solve for.
Definition: BundleTargetBody.h:71
Isis::BundleTargetBody::targetRadiiOptionToString
static QString targetRadiiOptionToString(TargetRadiiSolveMethod targetRadiiSolveMethod)
Converts a TargetRadiiSolveMethod to a QString.
Definition: BundleTargetBody.cpp:709
Isis::BundleTargetBody::m_raPole
std::vector< Angle > m_raPole
pole ra quadratic polynomial coefficients
Definition: BundleTargetBody.h:171
Isis::BundleTargetBody::parameterSolution
LinearAlgebra::Vector & parameterSolution()
Returns the vector of parameters solution.
Definition: BundleTargetBody.cpp:756
Isis::BundleTargetBody::m_aprioriMeanRadius
Distance m_aprioriMeanRadius
Apriori Mean Radius.
Definition: BundleTargetBody.h:165
QSharedPointer< BundleTargetBody >
Isis::BundleTargetBody::All
@ All
Solve for all radii.
Definition: BundleTargetBody.h:67
Isis::BundleTargetBody::meanRadius
Distance meanRadius()
Returns the mean radius.
Definition: BundleTargetBody.cpp:923
Isis::BundleTargetBody::pmCoefs
std::vector< Angle > pmCoefs()
Returns the coefficients of the prime meridian polynomial.
Definition: BundleTargetBody.cpp:891
Isis::BundleTargetBody::solvePoleRA
virtual bool solvePoleRA()
If the pole right ascension angle will be solved for with this target body.
Definition: BundleTargetBody.cpp:435
Isis::BundleTargetBody::m_aprioriRadiusA
Distance m_aprioriRadiusA
Apriori Radius A.
Definition: BundleTargetBody.h:159
QStringList
Isis::BundleTargetBody::TargetRadiiSolveMethod
TargetRadiiSolveMethod
Enumeration that defines how to solve for target radii.
Definition: BundleTargetBody.h:64
Isis::BundleTargetBody::m_solution
LinearAlgebra::Vector m_solution
Parameter solution vector.
Definition: BundleTargetBody.h:181
Isis::Distance
Distance measurement, usually in meters.
Definition: Distance.h:34
Isis::Longitude
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:40
Isis::BundleTargetBody::parameterList
QStringList parameterList()
Returns a list of all the parameters being solved for as QStrings.
Definition: BundleTargetBody.cpp:1116
Isis::BundleTargetBody::parameterWeights
LinearAlgebra::Vector & parameterWeights()
Returns the vector of parameter weights.
Definition: BundleTargetBody.cpp:730
Isis::BundleTargetBody::readFromPvl
bool readFromPvl(PvlObject &tbPvlObject)
Set bundle solve parameters for target body from a pvl file.
Definition: BundleTargetBody.cpp:1180
Isis::BundleTargetBody::m_corrections
LinearAlgebra::Vector m_corrections
Cumulative parameter corrections.
Definition: BundleTargetBody.h:180
Isis::LinearAlgebra::Vector
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
Definition: LinearAlgebra.h:120
Isis::BundleTargetBody::vtpv
double vtpv()
Calculates and returns the weighted sum of the squares of the corrections.
Definition: BundleTargetBody.cpp:943
Isis::BundleTargetBody::m_radii
std::vector< Distance > m_radii
Adjusted triaxial radii values.
Definition: BundleTargetBody.h:168
Isis::BundleTargetBody::applyParameterCorrections
void applyParameterCorrections(LinearAlgebra::Vector corrections)
Applies a vector of corrections to the parameters for the target body.
Definition: BundleTargetBody.cpp:580
Isis::BundleTargetBody::m_pm
std::vector< Angle > m_pm
pole pm quadratic polynomial coefficients
Definition: BundleTargetBody.h:173
Isis::BundleTargetBody::solvePoleRAAcceleration
virtual bool solvePoleRAAcceleration()
If the pole right ascension acceleration will be solved for with this target body.
Definition: BundleTargetBody.cpp:459
Isis::BundleTargetBody::solvePMVelocity
virtual bool solvePMVelocity()
If the prime meridian velocity will be solved for with this target body.
Definition: BundleTargetBody.cpp:519
Isis::BundleTargetBody::m_sigmaMeanRadius
Distance m_sigmaMeanRadius
Apriori Mean Radius Sigma.
Definition: BundleTargetBody.h:166
Isis::BundleTargetBody::m_sigmaRadiusC
Distance m_sigmaRadiusC
Apriori Radius C Sigma.
Definition: BundleTargetBody.h:164
Isis::BundleTargetBody::m_parameterNamesList
QStringList m_parameterNamesList
List of all target parameters.
Definition: BundleTargetBody.h:177
Isis::BundleTargetBody::BundleTargetBody
BundleTargetBody()
Creates an empty BundleTargetBody object.
Definition: BundleTargetBody.cpp:26
Isis::BundleTargetBodyQsp
QSharedPointer< BundleTargetBody > BundleTargetBodyQsp
Definition for BundleTargetBodyQsp, a QSharedPointer to a BundleTargetBody.
Definition: BundleTargetBody.h:187
Isis::BundleTargetBody::m_solveTargetBodyRadiusMethod
TargetRadiiSolveMethod m_solveTargetBodyRadiusMethod
Which radii will be solved for.
Definition: BundleTargetBody.h:158
Isis::BundleTargetBody
This class is used to represent a target body in a bundle and how to solve for it.
Definition: BundleTargetBody.h:52
Isis::BundleTargetBody::solvePoleDecVelocity
virtual bool solvePoleDecVelocity()
If the pole declination velocity will be solved for with this target body.
Definition: BundleTargetBody.cpp:483
Isis::Angle
Defines an angle and provides unit conversions.
Definition: Angle.h:45
Isis::BundleTargetBody::operator=
BundleTargetBody & operator=(const BundleTargetBody &src)
Assignment operator.
Definition: BundleTargetBody.cpp:125
Isis::BundleTargetBody::numberParameters
virtual int numberParameters()
Returns the total number of parameters being solved for.
Definition: BundleTargetBody.cpp:837
Isis::BundleTargetBody::setSolveSettings
void setSolveSettings(std::set< int > targetParameterSolveCodes, Angle aprioriPoleRA, Angle sigmaPoleRA, Angle aprioriVelocityPoleRA, Angle sigmaVelocityPoleRA, Angle aprioriPoleDec, Angle sigmaPoleDec, Angle aprioriVelocityPoleDec, Angle sigmaVelocityPoleDec, Angle aprioriPM, Angle sigmaPM, Angle aprioriVelocityPM, Angle sigmaVelocityPM, TargetRadiiSolveMethod solveRadiiMethod, Distance aprioriRadiusA, Distance sigmaRadiusA, Distance aprioriRadiusB, Distance sigmaRadiusB, Distance aprioriRadiusC, Distance sigmaRadiusC, Distance aprioriMeanRadius, Distance sigmaMeanRadius)
Sets the solve settings for the target body.
Definition: BundleTargetBody.cpp:215
Isis::BundleTargetBody::solvePoleDecAcceleration
virtual bool solvePoleDecAcceleration()
If the pole declination acceleration will be solved for with this target body.
Definition: BundleTargetBody.cpp:495
Isis::BundleTargetBody::m_parameterSolveCodes
std::set< int > m_parameterSolveCodes
Target parameter solve codes.
Definition: BundleTargetBody.h:175
Isis::BundleTargetBody::solvePoleRAVelocity
virtual bool solvePoleRAVelocity()
If the pole right ascension velocity will be solved for with this target body.
Definition: BundleTargetBody.cpp:447
Isis::BundleTargetBody::m_sigmaRadiusA
Distance m_sigmaRadiusA
Apriori Radius A Sigma.
Definition: BundleTargetBody.h:160
Isis::BundleTargetBody::solveMeanRadius
virtual bool solveMeanRadius()
If the mean radius will be solved for with this target body.
Definition: BundleTargetBody.cpp:557
Isis::BundleTargetBody::~BundleTargetBody
virtual ~BundleTargetBody()
Destructor.
Definition: BundleTargetBody.cpp:116
Isis::Target
This class is used to create and store valid Isis targets.
Definition: Target.h:63
Isis::BundleTargetBody::m_aprioriSigmas
LinearAlgebra::Vector m_aprioriSigmas
A priori parameter sigmas.
Definition: BundleTargetBody.h:182
Isis::BundleTargetBody::Mean
@ Mean
Solve for mean radius.
Definition: BundleTargetBody.h:66
Isis::BundleTargetBody::m_sigmaRadiusB
Distance m_sigmaRadiusB
Apriori Radius B Sigma.
Definition: BundleTargetBody.h:162
Isis::BundleTargetBody::solvePMAcceleration
virtual bool solvePMAcceleration()
If the prime meridian acceleration will be solved for with this target body.
Definition: BundleTargetBody.cpp:531
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::BundleTargetBody::m_aprioriRadiusB
Distance m_aprioriRadiusB
Apriori Radius B.
Definition: BundleTargetBody.h:161
Isis::BundleTargetBody::m_aprioriRadiusC
Distance m_aprioriRadiusC
Apriori Radius C.
Definition: BundleTargetBody.h:163
Isis::BundleTargetBody::poleRaCoefs
std::vector< Angle > poleRaCoefs()
Returns the coefficients of the right ascension polynomial.
Definition: BundleTargetBody.cpp:855
Isis::BundleTargetBody::solveTriaxialRadii
virtual bool solveTriaxialRadii()
If the triaxial radii will be solved for with this target body.
Definition: BundleTargetBody.cpp:543

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:16:12