![]() |
Isis 3 Programmer Reference
|
An image bundle adjustment object. More...
#include <BundleAdjust.h>
Public Slots | |
bool | solveCholesky () |
Compute the least squares bundle adjustment solution using Cholesky decomposition. More... | |
void | abortBundle () |
Flag to abort when bundle is threaded. More... | |
void | outputBundleStatus (QString status) |
Slot for deltack and jigsaw to output the bundle status. More... | |
ControlNetQsp | controlNet () |
Returns a pointer to the output control network. More... | |
SerialNumberList * | serialNumberList () |
Returns a pointer to the serial number list. More... | |
QString | fileName (int index) |
Return the ith filename in the cube list file given to constructor. More... | |
QString | iterationSummaryGroup () const |
Returns the iteration summary string. More... | |
bool | isConverged () |
Returns if the BundleAdjust converged. More... | |
Table | cMatrix (int index) |
Return the updated instrument pointing table for the ith cube in the cube list given to the constructor. More... | |
Table | spVector (int index) |
Return the updated instrument position table for the ith cube in the cube list given to the constructor. More... | |
QString | modelState (int index) |
Return the updated model state for the ith cube in the cube list given to the constructor. More... | |
int | numberOfImages () const |
Returns the number of images. More... | |
double | iteration () const |
Returns what iteration the BundleAdjust is currently on. More... | |
Signals | |
void | statusUpdate (QString) |
void | error (QString) |
void | iterationUpdate (int) |
void | pointUpdate (int) |
void | statusBarUpdate (QString) |
void | resultsReady (BundleSolutionInfo *bundleSolveInformation) |
void | finished () |
Public Member Functions | |
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. More... | |
BundleAdjust (BundleSettingsQsp bundleSettings, QString &cnet, SerialNumberList &snlist, bool printSummary=true) | |
Construct a BundleAdjust object with held cubes. More... | |
BundleAdjust (BundleSettingsQsp bundleSettings, Control &cnet, SerialNumberList &snlist, bool bPrintSummary) | |
Constructs a BundleAdjust object using a Control object. More... | |
BundleAdjust (BundleSettingsQsp bundleSettings, ControlNet &cnet, SerialNumberList &snlist, bool printSummary=true) | |
Constructs a BundleAdjust object using a ControlNet object. More... | |
BundleAdjust (BundleSettingsQsp bundleSettings, ControlNetQsp cnet, const QString &cubeList, bool printSummary=true) | |
Constructs a BundleAdjust from an already created ControlNet within a shared pointer. More... | |
BundleAdjust (BundleSettingsQsp bundleSettings, Control &control, QList< ImageList * > imgList, bool printSummary) | |
Thread safe constructor. More... | |
~BundleAdjust () | |
Destroys BundleAdjust object, deallocates pointers (if we have ownership), and frees variables from cholmod library. More... | |
BundleSolutionInfo * | solveCholeskyBR () |
Compute the least squares bundle adjustment solution using Cholesky decomposition. More... | |
QList< ImageList * > | imageLists () |
This method returns the image list used in the bundle adjust. More... | |
bool | isAborted () |
Returns if the BundleAdjust has been aborted. More... | |
Private Member Functions | |
void | init (Progress *progress=0) |
Initialize all solution parameters. More... | |
bool | initializeNormalEquationsMatrix () |
Initialize Normal Equations matrix (m_sparseNormals). More... | |
bool | validateNetwork () |
control network validation - on the very real chance that the net has not been checked before running the bundle More... | |
bool | solveSystem () |
Compute the solution to the normal equations using the CHOLMOD library. More... | |
void | iterationSummary () |
Creates an iteration summary and an iteration group for the solution summary. More... | |
BundleSolutionInfo * | bundleSolveInformation () |
Create a BundleSolutionInfo containing the settings and results from the bundle adjustment. More... | |
bool | computeBundleStatistics () |
Compute Bundle statistics and store them in m_bundleResults. More... | |
void | applyParameterCorrections () |
Apply parameter corrections for solution. More... | |
bool | errorPropagation () |
Error propagation for solution. More... | |
double | computeResiduals () |
This method computes the focal plane residuals for the measures. More... | |
bool | computeRejectionLimit () |
Compute rejection limit. More... | |
bool | flagOutliers () |
Flags outlier measures and control points. More... | |
bool | formNormalEquations () |
Form the least-squares normal equations matrix via cholmod. More... | |
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. More... | |
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. More... | |
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. More... | |
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). More... | |
void | productAB (SparseBlockColumnMatrix &A, SparseBlockRowMatrix &B) |
Perform the matrix multiplication C = N12 x Q. More... | |
void | accumProductAlphaAB (double alpha, SparseBlockRowMatrix &A, LinearAlgebra::Vector &B, LinearAlgebra::Vector &C) |
Performs the matrix multiplication nj = nj + alpha (Q x n2). More... | |
bool | invert3x3 (boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > &m) |
Dedicated quick inverse of 3x3 matrix. More... | |
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) More... | |
void | productAlphaAV (double alpha, boost::numeric::ublas::bounded_vector< double, 3 > &v2, SparseBlockRowMatrix &Q, LinearAlgebra::Vector &v1) |
bool | initializeCHOLMODLibraryVariables () |
Initializations for CHOLMOD sparse matrix package. More... | |
bool | freeCHOLMODLibraryVariables () |
Free CHOLMOD library variables. More... | |
bool | cholmodInverse () |
Compute inverse of normal equations matrix for CHOLMOD. More... | |
bool | loadCholmodTriplet () |
Load sparse normal equations matrix into CHOLMOD triplet. More... | |
bool | wrapUp () |
Compute the residuals for each adjusted point and store adjustment results in m_bundleResults. More... | |
Private Attributes | |
BundleSettingsQsp | m_bundleSettings |
Contains the solve settings. More... | |
BundleResults | m_bundleResults |
Stores the results of the bundle adjust. More... | |
Statistics | m_xResiduals |
x residual statistics. More... | |
Statistics | m_yResiduals |
y residual statistics. More... | |
Statistics | m_xyResiduals |
xy residual statistics. More... | |
ControlNetQsp | m_controlNet |
Output control net. More... | |
QString | m_cnetFileName |
The control net filename. More... | |
QVector< BundleControlPointQsp > | m_bundleControlPoints |
BundleObservationVector | m_bundleObservations |
!< Vector of control points. More... | |
SerialNumberList * | m_serialNumberList |
!< Vector of observations. More... | |
BundleTargetBodyQsp | m_bundleTargetBody |
bool | m_abort |
!< Contains information about the target body. More... | |
QString | m_iterationSummary |
bool | m_printSummary |
!< Summary of the most recently completed iteration. More... | |
bool | m_cleanUp |
!< If the iteration summaries should be output to the log file. More... | |
int | m_rank |
!< If the serial number lists need to be deleted by the destructor. More... | |
int | m_iteration |
The current iteration. More... | |
int | m_numberOfImagePartials |
number of image-related partials. More... | |
QList< ImageList * > | m_imageLists |
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. More... | |
cholmod_common | m_cholmodCommon |
LinearAlgebra::Vector | m_RHS |
!< Contains object parameters, statistics, and workspace used by the CHOLMOD library. More... | |
SparseBlockMatrix | m_sparseNormals |
!< The right hand side of the normal equations. More... | |
cholmod_triplet * | m_cholmodTriplet |
!< The sparse block normal equations matrix. More... | |
cholmod_sparse * | m_cholmodNormal |
!< The CHOLMOD triplet representation of the sparse normal equations matrix. More... | |
cholmod_factor * | m_L |
!< The CHOLMOD sparse normal equations matrix used by cholmod_factorize to solve the system. More... | |
LinearAlgebra::Vector | m_imageSolution |
!< The lower triangular L matrix from Cholesky decomposition. More... | |
int | m_previousNumberImagePartials |
!< The image parameter solution vector. More... | |
An image bundle adjustment object.
BundleAdjust is used to perform a bundle adjustment on overlapping ISIS cubes. Using the collineariy condition, BundleAdjust can construct a system of normal equations and then using the CHOLMOD library, solve that system.
Definition at line 318 of file BundleAdjust.h.
Isis::BundleAdjust::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.
bundleSettings | A shared pointer to the BundleSettings to be used. |
cnetFile | The filename of the control network to be used. |
cubeList | The list of filenames of the cubes to be adjusted. |
printSummary | If summaries should be printed each iteration. |
Definition at line 104 of file BundleAdjust.cpp.
Isis::BundleAdjust::BundleAdjust | ( | BundleSettingsQsp | bundleSettings, |
QString & | cnetFile, | ||
SerialNumberList & | snlist, | ||
bool | printSummary = true |
||
) |
Construct a BundleAdjust object with held cubes.
bundleSettings | A shared pointer to the BundleSettings to be used. |
cnetFile | The filename of the control network to be used. |
cubeList | The list of filenames of the cubes to be adjusted. |
heldList | The list of filenames of the held cubes. Held cubes must be in both heldList and cubeList. |
printSummary | If summaries should be printed each iteration. |
Definition at line 142 of file BundleAdjust.cpp.
Isis::BundleAdjust::BundleAdjust | ( | BundleSettingsQsp | bundleSettings, |
Control & | cnet, | ||
SerialNumberList & | snlist, | ||
bool | printSummary | ||
) |
Constructs a BundleAdjust object using a Control object.
A new control network object will be created as a copy of the Control's control network.
bundleSettings | A shared pointer to the BundleSettings to be used. |
cnet | The Control object whose control network will be copied. The Control will not be modified by the BundleAdjust. |
snlist | A serial number list containing the cubes to be adjusted. |
printSummary | If summaries should be printed each iteration. |
Definition at line 179 of file BundleAdjust.cpp.
References Isis::Control::fileName().
Isis::BundleAdjust::BundleAdjust | ( | BundleSettingsQsp | bundleSettings, |
ControlNet & | cnet, | ||
SerialNumberList & | snlist, | ||
bool | printSummary = true |
||
) |
Constructs a BundleAdjust object using a ControlNet object.
A copy of the ControlNet will be used.
bundleSettings | A shared pointer to the BundleSettings to be used. |
cnet | The ControlNet that will be copied. The original ControlNet will not be modified. |
snlist | A serial number list containing the cubes to be adjusted. |
printSummary | If summaries should be printed each iteration. |
Definition at line 216 of file BundleAdjust.cpp.
Isis::BundleAdjust::BundleAdjust | ( | BundleSettingsQsp | bundleSettings, |
ControlNetQsp | cnet, | ||
const QString & | cubeList, | ||
bool | printSummary = true |
||
) |
Constructs a BundleAdjust from an already created ControlNet within a shared pointer.
bundleSettings | QSharedPointer to the bundle settings to use. |
cnet | QSharedPointer to the control net to adjust. |
cubeList | QString name of list of cubes to create serial numbers for. |
printSummary | Boolean indicating whether to print application output summary. |
Definition at line 250 of file BundleAdjust.cpp.
Isis::BundleAdjust::BundleAdjust | ( | BundleSettingsQsp | bundleSettings, |
Control & | control, | ||
QList< ImageList * > | imgLists, | ||
bool | printSummary | ||
) |
Thread safe constructor.
bundleSettings | A shared pointer to the BundleSettings to be used. |
control | The Control object whose control network will be copied. The Control will not be modified by the BundleAdjust. |
snlist | A serial number list containing the cubes to be adjusted. |
printSummary | If summaries should be printed each iteration. |
Definition at line 282 of file BundleAdjust.cpp.
References Isis::SerialNumberList::add(), Isis::Control::fileName(), and Isis::Image::fileName().
Isis::BundleAdjust::~BundleAdjust | ( | ) |
Destroys BundleAdjust object, deallocates pointers (if we have ownership), and frees variables from cholmod library.
Definition at line 330 of file BundleAdjust.cpp.
|
slot |
Flag to abort when bundle is threaded.
Flag is set outside the bundle thread, typically by the gui thread.
Definition at line 707 of file BundleAdjust.cpp.
Referenced by Isis::JigsawRunWidget::closeEvent().
|
private |
Performs the matrix multiplication nj = nj + alpha (Q x n2).
alpha | A constant multiplier. |
Q | A sparse block matrix. |
n2 | A vector. |
nj | The output accumulation vector. |
Definition at line 1533 of file BundleAdjust.cpp.
|
private |
Apply parameter corrections for solution.
Definition at line 1944 of file BundleAdjust.cpp.
|
private |
Create a BundleSolutionInfo containing the settings and results from the bundle adjustment.
Definition at line 1029 of file BundleAdjust.cpp.
References Isis::BundleSolutionInfo::setRunTime().
|
private |
Compute inverse of normal equations matrix for CHOLMOD.
The inverse is stored in m_normalInverse.
@TODO This seems to be unused. JAM
Definition at line 1757 of file BundleAdjust.cpp.
|
slot |
Return the updated instrument pointing table for the ith cube in the cube list given to the constructor.
This is only valid for ISIS camera model cubes
i | The index of the cube |
Definition at line 2831 of file BundleAdjust.cpp.
Referenced by Isis::JigsawRunWidget::on_JigsawAcceptButton_clicked().
|
private |
Compute Bundle statistics and store them in m_bundleResults.
Sets: m_rmsImageSampleResiduals m_rmsImageLineResiduals m_rmsImageResiduals
m_rmsImageXSigmas m_rmsImageYSigmas m_rmsImageZSigmas m_rmsImageRASigmas m_rmsImageDECSigmas m_rmsImageTWISTSigmas
m_maxSigmaLatitude m_maxSigmaLatitudePointId m_maxSigmaLongitude m_maxSigmaLongitudePointId m_maxSigmaRadius m_maxSigmaRadiusPointId
m_minSigmaLatitude m_minSigmaLatitudePointId m_minSigmaLongitude m_minSigmaLongitudePointId m_minSigmaRadius m_minSigmaRadiusPointId
m_rmsSigmaLat m_rmsSigmaLon m_rmsSigmaRad
Definition at line 3031 of file BundleAdjust.cpp.
References Isis::Statistics::AddData(), Isis::Distance::meters(), and Isis::Statistics::Rms().
|
private |
Compute partial derivatives and weighted residuals for a measure.
coeffTarget, coeffImage, coeffPoint3D, and coeffRHS will be filled with the different partial derivatives.
coeffTarget | A matrix that will contain target body partial derivatives. |
coeffImage | A matrix that will contain camera position and orientation partial derivatives. |
coeffPoint3D | A matrix that will contain point lat, lon, and radius partial derivatives. |
coeffRHS | A vector that will contain weighted x,y residuals. |
measure | The measure that partials are being computed for. |
point | The point containing measure. |
IException::User | "Unable to map apriori surface point for measure" |
Definition at line 1853 of file BundleAdjust.cpp.
References Isis::BundleControlPoint::adjustedSurfacePoint(), Isis::BundleMeasure::camera(), Isis::BundleMeasure::cubeSerialNumber(), Isis::Camera::GetCameraType(), Isis::CameraGroundMap::GetXY(), Isis::Camera::GroundMap(), Isis::BundleControlPoint::id(), Isis::BundleMeasure::line(), Isis::BundleMeasure::parentBundleObservation(), Isis::BundleMeasure::sample(), and Isis::Camera::SetImage().
|
private |
Compute rejection limit.
Computes the median and the median absolute deviation (M.A.D.) of the residuals. Then, sets the rejection limit in m_bundleResults to median + RejectionMultiplier * M.A.D.
@TODO should this be in BundleResults?
Definition at line 2147 of file BundleAdjust.cpp.
|
private |
This method computes the focal plane residuals for the measures.
Definition at line 2010 of file BundleAdjust.cpp.
|
slot |
Returns a pointer to the output control network.
Definition at line 2773 of file BundleAdjust.cpp.
|
private |
Error propagation for solution.
IException::User | "Input data and settings are not sufficiently stable for error propagation." |
Definition at line 2425 of file BundleAdjust.cpp.
References Isis::iTime::CurrentLocalTime(), Isis::SparseBlockColumnMatrix::numberOfColumns(), Isis::SparseBlockColumnMatrix::numberOfRows(), and Isis::SurfacePoint::SetMatrix().
|
slot |
Return the ith filename in the cube list file given to constructor.
i | The index of the cube. |
Definition at line 2806 of file BundleAdjust.cpp.
|
private |
Flags outlier measures and control points.
@TODO How should we handle points with few measures.
Definition at line 2246 of file BundleAdjust.cpp.
|
private |
Form the auxilary normal equation matrices for a measure.
N22, N12, n1, and n2 will contain the auxilary matrices when completed.
N22 | The normal equation matrix for the point on the body. |
N12 | The normal equation matrix for the camera and the target body. |
n1 | The right hand side vector for the camera and the target body. |
n2 | The right hand side vector for the point on the body. |
coeffTarget | The matrix containing target body pertial derivatives. |
coeffImage | The matrix containing camera position and orientation partial derivatives. |
coeffPoint3D | The matrix containing point lat, lon, and radius partial derivatives. |
coeffRHS | The vector containing weighted x,y residuals. |
observationIndex | The index of the observation containing the measure that the partial derivative matrices are for. |
Definition at line 1179 of file BundleAdjust.cpp.
References Isis::SparseBlockColumnMatrix::insertMatrixBlock().
|
private |
Form the least-squares normal equations matrix via cholmod.
Each BundleControlPoint will stores its Q matrix and NIC vector once finished. The covariance matrix for each point will be stored in its adjusted surface point.
Definition at line 1050 of file BundleAdjust.cpp.
References Isis::SparseBlockColumnMatrix::wipe().
|
private |
Compute the Q matrix and NIC vector for a control point.
The inputs N22, N12, and n2 come from calling formMeasureNormals() with the control point's measures. The Q matrix and NIC vector are stored in the BundleControlPoint. R = N12 x Q is accumulated into m_sparseNormals.
N22 | The normal equation matrix for the point on the body. |
N12 | The normal equation matrix for the camera and the target body. |
n2 | The right hand side vector for the point on the body. |
nj | The output right hand side vector. |
bundleControlPoint | The control point that the Q matrixs are NIC vector are being formed for. |
Definition at line 1315 of file BundleAdjust.cpp.
References Isis::SurfacePoint::SetMatrix(), and Isis::SparseBlockRowMatrix::zeroBlocks().
|
private |
Apply weighting for spacecraft position, velocity, acceleration and camera angles, angular velocities, angular accelerations if so stipulated (legalese).
n1 | The right hand side vector for the camera and the target body. |
nj | The right hand side vector |
Definition at line 1387 of file BundleAdjust.cpp.
|
private |
Free CHOLMOD library variables.
Frees m_cholmodTriplet, m_cholmodNormal, and m_L. Calls cholmod_finish when complete.
Definition at line 676 of file BundleAdjust.cpp.
This method returns the image list used in the bundle adjust.
If a QList<ImageList *> was passed into the constructor then it uses that list, otherwise it constructs the QList using the m_serialNumberList
Definition at line 2376 of file BundleAdjust.cpp.
References Isis::ImageList::append(), and Isis::Image::closeCube().
|
private |
Initialize all solution parameters.
This method is called by constructors to
progress | A pointer to the progress of creating the cameras. |
IException::Programmer | "In BundleAdjust::init(): image is null." |
IException::Programmer | "In BundleAdjust::init(): observation is null." |
Definition at line 372 of file BundleAdjust.cpp.
References Isis::Camera::Camera(), Isis::SurfacePoint::GetLocalRadius(), and Isis::Distance::meters().
|
private |
Initializations for CHOLMOD sparse matrix package.
Calls cholmod_start, sets m_cholmodCommon options.
Definition at line 604 of file BundleAdjust.cpp.
References Isis::cholmodErrorHandler().
|
private |
Initialize Normal Equations matrix (m_sparseNormals).
Ken NOTE: Currently we are explicitly setting the start column for each block in the normal equations matrix below. I think it should be possible (and relatively easy) to make the m_sparseNormals smart enough to set the start column of a column block automatically when it is added to the matrix.
Definition at line 634 of file BundleAdjust.cpp.
|
private |
Dedicated quick inverse of 3x3 matrix.
m | The 3x3 matrix to invert. Overwritten with the inverse. |
@TODO Move to LinearAlgebra
Definition at line 1806 of file BundleAdjust.cpp.
bool Isis::BundleAdjust::isAborted | ( | ) |
Returns if the BundleAdjust has been aborted.
Definition at line 2959 of file BundleAdjust.cpp.
Referenced by Isis::JigsawRunWidget::notifyThreadFinished().
|
slot |
Returns if the BundleAdjust converged.
Definition at line 2949 of file BundleAdjust.cpp.
|
slot |
Returns what iteration the BundleAdjust is currently on.
Definition at line 2816 of file BundleAdjust.cpp.
|
private |
Creates an iteration summary and an iteration group for the solution summary.
Definition at line 2880 of file BundleAdjust.cpp.
References Isis::toString().
|
slot |
Returns the iteration summary string.
Definition at line 2971 of file BundleAdjust.cpp.
|
private |
Load sparse normal equations matrix into CHOLMOD triplet.
Blocks from the sparse block normal matrix are loaded into a CHOLMOD triplet. Before the triplet can be used with CHOLMOD, it must be converted to a CHOLMOD sparse matrix via cholmod_triplet_to_sparse.
Definition at line 1643 of file BundleAdjust.cpp.
References Isis::SparseBlockColumnMatrix::startColumn().
|
slot |
Return the updated model state for the ith cube in the cube list given to the constructor.
This is only valid for CSM cubes.
i | The index of the cube to get the model state for |
Definition at line 2859 of file BundleAdjust.cpp.
References Isis::Camera::Camera(), Isis::Camera::GetCameraType(), Isis::CSMCamera::getModelState(), and Isis::toString().
|
slot |
Returns the number of images.
Definition at line 2793 of file BundleAdjust.cpp.
References Isis::SerialNumberList::size().
|
slot |
Slot for deltack and jigsaw to output the bundle status.
status | The bundle status string to output. |
Definition at line 2985 of file BundleAdjust.cpp.
|
private |
Perform the matrix multiplication C = N12 x Q.
The result, C, is stored in m_sparseNormals.
N12 | A sparse block matrix. |
Q | A sparse block matrix |
Definition at line 1488 of file BundleAdjust.cpp.
|
private |
Perform the matrix multiplication Q = N22 x N12(transpose)
N22 | A symmetric matrix |
N12 | A sparse block matrix |
Q | The output sparse block matrix |
Definition at line 1458 of file BundleAdjust.cpp.
References Isis::SparseBlockRowMatrix::insertMatrixBlock().
|
slot |
Returns a pointer to the serial number list.
Definition at line 2783 of file BundleAdjust.cpp.
|
slot |
Compute the least squares bundle adjustment solution using Cholesky decomposition.
Definition at line 726 of file BundleAdjust.cpp.
References Isis::IException::errorType(), Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), and Isis::SurfacePoint::ResetLocalRadius().
BundleSolutionInfo * Isis::BundleAdjust::solveCholeskyBR | ( | ) |
Compute the least squares bundle adjustment solution using Cholesky decomposition.
@TODO make solveCholesky return a BundleSolutionInfo object and delete this placeholder ???
Definition at line 697 of file BundleAdjust.cpp.
|
private |
Compute the solution to the normal equations using the CHOLMOD library.
IException::Programmer | "CHOLMOD: Failed to load Triplet matrix" |
Definition at line 1572 of file BundleAdjust.cpp.
References Isis::toString().
|
slot |
Return the updated instrument position table for the ith cube in the cube list given to the constructor.
This is only valid for ISIS camera model cubes
i | The index of the cube |
Definition at line 2846 of file BundleAdjust.cpp.
Referenced by Isis::JigsawRunWidget::on_JigsawAcceptButton_clicked().
|
private |
control network validation - on the very real chance that the net has not been checked before running the bundle
checks implemented for ... (1) images with 0 or 1 measures
IException::User | "Images with one or less measures:" |
Definition at line 566 of file BundleAdjust.cpp.
References Isis::toString().
|
private |
Compute the residuals for each adjusted point and store adjustment results in m_bundleResults.
Definition at line 2118 of file BundleAdjust.cpp.
|
private |
!< Contains information about the target body.
If the bundle should abort.
Definition at line 469 of file BundleAdjust.h.
|
private |
!< Vector of control points.
Contains only non-ignored control points from the control net.
Definition at line 463 of file BundleAdjust.h.
|
private |
Stores the results of the bundle adjust.
Definition at line 452 of file BundleAdjust.h.
|
private |
Contains the solve settings.
Definition at line 451 of file BundleAdjust.h.
|
private |
!< The CHOLMOD triplet representation of the sparse normal equations matrix.
Created from m_sparseNormals and then used to create m_cholmodNormal.
Definition at line 510 of file BundleAdjust.h.
|
private |
!< The sparse block normal equations matrix.
Used to populate m_cholmodTriplet and for error propagation.
Definition at line 504 of file BundleAdjust.h.
|
private |
!< If the iteration summaries should be output to the log file.
Definition at line 475 of file BundleAdjust.h.
|
private |
The control net filename.
Definition at line 458 of file BundleAdjust.h.
|
private |
Output control net.
Definition at line 457 of file BundleAdjust.h.
|
private |
!< The lower triangular L matrix from Cholesky decomposition.
Created from m_cholmodNormal by cholmod_factorize.
Definition at line 519 of file BundleAdjust.h.
|
private |
The current iteration.
Definition at line 479 of file BundleAdjust.h.
|
private |
!< The CHOLMOD sparse normal equations matrix used by cholmod_factorize to solve the system.
Created from m_cholmodTriplet.
Definition at line 515 of file BundleAdjust.h.
|
private |
!< The lists of images used in the bundle.
Inverse of the normal equations matrix. Set by cholmodInverse.
Definition at line 494 of file BundleAdjust.h.
|
private |
number of image-related partials.
Definition at line 480 of file BundleAdjust.h.
|
private |
!< The image parameter solution vector.
Definition at line 522 of file BundleAdjust.h.
|
private |
!< Summary of the most recently completed iteration.
Definition at line 472 of file BundleAdjust.h.
|
private |
!< If the serial number lists need to be deleted by the destructor.
The rank of the system.
Definition at line 478 of file BundleAdjust.h.
|
private |
!< Contains object parameters, statistics, and workspace used by the CHOLMOD library.
Definition at line 498 of file BundleAdjust.h.
|
private |
!< Vector of observations.
Each observation contains one or more images. List of image serial numbers.
Definition at line 466 of file BundleAdjust.h.
|
private |
!< The right hand side of the normal equations.
Definition at line 500 of file BundleAdjust.h.
|
private |
x residual statistics.
Definition at line 454 of file BundleAdjust.h.
|
private |
xy residual statistics.
Definition at line 456 of file BundleAdjust.h.
|
private |
y residual statistics.
Definition at line 455 of file BundleAdjust.h.
U.S. Department of the Interior | U.S. Geological Survey ISIS | Privacy & Disclaimers | Astrogeology Research Program To contact us, please post comments and questions on the USGS Astrogeology Discussion Board To report a bug, or suggest a feature go to: ISIS Github File Modified: 07/13/2023 15:18:02 |