56 template<
typename T >
class QList;
57 template<
typename A,
typename B >
class QMap;
337 const QString &cnetFile,
338 const QString &cubeList,
339 bool printSummary =
true);
343 bool printSummary =
true);
351 bool printSummary =
true);
354 const QString &cubeList,
355 bool printSummary =
true);
384 void statusUpdate(QString);
386 void iterationUpdate(
int);
387 void pointUpdate(
int);
388 void statusBarUpdate(QString);
418 double, boost::numeric::ublas::upper > &N22,
420 boost::numeric::ublas::compressed_vector< double > &n1,
426 int observationIndex);
428 double, boost::numeric::ublas::upper > &N22,
444 bool invert3x3(boost::numeric::ublas::symmetric_matrix<
445 double, boost::numeric::ublas::upper > &m);
447 double, boost::numeric::ublas::upper > &N22,
450 void productAlphaAV(
double alpha,
451 boost::numeric::ublas::bounded_vector< double, 3 > &v2,
484 QString m_iterationSummary;
505 boost::numeric::ublas::symmetric_matrix<
507 boost::numeric::ublas::upper,
509 cholmod_common m_cholmodCommon;
This represents an ISIS control net in a project-based GUI interface.
boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper, boost::numeric::ublas::column_major > m_normalInverse
!< The lists of images used in the bundle.
This class is a container class for BundleObservations.
bool initializeCHOLMODLibraryVariables()
Initializations for CHOLMOD sparse matrix package.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
QString fileName(int index)
Return the ith filename in the cube list file given to constructor.
Internalizes a list of images and allows for operations on the entire list.
bool flagOutliers()
Flags outlier measures and control points.
bool m_printSummary
!< Summary of the most recently completed iteration.
int m_previousNumberImagePartials
!< The image parameter solution vector.
void init(Progress *progress=0)
Initialize all solution parameters.
bool isConverged()
Returns if the BundleAdjust converged.
Container class for BundleAdjustment results.
SerialNumberList * serialNumberList()
Returns a pointer to the serial number list.
int m_numberOfImagePartials
number of image-related partials.
bool cholmodInverse()
Compute inverse of normal equations matrix for CHOLMOD.
bool formWeightedNormals(boost::numeric::ublas::compressed_vector< double > &n1, LinearAlgebra::Vector &nj)
Apply weighting for spacecraft position, velocity, acceleration and camera angles, angular velocities, angular accelerations if so stipulated (legalese).
BundleSolutionInfo * bundleSolveInformation()
Create a BundleSolutionInfo containing the settings and results from the bundle adjustment.
bool wrapUp()
Compute the residuals for each adjusted point and store adjustment results in m_bundleResults.
bool freeCHOLMODLibraryVariables()
Free CHOLMOD library variables.
SparseBlockMatrix m_sparseNormals
!< The right hand side of the normal equations.
Table spVector(int index)
Return a table spacecraft vector for the ith cube in the cube list given to the constructor.
Statistics m_xyResiduals
xy residual statistics.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
A container class for a ControlMeasure.
boost::numeric::ublas::matrix< double > Matrix
Definition for an Isis::LinearAlgebra::Matrix of doubles.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
bool initializeNormalEquationsMatrix()
Initialize Normal Equations matrix (m_sparseNormals).
SerialNumberList * m_serialNumberList
!< Vector of observations.
bool validateNetwork()
control network validation - on the very real chance that the net has not been checked before running...
BundleSettingsQsp m_bundleSettings
Contains the solve settings.
void abortBundle()
Flag to abort when bundle is threaded.
This class is used to accumulate statistics on double arrays.
LinearAlgebra::Vector m_imageSolution
!< The lower triangular L matrix from Cholesky decomposition.
bool solveCholesky()
Compute the least squares bundle adjustment solution using Cholesky decomposition.
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
bool formMeasureNormals(boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &N22, SparseBlockColumnMatrix &N12, boost::numeric::ublas::compressed_vector< double > &n1, LinearAlgebra::Vector &n2, LinearAlgebra::Matrix &coeffTarget, LinearAlgebra::Matrix &coeffImage, LinearAlgebra::Matrix &coeffPoint3D, LinearAlgebra::Vector &coeffRHS, int observationIndex)
Form the auxilary normal equation matrices for a measure.
Program progress reporter.
~BundleAdjust()
Destroys BundleAdjust object, deallocates pointers (if we have ownership), and frees variables from c...
bool loadCholmodTriplet()
Load sparse normal equations matrix into CHOLMOD triplet.
Table cMatrix(int index)
Return a table cmatrix for the ith cube in the cube list given to the constructor.
BundleAdjust(BundleSettingsQsp bundleSettings, const QString &cnetFile, const QString &cubeList, bool printSummary=true)
Construct a BundleAdjust object from the given settings, control network file, and cube list...
int m_rank
!< If the serial number lists need to be deleted by the destructor.
ControlNetQsp controlNet()
Returns a pointer to the output control network.
cholmod_triplet * m_cholmodTriplet
!< The sparse block normal equations matrix.
bool solveSystem()
Compute the solution to the normal equations using the CHOLMOD library.
bool productATransB(boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &N22, SparseBlockColumnMatrix &N12, SparseBlockRowMatrix &Q)
Perform the matrix multiplication Q = N22 x N12(transpose)
void accumProductAlphaAB(double alpha, SparseBlockRowMatrix &A, LinearAlgebra::Vector &B, LinearAlgebra::Vector &C)
Performs the matrix multiplication nj = nj + alpha (Q x n2).
void applyParameterCorrections()
apply parameter corrections for solution.
Statistics m_yResiduals
y residual statistics.
This class holds information about a control point that BundleAdjust needs to run correctly...
bool m_cleanUp
!< If the iteration summaries should be output to the log file.
BundleSolutionInfo * solveCholeskyBR()
Compute the least squares bundle adjustment solution using Cholesky decomposition.
BundleResults m_bundleResults
Stores the results of the bundle adjust.
LinearAlgebra::Vector m_RHS
!< Contains object parameters, statistics, and workspace used by the CHOLMOD library.
bool isAborted()
Returns if the BundleAdjust has been aborted.
int m_iteration
The current iteration.
QString m_cnetFileName
The control net filename.
Statistics m_xResiduals
x residual statistics.
void outputBundleStatus(QString status)
Slot for deltack and jigsaw to output the bundle status.
QList< ImageList * > imageLists()
This method returns the image list used in the bundle adjust.
bool formNormalEquations()
Form the least-squares normal equations matrix via cholmod.
bool formPointNormals(boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &N22, SparseBlockColumnMatrix &N12, LinearAlgebra::Vector &n2, LinearAlgebra::Vector &nj, BundleControlPointQsp &point)
Compute the Q matrix and NIC vector for a control point.
ControlNetQsp m_controlNet
Output control net.
int numberOfImages() const
Returns the number of images.
BundleObservationVector m_bundleObservations
!< Vector of control points.
Class for storing Table blobs information.
void productAB(SparseBlockColumnMatrix &A, SparseBlockRowMatrix &B)
Perform the matrix multiplication C = N12 x Q.
bool computeRejectionLimit()
Compute rejection limit.
Namespace for ISIS/Bullet specific routines.
A container class for statistical results from a BundleAdjust solution.
void iterationSummary()
Creates an iteration summary and an iteration group for the solution summary.
QString iterationSummaryGroup() const
Returns the iteration summary string.
cholmod_sparse * m_cholmodNormal
!< The CHOLMOD triplet representation of the sparse normal equations matrix.
double iteration() const
Returns what iteration the BundleAdjust is currently on.
An image bundle adjustment object.
bool errorPropagation()
Error propagation for solution.
double computeResiduals()
This method computes the focal plane residuals for the measures.
Serial Number list generator.
cholmod_factor * m_L
!< The CHOLMOD sparse normal equations matrix used by cholmod_factorize to solve the system...
bool computePartials(LinearAlgebra::Matrix &coeffTarget, LinearAlgebra::Matrix &coeffImage, LinearAlgebra::Matrix &coeffPoint3D, LinearAlgebra::Vector &coeffRHS, BundleMeasure &measure, BundleControlPoint &point)
Compute partial derivatives and weighted residuals for a measure.
bool m_abort
!< Contains information about the target body.
bool computeBundleStatistics()
Compute Bundle statistics and store them in m_bundleResults.
bool invert3x3(boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &m)
Dedicated quick inverse of 3x3 matrix.