Isis 3 Programmer Reference
Isis::BundleSettings Class Reference

Container class for BundleAdjustment settings. More...

#include <BundleSettings.h>

Collaboration diagram for Isis::BundleSettings:
Collaboration graph

Classes

struct  MaximumLikelihoodModelTableRecord
 This struct is needed to write the m_maximumLikelihood variable as an HDF5 table. More...
 
class  XmlHandler
 This class is needed to read/write BundleSettings from/to an XML formateed file. More...
 

Public Types

enum  ConvergenceCriteria { Sigma0, ParameterCorrections }
 This enum defines the options for the bundle adjustment's convergence. More...
 
enum  MaximumLikelihoodModel {
  NoMaximumLikelihoodEstimator, Huber, ModifiedHuber, Welsch,
  Chen
}
 This enum defines the options for maximum likelihood estimation. More...
 

Public Member Functions

 BundleSettings ()
 Constructs a BundleSettings object. More...
 
 BundleSettings (const BundleSettings &other)
 This copy constructor sets this BundleSettings' member data to match that of the 'other' given BundleSettings. More...
 
 BundleSettings (Project *project, XmlStackedHandlerReader *xmlReader)
 Construct a BundleSettings object from member data read from an XML file. More...
 
 ~BundleSettings ()
 Destroys the BundleSettings object. More...
 
BundleSettingsoperator= (const BundleSettings &other)
 Assignment operator to allow proper copying of the 'other' BundleSettings object to this one. More...
 
void setValidateNetwork (bool validate)
 Sets the internal flag to indicate whether to validate the network before the bundle adjustment. More...
 
bool validateNetwork () const
 This method is used to determine whether to validate the network before the bundle adjustment. More...
 
void setSolveOptions (bool solveObservationMode=false, bool updateCubeLabel=false, bool errorPropagation=false, bool solveRadius=false, SurfacePoint::CoordinateType coordTypeBundle=SurfacePoint::Latitudinal, SurfacePoint::CoordinateType coordTypeReports=SurfacePoint::Latitudinal, double globalPointCoord1AprioriSigma=Isis::Null, double globalPointCoord2AprioriSigma=Isis::Null, double globalPointCoord3AprioriSigma=Isis::Null)
 Set the solve options for the bundle adjustment. More...
 
void setOutlierRejection (bool outlierRejection, double multiplier=1.0)
 Set the outlier rejection options for the bundle adjustment. More...
 
void setObservationSolveOptions (QList< BundleObservationSolveSettings > obsSolveSettingsList)
 Add the list of solve options for each observation. More...
 
void setCreateInverseMatrix (bool createMatrix)
 Turn the creation of the inverse correlation matrix file on or off. More...
 
SurfacePoint::CoordinateType controlPointCoordTypeReports () const
 Indicates the control point coordinate type for reports. More...
 
SurfacePoint::CoordinateType controlPointCoordTypeBundle () const
 Indicates the control point coordinate type for the actual bundle adjust. More...
 
bool createInverseMatrix () const
 Indicates if the settings will allow the inverse correlation matrix to be created. More...
 
bool solveObservationMode () const
 This method is used to determine whether this bundle adjustment will solve for observation mode. More...
 
bool solveRadius () const
 This method is used to determine whether this bundle adjustment will solve for radius. More...
 
bool updateCubeLabel () const
 This method is used to determine whether this bundle adjustment will update the cube labels. More...
 
bool errorPropagation () const
 This method is used to determine whether this bundle adjustment will perform error propagation. More...
 
bool outlierRejection () const
 This method is used to determine whether outlier rejection will be performed on this bundle adjustment. More...
 
double outlierRejectionMultiplier () const
 Retrieves the outlier rejection multiplier for the bundle adjustment. More...
 
double globalPointCoord1AprioriSigma () const
 Retrieves global a priori sigma for 1st coordinate of points for this bundle. More...
 
double globalPointCoord2AprioriSigma () const
 Retrieves the global a priori sigma for 2nd coordinate of points for this bundle. More...
 
double globalPointCoord3AprioriSigma () const
 Retrieves the global a priori sigma 3rd coordinate of points for this bundle. More...
 
int numberSolveSettings () const
 Retrieves the number of observation solve settings. More...
 
BundleObservationSolveSettings observationSolveSettings (QString instrumentId) const
 Retrieves solve settings for the observation corresponding to the given observation number. More...
 
BundleObservationSolveSettings observationSolveSettings (int n) const
 Retrieves solve settings for the observation corresponding to the given index. More...
 
QList< BundleObservationSolveSettingsobservationSolveSettings () const
 Retrieves solve settings for the observation corresponding to the given index. More...
 
void setConvergenceCriteria (ConvergenceCriteria criteria, double threshold, int maximumIterations)
 Set the convergence criteria options for the bundle adjustment. More...
 
ConvergenceCriteria convergenceCriteria () const
 Retrieves the convergence criteria to be used to solve the bundle adjustment. More...
 
double convergenceCriteriaThreshold () const
 Retrieves the convergence threshold to be used to solve the bundle adjustment. More...
 
int convergenceCriteriaMaximumIterations () const
 Retrieves the maximum number of iterations allowed to solve the bundle adjustment. More...
 
void addMaximumLikelihoodEstimatorModel (MaximumLikelihoodWFunctions::Model model, double cQuantile)
 Add a maximum likelihood estimator (MLE) model to the bundle adjustment. More...
 
QList< QPair< MaximumLikelihoodWFunctions::Model, double > > maximumLikelihoodEstimatorModels () const
 Retrieves the list of maximum likelihood estimator (MLE) models with their corresponding C-Quantiles. More...
 
void setBundleTargetBody (BundleTargetBodyQsp bundleTargetBody)
 Sets the target body for the bundle adjustment. More...
 
