Isis Developer Reference
|
Container class for BundleAdjustment settings. More...
#include <BundleSettings.h>
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. | |
BundleSettings (const BundleSettings &other) | |
This copy constructor sets this BundleSettings' member data to match that of the 'other' given BundleSettings. | |
~BundleSettings () | |
Destroys the BundleSettings object. | |
BundleSettings & | operator= (const BundleSettings &other) |
Assignment operator to allow proper copying of the 'other' BundleSettings object to this one. | |
void | setValidateNetwork (bool validate) |
Sets the internal flag to indicate whether to validate the network before the bundle adjustment. | |
bool | validateNetwork () const |
This method is used to determine whether to validate the network before the bundle adjustment. | |
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. | |
void | setOutlierRejection (bool outlierRejection, double multiplier=1.0) |
Set the outlier rejection options for the bundle adjustment. | |
void | setObservationSolveOptions (QList< BundleObservationSolveSettings > obsSolveSettingsList) |
Add the list of solve options for each observation. | |
void | setCreateInverseMatrix (bool createMatrix) |
Turn the creation of the inverse correlation matrix file on or off. | |
SurfacePoint::CoordinateType | controlPointCoordTypeReports () const |
Indicates the control point coordinate type for reports. | |
SurfacePoint::CoordinateType | controlPointCoordTypeBundle () const |
Indicates the control point coordinate type for the actual bundle adjust. | |
bool | createInverseMatrix () const |
Indicates if the settings will allow the inverse correlation matrix to be created. | |
bool | solveObservationMode () const |
This method is used to determine whether this bundle adjustment will solve for observation mode. | |
bool | solveRadius () const |
This method is used to determine whether this bundle adjustment will solve for radius. | |
bool | updateCubeLabel () const |
This method is used to determine whether this bundle adjustment will update the cube labels. | |
bool | errorPropagation () const |
This method is used to determine whether this bundle adjustment will perform error propagation. | |
bool | outlierRejection () const |
This method is used to determine whether outlier rejection will be performed on this bundle adjustment. | |
double | outlierRejectionMultiplier () const |
Retrieves the outlier rejection multiplier for the bundle adjustment. | |
double | globalPointCoord1AprioriSigma () const |
Retrieves global a priori sigma for 1st coordinate of points for this bundle. | |
double | globalPointCoord2AprioriSigma () const |
Retrieves the global a priori sigma for 2nd coordinate of points for this bundle. | |
double | globalPointCoord3AprioriSigma () const |
Retrieves the global a priori sigma 3rd coordinate of points for this bundle. | |
int | numberSolveSettings () const |
Retrieves the number of observation solve settings. | |
BundleObservationSolveSettings | observationSolveSettings (QString instrumentId) const |
Retrieves solve settings for the observation corresponding to the given observation number. | |
BundleObservationSolveSettings | observationSolveSettings (int n) const |
Retrieves solve settings for the observation corresponding to the given index. | |
QList< BundleObservationSolveSettings > | observationSolveSettings () const |
Retrieves solve settings for the observation corresponding to the given index. | |
void | setConvergenceCriteria (ConvergenceCriteria criteria, double threshold, int maximumIterations) |
Set the convergence criteria options for the bundle adjustment. | |
ConvergenceCriteria | convergenceCriteria () const |
Retrieves the convergence criteria to be used to solve the bundle adjustment. | |
double | convergenceCriteriaThreshold () const |
Retrieves the convergence threshold to be used to solve the bundle adjustment. | |
int | convergenceCriteriaMaximumIterations () const |
Retrieves the maximum number of iterations allowed to solve the bundle adjustment. | |
void | addMaximumLikelihoodEstimatorModel (MaximumLikelihoodWFunctions::Model model, double cQuantile) |
Add a maximum likelihood estimator (MLE) model to the bundle adjustment. | |
QList< QPair< MaximumLikelihoodWFunctions::Model, double > > | maximumLikelihoodEstimatorModels () const |
Retrieves the list of maximum likelihood estimator (MLE) models with their corresponding C-Quantiles. | |
void | setBundleTargetBody (BundleTargetBodyQsp bundleTargetBody) |
Sets the target body for the bundle adjustment. | |
BundleTargetBodyQsp | bundleTargetBody () const |
Retrieves a pointer to target body information for the bundle adjustment. | |
int | numberTargetBodyParameters () const |
This method is used to determine whether the bundle adjustment will solve for target body pole position. | |
bool | solveTargetBody () const |
This method is used to determine whether the bundle adjustment will solve for target body. | |
bool | solvePoleRA () const |
This method is used to determine whether the bundle adjustment will solve for target body pole right ascension. | |
bool | solvePoleRAVelocity () const |
This method is used to determine whether the bundle adjustment will solve for target body pole right ascension velocity. | |
bool | solvePoleDec () const |
This method is used to determine whether the bundle adjustment will solve for target body pole declination. | |
bool | solvePoleDecVelocity () const |
This method is used to determine whether the bundle adjustment will solve for target body pole declination velocity. | |
bool | solvePM () const |
This method is used to determine whether the bundle adjustment will solve for target body prime meridian. | |
bool | solvePMVelocity () const |
This method is used to determine whether the bundle adjustment will solve for target body prime meridian velocity. | |
bool | solvePMAcceleration () const |
This method is used to determine whether the bundle adjustment will solve for target body prime meridian acceleration. | |
bool | solveTriaxialRadii () const |
This method is used to determine whether the bundle adjustment will solve for target body triaxial radii. | |
bool | solveMeanRadius () const |
This method is used to determine whether the bundle adjustment will solve for target body mean radius. | |
void | setOutputFilePrefix (QString outputFilePrefix) |
Set the output file prefix for the bundle adjustment. | |
void | setSCPVLFilename (QString SCParamFilename) |
QString | outputFilePrefix () const |
Retrieve the output file prefix. | |
void | setCubeList (QString fileName) |
BundleSettings::setCubeList. | |
QString | cubeList () const |
BundleSettings::cubeList. | |
QString | SCPVLFilename () const |
void | save (QXmlStreamWriter &stream, const Project *project) const |
This method is used to write a BundleSettings object in an XML format. | |
void | readBundleSettings (QXmlStreamReader *xmlReader) |
Static Public Member Functions | |
static ConvergenceCriteria | stringToConvergenceCriteria (QString criteria) |
Converts the given string value to a BundleSettings::ConvergenceCriteria enumeration. | |
static QString | convergenceCriteriaToString (ConvergenceCriteria criteria) |
Converts the given BundleSettings::ConvergenceCriteria enumeration to a string. | |
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.
This enum defines the options for maximum likelihood estimation.
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.
Isis::BundleSettings::BundleSettings | ( | const BundleSettings & | other | ) |
This copy constructor sets this BundleSettings' member data to match that of the 'other' given BundleSettings.
other | The BundleSettings object to be copied. |
Isis::BundleSettings::~BundleSettings | ( | ) |
Destroys the BundleSettings object.
void Isis::BundleSettings::addMaximumLikelihoodEstimatorModel | ( | MaximumLikelihoodWFunctions::Model | model, |
double | maxModelCQuantile ) |
Add a maximum likelihood estimator (MLE) model to the bundle adjustment.
model | The enumeration for the model to be used. |
maxModelCQuantile | The C-Quantile of the residual to be used to compute the tweaking constant. |
Isis::Exception::Programmer | "For bundle adjustments with multiple maximum likelihood estimators, the first model must be of type HUBER or HUBER_MODIFIED." |
References _FILEINFO_, Isis::MaximumLikelihoodWFunctions::HuberModified, and Isis::IException::Programmer.
BundleTargetBodyQsp Isis::BundleSettings::bundleTargetBody | ( | ) | const |
Retrieves a pointer to target body information for the bundle adjustment.
Referenced by setBundleTargetBody().
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.
Referenced by readBundleSettings(), and save().
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.
Referenced by readBundleSettings(), and save().
BundleSettings::ConvergenceCriteria Isis::BundleSettings::convergenceCriteria | ( | ) | const |
Retrieves the convergence criteria to be used to solve the bundle adjustment.
Referenced by readBundleSettings(), and save().
int Isis::BundleSettings::convergenceCriteriaMaximumIterations | ( | ) | const |
Retrieves the maximum number of iterations allowed to solve the bundle adjustment.
maximumIterations | The maximum number of iterations allowed before the bundle adjustment determines that the data is not converging. |
Referenced by save().
double Isis::BundleSettings::convergenceCriteriaThreshold | ( | ) | const |
Retrieves the convergence threshold to be used to solve the bundle adjustment.
Referenced by save().
|
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.
criteria | The ConvergenceCriteria enumeration to be converted. |
Isis::Exception::Programmer | "Unknown bundle convergence criteria enum." |
References _FILEINFO_, ParameterCorrections, Isis::IException::Programmer, Sigma0, and Isis::toString().
Referenced by save().
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.
Referenced by readBundleSettings(), and save().
QString Isis::BundleSettings::cubeList | ( | ) | const |
Referenced by setCubeList().
bool Isis::BundleSettings::errorPropagation | ( | ) | const |
This method is used to determine whether this bundle adjustment will perform error propagation.
Referenced by readBundleSettings(), save(), and setSolveOptions().
double Isis::BundleSettings::globalPointCoord1AprioriSigma | ( | ) | const |
Retrieves global a priori sigma for 1st coordinate of points for this bundle.
Referenced by readBundleSettings(), save(), and setSolveOptions().
double Isis::BundleSettings::globalPointCoord2AprioriSigma | ( | ) | const |
Retrieves the global a priori sigma for 2nd coordinate of points for this bundle.
Referenced by readBundleSettings(), save(), and setSolveOptions().
double Isis::BundleSettings::globalPointCoord3AprioriSigma | ( | ) | const |
Retrieves the global a priori sigma 3rd coordinate of points for this bundle.
Referenced by readBundleSettings(), save(), and setSolveOptions().
QList< QPair< MaximumLikelihoodWFunctions::Model, double > > Isis::BundleSettings::maximumLikelihoodEstimatorModels | ( | ) | const |
Retrieves the list of maximum likelihood estimator (MLE) models with their corresponding C-Quantiles.
int Isis::BundleSettings::numberSolveSettings | ( | ) | const |
Retrieves the number of observation solve settings.
Referenced by observationSolveSettings(), and observationSolveSettings().
int Isis::BundleSettings::numberTargetBodyParameters | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body pole position.
QList< BundleObservationSolveSettings > Isis::BundleSettings::observationSolveSettings | ( | ) | const |
Retrieves solve settings for the observation corresponding to the given index.
BundleObservationSolveSettings Isis::BundleSettings::observationSolveSettings | ( | int | n | ) | const |
Retrieves solve settings for the observation corresponding to the given index.
n | The index of the BundleObservationSolveSettings object to be accessed. |
IException::Unknown | "Unable to find BundleObservationSolveSettings with given index" |
References _FILEINFO_, numberSolveSettings(), Isis::toString(), and Isis::IException::Unknown.
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.
observationNumber | The observation number associated with the BundleObservationSolveSettings object to be accessed. |
References numberSolveSettings().
BundleSettings & Isis::BundleSettings::operator= | ( | const BundleSettings & | other | ) |
Assignment operator to allow proper copying of the 'other' BundleSettings object to this one.
other | The BundleSettings object to be copied. |
bool Isis::BundleSettings::outlierRejection | ( | ) | const |
This method is used to determine whether outlier rejection will be performed on this bundle adjustment.
Referenced by readBundleSettings(), save(), and setOutlierRejection().
double Isis::BundleSettings::outlierRejectionMultiplier | ( | ) | const |
Retrieves the outlier rejection multiplier for the bundle adjustment.
Referenced by readBundleSettings(), and save().
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.
Referenced by save(), and setOutputFilePrefix().
void Isis::BundleSettings::readBundleSettings | ( | QXmlStreamReader * | xmlReader | ) |
References controlPointCoordTypeBundle(), controlPointCoordTypeReports(), convergenceCriteria(), createInverseMatrix(), errorPropagation(), globalPointCoord1AprioriSigma(), globalPointCoord2AprioriSigma(), globalPointCoord3AprioriSigma(), Isis::SurfacePoint::Latitudinal, Isis::Null, outlierRejection(), outlierRejectionMultiplier(), Isis::SurfacePoint::Rectangular, solveObservationMode(), solveRadius(), stringToConvergenceCriteria(), Isis::MaximumLikelihoodWFunctions::stringToModel(), Isis::toBool(), updateCubeLabel(), and validateNetwork().
void Isis::BundleSettings::save | ( | QXmlStreamWriter & | stream, |
const Project * | project ) const |
This method is used to write a BundleSettings object in an XML format.
stream | The stream to write serialized XML output |
project | The project that contains the settings |
References controlPointCoordTypeBundle(), controlPointCoordTypeReports(), convergenceCriteria(), convergenceCriteriaMaximumIterations(), convergenceCriteriaThreshold(), convergenceCriteriaToString(), createInverseMatrix(), errorPropagation(), globalPointCoord1AprioriSigma(), globalPointCoord2AprioriSigma(), globalPointCoord3AprioriSigma(), Isis::IsSpecial(), Isis::MaximumLikelihoodWFunctions::modelToString(), outlierRejection(), outlierRejectionMultiplier(), outputFilePrefix(), solveObservationMode(), solveRadius(), Isis::toString(), updateCubeLabel(), and validateNetwork().
QString Isis::BundleSettings::SCPVLFilename | ( | ) | const |
void Isis::BundleSettings::setBundleTargetBody | ( | BundleTargetBodyQsp | bundleTargetBody | ) |
Sets the target body for the bundle adjustment.
bundleTargetBody | A pointer to the BundleTargetBody object for the bundle adjustment to be run. |
References bundleTargetBody().
void Isis::BundleSettings::setConvergenceCriteria | ( | BundleSettings::ConvergenceCriteria | criteria, |
double | threshold, | ||
int | maximumIterations ) |
Set the convergence criteria options for the bundle adjustment.
criteria | An enumeration for the convergence criteria to be used for this bundle adjustment. |
threshold | The convergence threshold for this bundle adjustment. |
maximumIterations | The maximum number of iterations allowed before the bundle adjustment determines that the data is not converging. |
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.
createMatrixFile | Boolean indicating whether or not to allow the inverse matrix file to be created. |
void Isis::BundleSettings::setCubeList | ( | QString | cubeList | ) |
void Isis::BundleSettings::setObservationSolveOptions | ( | QList< BundleObservationSolveSettings > | obsSolveSettingsList | ) |
Add the list of solve options for each observation.
observationSolveSettings | A list of BundleObservationSolveSettings objects to indicate the settings for each observation of the bundle adjustment. |
void Isis::BundleSettings::setOutlierRejection | ( | bool | outlierRejection, |
double | multiplier = 1.0 ) |
Set the outlier rejection options for the bundle adjustment.
outlierRejection | Indicates whether to perform automatic outlier rejection during the bundle adjustment. |
mutliplier | The outlier rejection multiplier. |
References outlierRejection().
void Isis::BundleSettings::setOutputFilePrefix | ( | QString | outputFilePrefix | ) |
Set the output file prefix for the bundle adjustment.
outputFilePrefix | A string containing a prefix and/or directory path |
References outputFilePrefix().
void Isis::BundleSettings::setSCPVLFilename | ( | QString | SCParamFilename | ) |
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.
solveObservationMode | A boolean value indicating whether to solve for observation mode. |
updateCubeLabel | A boolean value indicating whether to update the cube labels after the bundle adjustment is completed. |
errorPropagation | A boolean value indicating whether to use the cholmod library's error propagation. |
solveRadius | A boolean value indicating whether to solve for radius. |
coordType | The type of coordinates used for control points |
globalPointCoord1AprioriSigma | The global a priori sigma for latitude. |
globalPointCoord2AprioriSigma | The global a priori sigma for longitude. |
globalPointCoord3AprioriSigma | The global a priori sigma for radius. |
References errorPropagation(), globalPointCoord1AprioriSigma(), globalPointCoord2AprioriSigma(), globalPointCoord3AprioriSigma(), Isis::SurfacePoint::Latitudinal, Isis::Null, Isis::SurfacePoint::Rectangular, solveObservationMode(), solveRadius(), and updateCubeLabel().
void Isis::BundleSettings::setValidateNetwork | ( | bool | validate | ) |
Sets the internal flag to indicate whether to validate the network before the bundle adjustment.
validate | Indicates whether the network should be validated by BundleAdjust. |
References Isis::validate().
bool Isis::BundleSettings::solveMeanRadius | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body mean radius.
bool Isis::BundleSettings::solveObservationMode | ( | ) | const |
This method is used to determine whether this bundle adjustment will solve for observation mode.
Referenced by readBundleSettings(), save(), and setSolveOptions().
bool Isis::BundleSettings::solvePM | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body prime meridian.
bool Isis::BundleSettings::solvePMAcceleration | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body prime meridian acceleration.
bool Isis::BundleSettings::solvePMVelocity | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body prime meridian velocity.
bool Isis::BundleSettings::solvePoleDec | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body pole declination.
bool Isis::BundleSettings::solvePoleDecVelocity | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body pole declination velocity.
bool Isis::BundleSettings::solvePoleRA | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body pole right ascension.
bool Isis::BundleSettings::solvePoleRAVelocity | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body pole right ascension velocity.
bool Isis::BundleSettings::solveRadius | ( | ) | const |
This method is used to determine whether this bundle adjustment will solve for radius.
Referenced by readBundleSettings(), save(), and setSolveOptions().
bool Isis::BundleSettings::solveTargetBody | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body.
bool Isis::BundleSettings::solveTriaxialRadii | ( | ) | const |
This method is used to determine whether the bundle adjustment will solve for target body triaxial radii.
|
static |
Converts the given string value to a BundleSettings::ConvergenceCriteria enumeration.
Currently accepted inputs are listed below. This method is case insensitive.
criteria | Convergence criteria name to be converted. |
Isis::Exception::Programmer | "Unknown bundle convergence criteria." |
References _FILEINFO_, ParameterCorrections, Isis::IException::Programmer, and Sigma0.
Referenced by readBundleSettings().
bool Isis::BundleSettings::updateCubeLabel | ( | ) | const |
This method is used to determine whether this bundle adjustment will update the cube labels.
Referenced by readBundleSettings(), save(), and setSolveOptions().
bool Isis::BundleSettings::validateNetwork | ( | ) | const |
This method is used to determine whether to validate the network before the bundle adjustment.
Referenced by readBundleSettings(), and save().