1 #ifndef BundleSettings_h 2 #define BundleSettings_h 28 #include <QSharedPointer> 39 #include "XmlStackedHandler.h" 43 class QXmlStreamWriter;
178 double multiplier = 1.0);
222 int maximumIterations);
297 void setSCPVLFilename(QString SCParamFilename);
301 QString SCPVLFilename()
const;
303 void save(QXmlStreamWriter &stream,
const Project *project)
const;
329 const QString &localName,
330 const QString &qName,
331 const QXmlAttributes &atts);
333 virtual bool endElement(
const QString &namespaceURI,
334 const QString &localName,
335 const QString &qName);
336 bool fatalError(
const QXmlParseException &exception);
343 QString m_xmlHandlerCharacters;
unsigned int indexFieldValue
The index of the TableRecord.???
bool m_createInverseMatrix
Indicates whether to create the inverse matrix file.
bool solveMeanRadius() const
This method is used to determine whether the bundle adjustment will solve for target body mean radius...
BundleTargetBodyQsp m_bundleTargetBody
A pointer to the target body settings and information.
Use a Huber maximum likelihood model.
const double Null
Value for an Isis Null pixel.
The value of sigma0 will be used to determine that the bundle adjustment has converged.
The main project for ipce.
SurfacePoint::CoordinateType m_cpCoordTypeBundle
Indicates the coordinate type used for control points in the bundle adjustment.
void setObservationSolveOptions(QList< BundleObservationSolveSettings > obsSolveSettingsList)
Add the list of solve options for each observation.
File name manipulation and expansion.
bool m_solveObservationMode
Indicates whether to solve for observation mode.
static QString convergenceCriteriaToString(ConvergenceCriteria criteria)
Converts the given BundleSettings::ConvergenceCriteria enumeration to a string.
double convergenceCriteriaThreshold() const
Retrieves the convergence threshold to be used to solve the bundle adjustment.
bool errorPropagation() const
This method is used to determine whether this bundle adjustment will perform error propagation...
QList< QPair< MaximumLikelihoodWFunctions::Model, double > > maximumLikelihoodEstimatorModels() const
Retrieves the list of maximum likelihood estimator (MLE) models with their corresponding C-Quantiles...
void setOutputFilePrefix(QString outputFilePrefix)
Set the output file prefix for the bundle adjustment.
ConvergenceCriteria m_convergenceCriteria
Enumeration used to indicate what criteria to use to determine bundle adjustment convergence.
void setConvergenceCriteria(ConvergenceCriteria criteria, double threshold, int maximumIterations)
Set the convergence criteria options for the bundle adjustment.
SurfacePoint::CoordinateType controlPointCoordTypeBundle() const
Indicates the control point coordinate type for the actual bundle adjust.
int numberTargetBodyParameters() const
This method is used to determine whether the bundle adjustment will solve for target body pole positi...
double m_outlierRejectionMultiplier
The multiplier value for outlier rejection.
bool validateNetwork() const
This method is used to determine whether to validate the network before the bundle adjustment...
QString outputFilePrefix() const
Retrieve the output file prefix.
bool solvePMAcceleration() const
This method is used to determine whether the bundle adjustment will solve for target body prime merid...
Q_DECLARE_METATYPE(Isis::Cube *)
This allows Cube *'s to be stored in a QVariant.
bool updateCubeLabel() const
This method is used to determine whether this bundle adjustment will update the cube labels...
virtual bool characters(const QString &ch)
Add a character from an XML element to the content handler.
SurfacePoint::CoordinateType m_cpCoordTypeReports
Indicates the coordinate type for outputting control points in reports.
bool solvePoleDecVelocity() const
This method is used to determine whether the bundle adjustment will solve for target body pole declin...
QString m_outputFilePrefix
The prefix for all output files.
int numberSolveSettings() const
Retrieves the number of observation solve settings.
void setCubeList(QString fileName)
BundleSettings::setCubeList.
bool solvePoleDec() const
This method is used to determine whether the bundle adjustment will solve for target body pole declin...
void save(QXmlStreamWriter &stream, const Project *project) const
This method is used to write a BundleSettings object in an XML format.
Model
The supported maximum likelihood estimation models.
bool m_validateNetwork
Indicates whether the network should be validated.
ConvergenceCriteria convergenceCriteria() const
Retrieves the convergence criteria to be used to solve the bundle adjustment.
double m_globalPointCoord3AprioriSigma
The global a priori sigma for radius or Z.
Use a modified Huber maximum likelihood model.
bool fatalError(const QXmlParseException &exception)
Format an error message indicating a problem with BundleSettings.
double globalPointCoord2AprioriSigma() const
Retrieves the global a priori sigma for 2nd coordinate of points for this bundle. ...
void setCreateInverseMatrix(bool createMatrix)
Turn the creation of the inverse correlation matrix file on or off.
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Handle end tags for the BundleSettings serialized XML.
Planetocentric latitudinal (lat/lon/rad) coordinates.
~BundleSettings()
Destroys the BundleSettings object.
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Handle an XML start element.
bool outlierRejection() const
This method is used to determine whether outlier rejection will be performed on this bundle adjustmen...
Do not use a maximum likelihood model.
XmlHandler(BundleSettings *bundleSettings, Project *project)
Create an XML Handler (reader) that can populate the BundleSettings class data.
void setBundleTargetBody(BundleTargetBodyQsp bundleTargetBody)
Sets the target body for the bundle adjustment.
void init()
Set Default vales for a BundleSettings object.
void addMaximumLikelihoodEstimatorModel(MaximumLikelihoodWFunctions::Model model, double cQuantile)
Add a maximum likelihood estimator (MLE) model to the bundle adjustment.
bool m_updateCubeLabel
Indicates whether to update cubes.
BundleSettings()
Constructs a BundleSettings object.
QList< QPair< MaximumLikelihoodWFunctions::Model, double > > m_maximumLikelihood
Model and C-Quantile for each of the three maximum likelihood estimations.
All parameter corrections will be used to determine that the bundle adjustment has converged...
SurfacePoint::CoordinateType controlPointCoordTypeReports() const
Indicates the control point coordinate type for reports.
int convergenceCriteriaMaximumIterations() const
Retrieves the maximum number of iterations allowed to solve the bundle adjustment.
QSharedPointer< BundleSettings > BundleSettingsQsp
Definition for a BundleSettingsQsp, a shared pointer to a BundleSettings object.
Container class for BundleAdjustment settings.
XML Handler that parses XMLs in a stack-oriented way.
QList< BundleObservationSolveSettings > observationSolveSettings() const
Retrieves solve settings for the observation corresponding to the given index.
void setValidateNetwork(bool validate)
Sets the internal flag to indicate whether to validate the network before the bundle adjustment...
Use a Chen maximum likelihood model.
BundleSettings & operator=(const BundleSettings &other)
Assignment operator to allow proper copying of the 'other' BundleSettings object to this one...
This class is needed to read/write BundleSettings from/to an XML formateed file.
Use a Welsch maximum likelihood model.
double m_convergenceCriteriaThreshold
Tolerance value corresponding to the selected convergence criteria.
CoordinateType
Defines the coordinate typ, units, and coordinate index for some of the output methods.
This class is used to modify and manage solve settings for 1 to many BundleObservations.
bool validate(const NaifVertex &v)
Verifies that the given NaifVector or NaifVertex is 3 dimensional.
bool solveRadius() const
This method is used to determine whether this bundle adjustment will solve for radius.
bool solvePMVelocity() const
This method is used to determine whether the bundle adjustment will solve for target body prime merid...
bool solveTriaxialRadii() const
This method is used to determine whether the bundle adjustment will solve for target body triaxial ra...
MaximumLikelihoodModel
This enum defines the options for maximum likelihood estimation.
static ConvergenceCriteria stringToConvergenceCriteria(QString criteria)
Converts the given string value to a BundleSettings::ConvergenceCriteria enumeration.
bool m_outlierRejection
Indicates whether to perform automatic outlier detection/rejection.
bool solveTargetBody() const
This method is used to determine whether the bundle adjustment will solve for target body...
~XmlHandler()
Destroys BundleSettings::XmlHandler object.
bool m_solveRadius
Indicates whether to solve for point radii.
int m_convergenceCriteriaMaximumIterations
Maximum number of iterations before quitting the bundle adjustment if it has not yet converged to the...
QString nameFieldValue
The model name of the TableRecord.???
double m_globalPointCoord1AprioriSigma
The global a priori sigma for latitude or X.
Namespace for ISIS/Bullet specific routines.
double outlierRejectionMultiplier() const
Retrieves the outlier rejection multiplier for the bundle adjustment.
double quantileFieldValue
The quantile of the TableRecord.???
bool solvePM() const
This method is used to determine whether the bundle adjustment will solve for target body prime merid...
This struct is needed to write the m_maximumLikelihood variable as an HDF5 table. ...
bool solvePoleRAVelocity() const
This method is used to determine whether the bundle adjustment will solve for target body pole right ...
double globalPointCoord3AprioriSigma() const
Retrieves the global a priori sigma 3rd coordinate of points for this bundle.
bool createInverseMatrix() const
Indicates if the settings will allow the inverse correlation matrix to be created.
bool m_solveTargetBody
Indicates whether to solve for target body.
double m_globalPointCoord2AprioriSigma
The global a priori sigma for longitude or Y.
Contains Pvl Groups and Pvl Objects.
void setOutlierRejection(bool outlierRejection, double multiplier=1.0)
Set the outlier rejection options for the bundle adjustment.
bool m_errorPropagation
Indicates whether to perform error propagation.
double globalPointCoord1AprioriSigma() const
Retrieves global a priori sigma for 1st coordinate of points for this bundle.
bool solveObservationMode() const
This method is used to determine whether this bundle adjustment will solve for observation mode...
Manage a stack of content handlers for reading XML files.
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.
BundleTargetBodyQsp bundleTargetBody() const
Retrieves a pointer to target body information for the bundle adjustment.
QString cubeList() const
BundleSettings::cubeList.
bool solvePoleRA() const
This method is used to determine whether the bundle adjustment will solve for target body pole right ...
ConvergenceCriteria
This enum defines the options for the bundle adjustment's convergence.