BundleTargetBodyQsp bundleTargetBody () const
 Retrieves a pointer to target body information for the bundle adjustment. More...
 
int numberTargetBodyParameters () const
 This method is used to determine whether the bundle adjustment will solve for target body pole position. More...
 
bool solveTargetBody () const
 This method is used to determine whether the bundle adjustment will solve for target body. More...
 
bool solvePoleRA () const
 This method is used to determine whether the bundle adjustment will solve for target body pole right ascension. More...
 
bool solvePoleRAVelocity () const
 This method is used to determine whether the bundle adjustment will solve for target body pole right ascension velocity. More...
 
bool solvePoleDec () const
 This method is used to determine whether the bundle adjustment will solve for target body pole declination. More...
 
bool solvePoleDecVelocity () const
 This method is used to determine whether the bundle adjustment will solve for target body pole declination velocity. More...
 
bool solvePM () const
 This method is used to determine whether the bundle adjustment will solve for target body prime meridian. More...
 
bool solvePMVelocity () const
 This method is used to determine whether the bundle adjustment will solve for target body prime meridian velocity. More...
 
bool solvePMAcceleration () const
 This method is used to determine whether the bundle adjustment will solve for target body prime meridian acceleration. More...
 
bool solveTriaxialRadii () const
 This method is used to determine whether the bundle adjustment will solve for target body triaxial radii. More...
 
bool solveMeanRadius () const
 This method is used to determine whether the bundle adjustment will solve for target body mean radius. More...
 
void setOutputFilePrefix (QString outputFilePrefix)
 Set the output file prefix for the bundle adjustment. More...
 
void setSCPVLFilename (QString SCParamFilename)
 
QString outputFilePrefix () const
 Retrieve the output file prefix. More...
 
void setCubeList (QString fileName)
 BundleSettings::setCubeList. More...
 
QString cubeList () const
 BundleSettings::cubeList. More...
 
QString SCPVLFilename () const
 
void save (QXmlStreamWriter &stream, const Project *project) const
 This method is used to write a BundleSettings object in an XML format. More...
 

Static Public Member Functions

static ConvergenceCriteria stringToConvergenceCriteria (QString criteria)
 Converts the given string value to a BundleSettings::ConvergenceCriteria enumeration. More...
 
static QString convergenceCriteriaToString (ConvergenceCriteria criteria)
 Converts the given BundleSettings::ConvergenceCriteria enumeration to a string. More...
 

Private Member Functions

void init ()
 Set Default vales for a BundleSettings object. More...
 

Private Attributes

bool m_validateNetwork
 Indicates whether the network should be validated. More...
 
QString m_cubeList
 
bool m_solveObservationMode
 Indicates whether to solve for observation mode. More...
 
bool m_solveRadius
 Indicates whether to solve for point radii. More...
 
bool m_updateCubeLabel
 Indicates whether to update cubes. More...
 
bool m_errorPropagation
 Indicates whether to perform error propagation. More...
 
bool m_createInverseMatrix
 Indicates whether to create the inverse matrix file. More...
 
bool m_outlierRejection
 Indicates whether to perform automatic outlier detection/rejection. More...
 
double m_outlierRejectionMultiplier
 The multiplier value for outlier rejection. More...
 
double m_globalPointCoord1AprioriSigma
 The global a priori sigma for latitude or X. More...
 
double m_globalPointCoord2AprioriSigma
 The global a priori sigma for longitude or Y. More...
 
double m_globalPointCoord3AprioriSigma
 The global a priori sigma for radius or Z. More...
 
QList< BundleObservationSolveSettingsm_observationSolveSettings
 
ConvergenceCriteria m_convergenceCriteria
 Enumeration used to indicate what criteria to use to determine bundle adjustment convergence. More...
 
double m_convergenceCriteriaThreshold
 Tolerance value corresponding to the selected convergence criteria. More...
 
int m_convergenceCriteriaMaximumIterations
 Maximum number of iterations before quitting the bundle adjustment if it has not yet converged to the given threshold. More...
 
QList< QPair< MaximumLikelihoodWFunctions::Model, double > > m_maximumLikelihood
 Model and C-Quantile for each of the three maximum likelihood estimations. More...
 
bool m_solveTargetBody
 Indicates whether to solve for target body. More...
 
BundleTargetBodyQsp m_bundleTargetBody
 A pointer to the target body settings and information. More...
 
SurfacePoint::CoordinateType m_cpCoordTypeReports
 Indicates the coordinate type for outputting control points in reports. More...
 
SurfacePoint::CoordinateType m_cpCoordTypeBundle
 Indicates the coordinate type used for control points in the bundle adjustment. More...
 
QString m_outputFilePrefix
 The prefix for all output files. More...
 

Detailed Description

Container class for BundleAdjustment settings.

This class contains all of the settings needed to run a bundle adjustment. A BundleSettings object is passed into the BundleAdjustment constructor.

Author
2014-05-14 Jeannie Backer
History:
2014-05-14 Jeannie Backer - Original version.
History:
2014-07-16 Jeannie Backer - Removed redundant mutators. Moved implementation for numberSolveSettings() and observationSolveSettings() to cpp file. Removed static methods to convert MaximumLikelihoodWFunctions::Model enum to QString since these methods now exist in MaximumLikelihoodWFunctions class. Changed pvlGroup() method to pvlObject(). Added unitTest.
History:
2014-07-23 Jeannie Backer - Added QDataStream >> and << operators and read/write methods. Created unitTest.
History:
2014-07-25 Jeannie Backer - Improved unitTest coverage to 100% scope/line/function.
History:
2014-11-17 Jeannie Backer - Added xml read/write capabilities. XmlHandler constructor/destructor is not shown as covered by unitTest. Current test code coverage is (scope 98.79%, line 98.698%, function 96.0%).
History:
2015-09-03 Jeannie Backer - Changed a priori sigma defaults from -1.0 to Isis::Null.
History:
2015-09-03 Jeannie Backer - Added preliminary hdf5 read/write capabilities.
History:
2015-10-14 Jeffrey Covington - Declared BundleSettingsQsp as a Qt metatype for use with QVariant.
History:
2016-06-30 Jeannie Backer - Changed method name from "getBundleTargetBody" to "bundleTargetBody" to comply with ISIS coding standards. Added documentation. Updated test. References #3976. Fixes #.
History:
2016-08-15 Jesse Mapel - Added methods to check if solving for triaxial radii, mean radius, or Prime Meridian Acceleration. Fixes #4159.
History:
2016-08-18 Jesse Mapel - Changed to no longer inherit from QObject. Fixes #4192.
History:
2016-08-18 Jeannie Backer - Removed the SolveMethod enum and all references to it. This option was deprecated because the Sparse option is faster than the other options (OldSparse and SpecialK) and gets identical results. Fixes #4162.
History:
2016-08-23 Jesse Mapel - Modified to no longer determine which output files BundleAdjust and BundleSolutionInfo create. Fixes #4279.
History:
2016-09-02 Jesse Mapel - Added m_SCPVLFilename member for storing multi-sensor settings from jigsaw. Fixes #4316.
History:
2016-10-05 Ian Humphrey - Added m_createInverseMatrix, createInverseMatrix(), and setCreateInverseMatrix() so that bundle settings stores whether or not the inverse correlation matrix file (inverseMatrix.dat) will be generated during error propagation in the adjustment. Fixes #4315.
History:
2016-10-13 Ian Humphrey - Updated documentation and variable names for observationSolveSettings(), as BundleObservationSolveSettings are acquired by an associated observation number. References #4293.
History:
2016-10-17 Jesse Mapel - Removed m_SCPVLFilename parameter in accordance with USEPVL being removed from jigsaw. References #4316.
History:
2017-04-24 Ian Humphrey - Removed pvlObject(). Fixes #4797.
History:
2018-03-20 Ken Edmundson 1) Temporarily set default for m_createInverseMatrix to false. This is for creating and displaying the correlation matrix, which is currently not working. 2) commented out hdf5 header includes in cpp
History:
2018-06-28 Christopher Combs - Added observationSolveSettings() method to retrieve m_observationSolveSettings. Fixes #497.
History:
2017-06-25 Debbie Cook - Added m_cpCoordTypeReports and m_cpCoordTypeBundle. The 2nd type determines how control point coordinates are entered into the the matrix and interpreted throughout the adjustment. The 1st type determines the coordinate type of control points in reports. Added the new coordinate type as an argument to SetSolveOptions. Changed GlobalAprioriSigmas names to more generic names: Latitude to PointCoord1, Longitude to PointCoord2, and Radius to PointCoord3 so they can be used for either lat/lon/radius or x/y/z. Also added accessor methods, CoordTypeReports() & CoordTypeBundle() for the new coordinate type members. References #4649 and #501.
History:
2019-05-17 Tyler Wilson - Added QString m_cubeList member function as well as get/set member functions. References #3267.
Todo:
Determine which XmlStackedHandlerReader constructor is preferred
Todo:
Determine which XmlStackedHandler needs a Project pointer (see constructors)
Todo:
Determine whether QList<BundleObservationSolveSettings> m_observationSolveSettings should be a list of pointers, or a pointer to a list, or a pointer to a list of pointers, etc...
Todo:
Determine whether QList< QPair< MaximumLikelihoodWFunctions::Model, double > > m_maximumLikelihood should be a list of pointers, or a pointer to a list, or a pointer to a list of pointers, etc...
Todo:
TargetBody information is not being serialized. A determination needs to be made as to where it will be stored.

Definition at line 125 of file BundleSettings.h.

Member Enumeration Documentation

◆ ConvergenceCriteria

This enum defines the options for the bundle adjustment's convergence.

Enumerator
Sigma0 

The value of sigma0 will be used to determine that the bundle adjustment has converged.

ParameterCorrections 

All parameter corrections will be used to determine that the bundle adjustment has converged.

Definition at line 197 of file BundleSettings.h.

◆ MaximumLikelihoodModel

This enum defines the options for maximum likelihood estimation.

Enumerator
NoMaximumLikelihoodEstimator 

Do not use a maximum likelihood model.

Huber 

Use a Huber maximum likelihood model.

This model approximates the L2 norm near zero and the L1 norm thereafter. This model has one continuous derivative.

ModifiedHuber 

Use a modified Huber maximum likelihood model.

This model approximates the L2 norm near zero and the L1 norm thereafter. This model has two continuous derivative.

Welsch 

Use a Welsch maximum likelihood model.

This model approximates the L2 norm near zero, but then decays exponentially to zero.

Chen 

Use a Chen maximum likelihood model.

This is a highly aggressive model that intentionally removes the largest few percent of residuals.????

Definition at line 230 of file BundleSettings.h.

Constructor & Destructor Documentation

◆ BundleSettings() [1/3]

Isis::BundleSettings::BundleSettings ( )

Constructs a BundleSettings object.

Default values are set for all member variables. By default, BundleSettings allows creation of the inverse correlation matrix file.

See also
createInverseMatrix()
setCreateInverseMatrix()

Definition at line 39 of file BundleSettings.cpp.

References init().

◆ BundleSettings() [2/3]

Isis::BundleSettings::BundleSettings ( const BundleSettings other)

This copy constructor sets this BundleSettings' member data to match that of the 'other' given BundleSettings.

Parameters
otherThe BundleSettings object to be copied.

Definition at line 124 of file BundleSettings.cpp.

◆ BundleSettings() [3/3]

Isis::BundleSettings::BundleSettings ( Project project,
XmlStackedHandlerReader xmlReader 
)

Construct a BundleSettings object from member data read from an XML file.

FileName xmlFile("bundleSettingsFileName.xml");
QString xmlPath = xmlFile.expanded();
QFile file(xmlPath);
file.open(QFile::ReadOnly);
XmlStackedHandlerReader reader;
BundleSettings settings(project, reader);
Parameters
projectA pointer to the project where the Settings will be saved.
xmlReaderThe Content handler to parse the BundleSettings XML

Definition at line 110 of file BundleSettings.cpp.

References init(), and Isis::XmlStackedHandlerReader::pushContentHandler().

◆ ~BundleSettings()

Isis::BundleSettings::~BundleSettings ( )

Destroys the BundleSettings object.

Definition at line 153 of file BundleSettings.cpp.

Member Function Documentation

◆ addMaximumLikelihoodEstimatorModel()

void Isis::BundleSettings::addMaximumLikelihoodEstimatorModel ( MaximumLikelihoodWFunctions::Model  model,
double  maxModelCQuantile 
)

Add a maximum likelihood estimator (MLE) model to the bundle adjustment.

Parameters
modelThe enumeration for the model to be used.
maxModelCQuantileThe C-Quantile of the residual to be used to compute the tweaking constant.
Exceptions
Isis::Exception::Programmer"For bundle adjustments with multiple maximum likelihood estimators, the first model must be of type HUBER or HUBER_MODIFIED."

Definition at line 727 of file BundleSettings.cpp.

References Isis::MaximumLikelihoodWFunctions::HuberModified, m_maximumLikelihood, and Isis::IException::Programmer.

◆ bundleTargetBody()

BundleTargetBodyQsp Isis::BundleSettings::bundleTargetBody ( ) const

Retrieves a pointer to target body information for the bundle adjustment.

Returns
BundleTargetBodyQsp A pointer to the BundleTargetBody object for the bundle adjustment to be run.

Definition at line 779 of file BundleSettings.cpp.

References m_bundleTargetBody.

Referenced by setBundleTargetBody().

◆ controlPointCoordTypeBundle()

SurfacePoint::CoordinateType Isis::BundleSettings::controlPointCoordTypeBundle ( ) const

Indicates the control point coordinate type for the actual bundle adjust.

This method returns the control point coordinate setting for performing the bundle adjust.

Returns
SurfacePoint::CoordinateType Returns the control point coordinate type setting
See also
BundleAdjust::errorPropagation()

Definition at line 375 of file BundleSettings.cpp.

References m_cpCoordTypeBundle.

Referenced by save().

◆ controlPointCoordTypeReports()

SurfacePoint::CoordinateType Isis::BundleSettings::controlPointCoordTypeReports ( ) const

Indicates the control point coordinate type for reports.

This method returns the control point coordinate setting for reporting control points.

Returns
SurfacePoint::CoordinateType Returns the control point coordinate type setting

Definition at line 361 of file BundleSettings.cpp.

References m_cpCoordTypeReports.

Referenced by save().

◆ convergenceCriteria()

BundleSettings::ConvergenceCriteria Isis::BundleSettings::convergenceCriteria ( ) const

Retrieves the convergence criteria to be used to solve the bundle adjustment.

Returns
ConvergenceCriteria The enumeration of the convergence criteria.

Definition at line 660 of file BundleSettings.cpp.

References m_convergenceCriteria.

Referenced by save().

◆ convergenceCriteriaMaximumIterations()

int Isis::BundleSettings::convergenceCriteriaMaximumIterations ( ) const

Retrieves the maximum number of iterations allowed to solve the bundle adjustment.

Parameters
maximumIterationsThe maximum number of iterations allowed before the bundle adjustment determines that the data is not converging.

Definition at line 684 of file BundleSettings.cpp.

References m_convergenceCriteriaMaximumIterations.

Referenced by save().

◆ convergenceCriteriaThreshold()

double Isis::BundleSettings::convergenceCriteriaThreshold ( ) const

Retrieves the convergence threshold to be used to solve the bundle adjustment.

Returns
double The threshold that determines convergence.

Definition at line 671 of file BundleSettings.cpp.

References m_convergenceCriteriaThreshold.

Referenced by save().

◆ convergenceCriteriaToString()

QString Isis::BundleSettings::convergenceCriteriaToString ( BundleSettings::ConvergenceCriteria  criteria)
static

Converts the given BundleSettings::ConvergenceCriteria enumeration to a string.

This method is used to print the type of convergence criteria used in the bundle adjustment.

Parameters
criteriaThe ConvergenceCriteria enumeration to be converted.
Returns
QString The name associated with the given convergence criteria.
Exceptions
Isis::Exception::Programmer"Unknown bundle convergence criteria enum."

Definition at line 625 of file BundleSettings.cpp.

References ParameterCorrections, Isis::IException::Programmer, Sigma0, and Isis::toString().

Referenced by save().

◆ createInverseMatrix()

bool Isis::BundleSettings::createInverseMatrix ( ) const

Indicates if the settings will allow the inverse correlation matrix to be created.

This method is used to determine if the inverse correlation matrix file will be created when creating error propagation information in the bundle adjust. If error propagation is not turned on, then the inverse correlation matrix file will not be created.

Returns
bool Returns whether or now the inverse correlation matrix is allowed to be created.
See also
BundleAdjust::errorPropagation()

Definition at line 391 of file BundleSettings.cpp.

References m_createInverseMatrix, and m_errorPropagation.

Referenced by save().

◆ cubeList()

QString Isis::BundleSettings::cubeList ( ) const

BundleSettings::cubeList.

Returns
QString The name/path of the cube list.

Definition at line 244 of file BundleSettings.cpp.

Referenced by setCubeList().

◆ errorPropagation()

bool Isis::BundleSettings::errorPropagation ( ) const

This method is used to determine whether this bundle adjustment will perform error propagation.

Returns
bool Indicates whether to perform error propagation.

Definition at line 448 of file BundleSettings.cpp.

References m_errorPropagation.

Referenced by save(), and setSolveOptions().

◆ globalPointCoord1AprioriSigma()

double Isis::BundleSettings::globalPointCoord1AprioriSigma ( ) const

Retrieves global a priori sigma for 1st coordinate of points for this bundle.

Returns
double The global a priori sigma for point coordinate 1.

Definition at line 486 of file BundleSettings.cpp.

References m_globalPointCoord1AprioriSigma.

Referenced by save(), and setSolveOptions().

◆ globalPointCoord2AprioriSigma()

double Isis::BundleSettings::globalPointCoord2AprioriSigma ( ) const

Retrieves the global a priori sigma for 2nd coordinate of points for this bundle.

Returns
double The global a priori sigma for point coordinate 2.

Definition at line 496 of file BundleSettings.cpp.

References m_globalPointCoord2AprioriSigma.

Referenced by save(), and setSolveOptions().

◆ globalPointCoord3AprioriSigma()

double Isis::BundleSettings::globalPointCoord3AprioriSigma ( ) const

Retrieves the global a priori sigma 3rd coordinate of points for this bundle.

Returns
double The global a priori sigma for point coordinate 3.

Definition at line 506 of file BundleSettings.cpp.

References m_globalPointCoord3AprioriSigma.

Referenced by save(), and setSolveOptions().

◆ init()

◆ maximumLikelihoodEstimatorModels()

QList< QPair< MaximumLikelihoodWFunctions::Model, double > > Isis::BundleSettings::maximumLikelihoodEstimatorModels ( ) const

Retrieves the list of maximum likelihood estimator (MLE) models with their corresponding C-Quantiles.

Returns
QList< QPair< MaximumLikelihoodWFunctions::Model, double > > The list of tuples of the form (model, quantile) to be used for the bundle adjustment.

Definition at line 749 of file BundleSettings.cpp.

References m_maximumLikelihood.

◆ numberSolveSettings()

int Isis::BundleSettings::numberSolveSettings ( ) const

Retrieves the number of observation solve settings.

Returns
int The number of solve settings object for this run of the bundle adjustment.

Definition at line 517 of file BundleSettings.cpp.

Referenced by observationSolveSettings().

◆ numberTargetBodyParameters()

int Isis::BundleSettings::numberTargetBodyParameters ( ) const

This method is used to determine whether the bundle adjustment will solve for target body pole position.

Returns
bool Indicates whether to solve for target pole position. Retrieves the number of target body parameters. If the BundleTargetBody associated with this bundle adjustment is NULL, this method returns 0.
int The number of target body parameters.

Definition at line 801 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ observationSolveSettings() [1/3]

QList< BundleObservationSolveSettings > Isis::BundleSettings::observationSolveSettings ( ) const

Retrieves solve settings for the observation corresponding to the given index.

Returns
QList<BundleObservationSolveSettings> The QList of BundleObservationSolveSettings objects

Definition at line 576 of file BundleSettings.cpp.

◆ observationSolveSettings() [2/3]

BundleObservationSolveSettings Isis::BundleSettings::observationSolveSettings ( int  n) const

Retrieves solve settings for the observation corresponding to the given index.

Parameters
nThe index of the BundleObservationSolveSettings object to be accessed.
Returns
BundleObservationSolveSettings The observation settings object corresponding to the given index.
Exceptions
IException::Unknown"Unable to find BundleObservationSolveSettings with given index"

Definition at line 559 of file BundleSettings.cpp.

References numberSolveSettings(), Isis::toString(), and Isis::IException::Unknown.

◆ observationSolveSettings() [3/3]

BundleObservationSolveSettings Isis::BundleSettings::observationSolveSettings ( QString  observationNumber) const

Retrieves solve settings for the observation corresponding to the given observation number.

If no corresponding settings object exists, return a new solve settings with no related observation numbers.

Parameters
observationNumberThe observation number associated with the BundleObservationSolveSettings object to be accessed.
Returns
BundleObservationSolveSettings The observation settings object that contains the observation number passed.

Definition at line 534 of file BundleSettings.cpp.

References numberSolveSettings().

◆ operator=()

BundleSettings & Isis::BundleSettings::operator= ( const BundleSettings other)

◆ outlierRejection()

bool Isis::BundleSettings::outlierRejection ( ) const

This method is used to determine whether outlier rejection will be performed on this bundle adjustment.

Returns
bool Indicates whether to perform automatic outlier rejection during the bundle adjustment.

Definition at line 403 of file BundleSettings.cpp.

References m_outlierRejection.

Referenced by save(), and setOutlierRejection().

◆ outlierRejectionMultiplier()

double Isis::BundleSettings::outlierRejectionMultiplier ( ) const

Retrieves the outlier rejection multiplier for the bundle adjustment.

Returns
double The outlier rejection multiplier.

Definition at line 476 of file BundleSettings.cpp.

References m_outlierRejectionMultiplier.

Referenced by save().

◆ outputFilePrefix()

QString Isis::BundleSettings::outputFilePrefix ( ) const

Retrieve the output file prefix.

This string will be appended to all of the output files created by the bundle adjustment.

Returns
QString A string containing a prefix and/or directory path to be appended to all output files.

Definition at line 1036 of file BundleSettings.cpp.

References m_outputFilePrefix.

Referenced by save(), and setOutputFilePrefix().

◆ save()

void Isis::BundleSettings::save ( QXmlStreamWriter &  stream,
const Project project 
) const

◆ setBundleTargetBody()

void Isis::BundleSettings::setBundleTargetBody ( BundleTargetBodyQsp  bundleTargetBody)

Sets the target body for the bundle adjustment.

Parameters
bundleTargetBodyA pointer to the BundleTargetBody object for the bundle adjustment to be run.

Definition at line 768 of file BundleSettings.cpp.

References bundleTargetBody(), and m_bundleTargetBody.

◆ setConvergenceCriteria()

void Isis::BundleSettings::setConvergenceCriteria ( BundleSettings::ConvergenceCriteria  criteria,
double  threshold,
int  maximumIterations 
)

Set the convergence criteria options for the bundle adjustment.

Parameters
criteriaAn enumeration for the convergence criteria to be used for this bundle adjustment.
thresholdThe convergence threshold for this bundle adjustment.
maximumIterationsThe maximum number of iterations allowed before the bundle adjustment determines that the data is not converging.

Definition at line 645 of file BundleSettings.cpp.

References m_convergenceCriteria, m_convergenceCriteriaMaximumIterations, and m_convergenceCriteriaThreshold.

◆ setCreateInverseMatrix()

void Isis::BundleSettings::setCreateInverseMatrix ( bool  createMatrixFile)

Turn the creation of the inverse correlation matrix file on or off.

Note that the inverse correlation matrix is created in BundleAdjust, and will only be created if error propagation is turned on. By default, BundleSettings allows the inverse matrix to be created. This requires stand-alone applications (e.g. jigsaw) to call this method to turn of the correlation matrix creation.

Parameters
createMatrixFileBoolean indicating whether or not to allow the inverse matrix file to be created.
See also
BundleAdjust::errorPropagation()

Definition at line 466 of file BundleSettings.cpp.

References m_createInverseMatrix.

◆ setCubeList()

void Isis::BundleSettings::setCubeList ( QString  cubeList)

BundleSettings::setCubeList.

Parameters
cubeList

Definition at line 234 of file BundleSettings.cpp.

References cubeList().

◆ setObservationSolveOptions()

void Isis::BundleSettings::setObservationSolveOptions ( QList< BundleObservationSolveSettings obsSolveSettingsList)

Add the list of solve options for each observation.

Parameters
observationSolveSettingsA list of BundleObservationSolveSettings objects to indicate the settings for each observation of the bundle adjustment.

Definition at line 347 of file BundleSettings.cpp.

◆ setOutlierRejection()

void Isis::BundleSettings::setOutlierRejection ( bool  outlierRejection,
double  multiplier = 1.0 
)

Set the outlier rejection options for the bundle adjustment.

Parameters
outlierRejectionIndicates whether to perform automatic outlier rejection during the bundle adjustment.
mutliplierThe outlier rejection multiplier.

Definition at line 329 of file BundleSettings.cpp.

References m_outlierRejection, m_outlierRejectionMultiplier, and outlierRejection().

◆ setOutputFilePrefix()

void Isis::BundleSettings::setOutputFilePrefix ( QString  outputFilePrefix)

Set the output file prefix for the bundle adjustment.

Parameters
outputFilePrefixA string containing a prefix and/or directory path

Definition at line 1022 of file BundleSettings.cpp.

References m_outputFilePrefix, and outputFilePrefix().

◆ setSolveOptions()

void Isis::BundleSettings::setSolveOptions ( bool  solveObservationMode = false,
bool  updateCubeLabel = false,
bool  errorPropagation = false,
bool  solveRadius = false,
SurfacePoint::CoordinateType  coordTypeBundle = SurfacePoint::Latitudinal,
SurfacePoint::CoordinateType  coordTypeReports = SurfacePoint::Latitudinal,
double  globalPointCoord1AprioriSigma = Isis::Null,
double  globalPointCoord2AprioriSigma = Isis::Null,
double  globalPointCoord3AprioriSigma = Isis::Null 
)

Set the solve options for the bundle adjustment.

Parameters
solveObservationModeA boolean value indicating whether to solve for observation mode.
updateCubeLabelA boolean value indicating whether to update the cube labels after the bundle adjustment is completed.
errorPropagationA boolean value indicating whether to use the cholmod library's error propagation.
solveRadiusA boolean value indicating whether to solve for radius.
coordTypeThe type of coordinates used for control points
globalPointCoord1AprioriSigmaThe global a priori sigma for latitude.
globalPointCoord2AprioriSigmaThe global a priori sigma for longitude.
globalPointCoord3AprioriSigmaThe global a priori sigma for radius.

Definition at line 269 of file BundleSettings.cpp.

References errorPropagation(), globalPointCoord1AprioriSigma(), globalPointCoord2AprioriSigma(), globalPointCoord3AprioriSigma(), Isis::SurfacePoint::Latitudinal, m_cpCoordTypeBundle, m_cpCoordTypeReports, m_errorPropagation, m_globalPointCoord1AprioriSigma, m_globalPointCoord2AprioriSigma, m_globalPointCoord3AprioriSigma, m_solveObservationMode, m_solveRadius, m_updateCubeLabel, Isis::Null, Isis::SurfacePoint::Rectangular, solveObservationMode(), solveRadius(), and updateCubeLabel().

◆ setValidateNetwork()

void Isis::BundleSettings::setValidateNetwork ( bool  validate)

Sets the internal flag to indicate whether to validate the network before the bundle adjustment.

See also
BundleAdjust::validateNetwork()
Parameters
validateIndicates whether the network should be validated by BundleAdjust.

Definition at line 208 of file BundleSettings.cpp.

References m_validateNetwork, and Isis::validate().

◆ solveMeanRadius()

bool Isis::BundleSettings::solveMeanRadius ( ) const

This method is used to determine whether the bundle adjustment will solve for target body mean radius.

See also
BundleTargetBody::solveMeanRadius()
Returns
bool Indicates whether to solve for target mean radius.

Definition at line 961 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ solveObservationMode()

bool Isis::BundleSettings::solveObservationMode ( ) const

This method is used to determine whether this bundle adjustment will solve for observation mode.

Returns
bool Indicates whether to solve for observation mode.

Definition at line 414 of file BundleSettings.cpp.

References m_solveObservationMode.

Referenced by save(), and setSolveOptions().

◆ solvePM()

bool Isis::BundleSettings::solvePM ( ) const

This method is used to determine whether the bundle adjustment will solve for target body prime meridian.

See also
BundleTargetBody::solvePM()
Returns
bool Indicates whether to solve for target PM.

Definition at line 897 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ solvePMAcceleration()

bool Isis::BundleSettings::solvePMAcceleration ( ) const

This method is used to determine whether the bundle adjustment will solve for target body prime meridian acceleration.

See also
BundleTargetBody::solvePMAcceleration()
Returns
bool Indicates whether to solve for target PM acceleration.

Definition at line 929 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ solvePMVelocity()

bool Isis::BundleSettings::solvePMVelocity ( ) const

This method is used to determine whether the bundle adjustment will solve for target body prime meridian velocity.

See also
BundleTargetBody::solvePMVelocity()
Returns
bool Indicates whether to solve for target PM velocity.

Definition at line 913 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ solvePoleDec()

bool Isis::BundleSettings::solvePoleDec ( ) const

This method is used to determine whether the bundle adjustment will solve for target body pole declination.

See also
BundleTargetBody::solvePoleDeclination()
Returns
bool Indicates whether to solve for target pole declination.

Definition at line 865 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ solvePoleDecVelocity()

bool Isis::BundleSettings::solvePoleDecVelocity ( ) const

This method is used to determine whether the bundle adjustment will solve for target body pole declination velocity.

See also
BundleTargetBody::solvePoleDeclinationVelocity()
Returns
bool Indicates whether to solve for target pole declination velocity.

Definition at line 881 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ solvePoleRA()

bool Isis::BundleSettings::solvePoleRA ( ) const

This method is used to determine whether the bundle adjustment will solve for target body pole right ascension.

See also
BundleTargetBody::solvePoleRA()
Returns
bool Indicates whether to solve for target pole RA.

Definition at line 833 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ solvePoleRAVelocity()

bool Isis::BundleSettings::solvePoleRAVelocity ( ) const

This method is used to determine whether the bundle adjustment will solve for target body pole right ascension velocity.

See also
BundleTargetBody::solvePoleRAVelocity()
Returns
bool Indicates whether to solve for target pole RA velocity.

Definition at line 849 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ solveRadius()

bool Isis::BundleSettings::solveRadius ( ) const

This method is used to determine whether this bundle adjustment will solve for radius.

Returns
bool Indicates whether to solve for radius.

Definition at line 425 of file BundleSettings.cpp.

References m_solveRadius.

Referenced by save(), and setSolveOptions().

◆ solveTargetBody()

bool Isis::BundleSettings::solveTargetBody ( ) const

This method is used to determine whether the bundle adjustment will solve for target body.

Returns
bool Indicates whether to solve for target body.

Definition at line 815 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ solveTriaxialRadii()

bool Isis::BundleSettings::solveTriaxialRadii ( ) const

This method is used to determine whether the bundle adjustment will solve for target body triaxial radii.

See also
BundleTargetBody::solveTriaxialRadii()
Returns
bool Indicates whether to solve for target triaxial radii.

Definition at line 945 of file BundleSettings.cpp.

References m_bundleTargetBody.

◆ stringToConvergenceCriteria()

BundleSettings::ConvergenceCriteria Isis::BundleSettings::stringToConvergenceCriteria ( QString  criteria)
static

Converts the given string value to a BundleSettings::ConvergenceCriteria enumeration.

Currently accepted inputs are listed below. This method is case insensitive.

  • Sigma0
  • ParameterCorrections
Parameters
criteriaConvergence criteria name to be converted.
Returns
ConvergenceCriteria The enumeration corresponding to the given name.
Exceptions
Isis::Exception::Programmer"Unknown bundle convergence criteria."

Definition at line 601 of file BundleSettings.cpp.

References ParameterCorrections, Isis::IException::Programmer, and Sigma0.

Referenced by Isis::BundleSettings::XmlHandler::startElement().

◆ updateCubeLabel()

bool Isis::BundleSettings::updateCubeLabel ( ) const

This method is used to determine whether this bundle adjustment will update the cube labels.

Returns
bool Indicates whether to update the cube labels after the bundle adjustment is completed.

Definition at line 437 of file BundleSettings.cpp.

References m_updateCubeLabel.

Referenced by save(), and setSolveOptions().

◆ validateNetwork()

bool Isis::BundleSettings::validateNetwork ( ) const

This method is used to determine whether to validate the network before the bundle adjustment.

See also
BundleAdjust::validateNetwork()
Returns
bool Indicates whether the network should be validated by BundleAdjust.

Definition at line 223 of file BundleSettings.cpp.

References m_validateNetwork.

Referenced by save().

Member Data Documentation

◆ m_bundleTargetBody

◆ m_convergenceCriteria

ConvergenceCriteria Isis::BundleSettings::m_convergenceCriteria
private

Enumeration used to indicate what criteria to use to determine bundle adjustment convergence.

Definition at line 367 of file BundleSettings.h.

Referenced by convergenceCriteria(), init(), operator=(), and setConvergenceCriteria().

◆ m_convergenceCriteriaMaximumIterations

int Isis::BundleSettings::m_convergenceCriteriaMaximumIterations
private

Maximum number of iterations before quitting the bundle adjustment if it has not yet converged to the given threshold.

Definition at line 372 of file BundleSettings.h.

Referenced by convergenceCriteriaMaximumIterations(), init(), operator=(), and setConvergenceCriteria().

◆ m_convergenceCriteriaThreshold

double Isis::BundleSettings::m_convergenceCriteriaThreshold
private

Tolerance value corresponding to the selected convergence criteria.

Definition at line 370 of file BundleSettings.h.

Referenced by convergenceCriteriaThreshold(), init(), operator=(), and setConvergenceCriteria().

◆ m_cpCoordTypeBundle

SurfacePoint::CoordinateType Isis::BundleSettings::m_cpCoordTypeBundle
private

Indicates the coordinate type used for control points in the bundle adjustment.

Definition at line 395 of file BundleSettings.h.

Referenced by controlPointCoordTypeBundle(), init(), operator=(), and setSolveOptions().

◆ m_cpCoordTypeReports

SurfacePoint::CoordinateType Isis::BundleSettings::m_cpCoordTypeReports
private

Indicates the coordinate type for outputting control points in reports.


Definition at line 393 of file BundleSettings.h.

Referenced by controlPointCoordTypeReports(), init(), operator=(), and setSolveOptions().

◆ m_createInverseMatrix

bool Isis::BundleSettings::m_createInverseMatrix
private

Indicates whether to create the inverse matrix file.

Definition at line 352 of file BundleSettings.h.

Referenced by createInverseMatrix(), init(), operator=(), and setCreateInverseMatrix().

◆ m_errorPropagation

bool Isis::BundleSettings::m_errorPropagation
private

Indicates whether to perform error propagation.

Definition at line 351 of file BundleSettings.h.

Referenced by createInverseMatrix(), errorPropagation(), init(), operator=(), and setSolveOptions().

◆ m_globalPointCoord1AprioriSigma

double Isis::BundleSettings::m_globalPointCoord1AprioriSigma
private

The global a priori sigma for latitude or X.

Definition at line 359 of file BundleSettings.h.

Referenced by globalPointCoord1AprioriSigma(), init(), operator=(), and setSolveOptions().

◆ m_globalPointCoord2AprioriSigma

double Isis::BundleSettings::m_globalPointCoord2AprioriSigma
private

The global a priori sigma for longitude or Y.

Definition at line 360 of file BundleSettings.h.

Referenced by globalPointCoord2AprioriSigma(), init(), operator=(), and setSolveOptions().

◆ m_globalPointCoord3AprioriSigma

double Isis::BundleSettings::m_globalPointCoord3AprioriSigma
private

The global a priori sigma for radius or Z.

Definition at line 361 of file BundleSettings.h.

Referenced by globalPointCoord3AprioriSigma(), init(), operator=(), and setSolveOptions().

◆ m_maximumLikelihood

QList< QPair< MaximumLikelihoodWFunctions::Model, double > > Isis::BundleSettings::m_maximumLikelihood
private

Model and C-Quantile for each of the three maximum likelihood estimations.

The C-Quantile is the quantile of the residual used to compute the tweaking constant. Note that this is an ordered list and that the Welsch and Chen models can not be used for the first model.

Definition at line 384 of file BundleSettings.h.

Referenced by addMaximumLikelihoodEstimatorModel(), init(), maximumLikelihoodEstimatorModels(), operator=(), and save().

◆ m_outlierRejection

bool Isis::BundleSettings::m_outlierRejection
private

Indicates whether to perform automatic outlier detection/rejection.

Definition at line 353 of file BundleSettings.h.

Referenced by init(), operator=(), outlierRejection(), and setOutlierRejection().

◆ m_outlierRejectionMultiplier

double Isis::BundleSettings::m_outlierRejectionMultiplier
private

The multiplier value for outlier rejection.

Defaults to 1, so no change if rejection = false.

Definition at line 355 of file BundleSettings.h.

Referenced by init(), operator=(), outlierRejectionMultiplier(), and setOutlierRejection().

◆ m_outputFilePrefix

QString Isis::BundleSettings::m_outputFilePrefix
private

The prefix for all output files.

If the user does not want output files to be written to the current directory, the output directory path should be included in this prefix.

Definition at line 398 of file BundleSettings.h.

Referenced by init(), operator=(), outputFilePrefix(), and setOutputFilePrefix().

◆ m_solveObservationMode

bool Isis::BundleSettings::m_solveObservationMode
private

Indicates whether to solve for observation mode.

Definition at line 348 of file BundleSettings.h.

Referenced by init(), operator=(), setSolveOptions(), and solveObservationMode().

◆ m_solveRadius

bool Isis::BundleSettings::m_solveRadius
private

Indicates whether to solve for point radii.

Definition at line 349 of file BundleSettings.h.

Referenced by init(), operator=(), setSolveOptions(), and solveRadius().

◆ m_solveTargetBody

bool Isis::BundleSettings::m_solveTargetBody
private

Indicates whether to solve for target body.

Definition at line 389 of file BundleSettings.h.

Referenced by init(), and operator=().

◆ m_updateCubeLabel

bool Isis::BundleSettings::m_updateCubeLabel
private

Indicates whether to update cubes.

Definition at line 350 of file BundleSettings.h.

Referenced by init(), operator=(), setSolveOptions(), and updateCubeLabel().

◆ m_validateNetwork

bool Isis::BundleSettings::m_validateNetwork
private

Indicates whether the network should be validated.

Definition at line 346 of file BundleSettings.h.

Referenced by init(), operator=(), setValidateNetwork(), and validateNetwork().


The documentation for this class was generated from the following files:
Isis::BundleSettings::BundleSettings
BundleSettings()
Constructs a BundleSettings object.
Definition: BundleSettings.cpp:39