Isis Developer Reference
Isis::BundleAdjust Class Reference

An image bundle adjustment object. More...

#include <BundleAdjust.h>

Inheritance diagram for Isis::BundleAdjust:
Inheritance graph
Collaboration diagram for Isis::BundleAdjust:
Collaboration graph

Public Slots

bool solveCholesky ()
 Compute the least squares bundle adjustment solution using Cholesky decomposition.
 
void abortBundle ()
 Flag to abort when bundle is threaded.
 
void outputBundleStatus (QString status)
 Slot for deltack and jigsaw to output the bundle status.
 
ControlNetQsp controlNet ()
 Returns a pointer to the output control network.
 
LidarDataQsp lidarData ()
 Returns a pointer to the output lidar data file.
 
SerialNumberListserialNumberList ()
 Returns a pointer to the serial number list.
 
QString fileName (int index)
 Return the ith filename in the cube list file given to constructor.
 
QString iterationSummaryGroup () const
 Returns the iteration summary string.
 
bool isConverged ()
 Returns if the BundleAdjust converged.
 
Table cMatrix (int index)
 Return the updated instrument pointing table for the ith cube in the cube list given to the constructor.
 
Table spVector (int index)
 Return the updated instrument position table for the ith cube in the cube list given to the constructor.
 
QString modelState (int index)
 Return the updated model state for the ith cube in the cube list given to the constructor.
 
int numberOfImages () const
 Returns the number of images.
 
double iteration () const
 Returns what iteration the BundleAdjust is currently on.
 

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.
 
 BundleAdjust (BundleSettingsQsp bundleSettings, const QString &cnetFile, const QString &cubeList, const QString &lidarDataFile, bool printSummary=true)
 Construct a BundleAdjust object from the given settings, control network file, cube list, and lidar point data.
 
 BundleAdjust (BundleSettingsQsp bundleSettings, QString &cnet, SerialNumberList &snlist, bool printSummary=true)
 Construct a BundleAdjust object with held cubes.
 
 BundleAdjust (BundleSettingsQsp bundleSettings, Control &cnet, SerialNumberList &snlist, bool bPrintSummary)
 Constructs a BundleAdjust object using a Control object.
 
 BundleAdjust (BundleSettingsQsp bundleSettings, ControlNet &cnet, SerialNumberList &snlist, bool printSummary=true)
 Constructs a BundleAdjust object using a ControlNet object.
 
 BundleAdjust (BundleSettingsQsp bundleSettings, ControlNetQsp cnet, const QString &cubeList, bool printSummary=true)
 Constructs a BundleAdjust from an already created ControlNet within a shared pointer.
 
 BundleAdjust (BundleSettingsQsp bundleSettings, Control &control, QList< ImageList * > imgList, bool printSummary)
 Thread safe constructor.
 
 ~BundleAdjust ()
 Destroys BundleAdjust object, deallocates pointers (if we have ownership), and frees variables from cholmod library.
 
BundleSolutionInfosolveCholeskyBR ()
 Compute the least squares bundle adjustment solution using Cholesky decomposition.
 
QList< ImageList * > imageLists ()
 This method returns the image list used in the bundle adjust.
 
bool isAborted ()
 Returns if the BundleAdjust has been aborted.
 

Detailed Description

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.

Author
2006-05-30 Jeff Anderson, Debbie A. Cook, and Tracie Sucharski

Constructor & Destructor Documentation

◆ BundleAdjust() [1/7]

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.

Parameters
bundleSettingsA shared pointer to the BundleSettings to be used.
cnetFileThe filename of the control network to be used.
cubeListThe list of filenames of the cubes to be adjusted.
printSummaryIf summaries should be printed each iteration.

References Isis::BundleResults::setOutputControlNet().

◆ BundleAdjust() [2/7]

Isis::BundleAdjust::BundleAdjust ( BundleSettingsQsp bundleSettings,
const QString & cnetFile,
const QString & cubeList,
const QString & lidarDataFile,
bool printSummary = true )

Construct a BundleAdjust object from the given settings, control network file, cube list, and lidar point data.

Parameters
bundleSettingsA shared pointer to the BundleSettings to be used.
cnetFileThe filename of the control network to be used.
cubeListThe list of filenames of the cubes to be adjusted.
lidarDataFileLidar point dataset filename.
printSummaryIf summaries should be printed each iteration.

References Isis::BundleResults::setOutputControlNet(), and Isis::BundleResults::setOutputLidarData().

◆ BundleAdjust() [3/7]

Isis::BundleAdjust::BundleAdjust ( BundleSettingsQsp bundleSettings,
QString & cnetFile,
SerialNumberList & snlist,
bool printSummary = true )

Construct a BundleAdjust object with held cubes.

Parameters
bundleSettingsA shared pointer to the BundleSettings to be used.
cnetFileThe filename of the control network to be used.
cubeListThe list of filenames of the cubes to be adjusted.
heldListThe list of filenames of the held cubes. Held cubes must be in both heldList and cubeList.
printSummaryIf summaries should be printed each iteration.

References Isis::BundleResults::setOutputControlNet().

◆ BundleAdjust() [4/7]

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.

Parameters
bundleSettingsA shared pointer to the BundleSettings to be used.
cnetThe Control object whose control network will be copied. The Control will not be modified by the BundleAdjust.
snlistA serial number list containing the cubes to be adjusted.
printSummaryIf summaries should be printed each iteration.

References Isis::BundleResults::setOutputControlNet().

◆ BundleAdjust() [5/7]

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.

Parameters
bundleSettingsA shared pointer to the BundleSettings to be used.
cnetThe ControlNet that will be copied. The original ControlNet will not be modified.
snlistA serial number list containing the cubes to be adjusted.
printSummaryIf summaries should be printed each iteration.

References Isis::BundleResults::setOutputControlNet().

◆ BundleAdjust() [6/7]

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.

Parameters
bundleSettingsQSharedPointer to the bundle settings to use.
cnetQSharedPointer to the control net to adjust.
cubeListQString name of list of cubes to create serial numbers for.
printSummaryBoolean indicating whether to print application output summary.

References Isis::BundleResults::setOutputControlNet().

◆ BundleAdjust() [7/7]

Isis::BundleAdjust::BundleAdjust ( BundleSettingsQsp bundleSettings,
Control & control,
QList< ImageList * > imgLists,
bool printSummary )

Thread safe constructor.

Parameters
bundleSettingsA shared pointer to the BundleSettings to be used.
controlThe Control object whose control network will be copied. The Control will not be modified by the BundleAdjust.
snlistA serial number list containing the cubes to be adjusted.
printSummaryIf summaries should be printed each iteration.

References Isis::SerialNumberList::add(), Isis::Control::fileName(), Isis::Image::fileName(), and Isis::BundleResults::setOutputControlNet().

◆ ~BundleAdjust()

Isis::BundleAdjust::~BundleAdjust ( )

Destroys BundleAdjust object, deallocates pointers (if we have ownership), and frees variables from cholmod library.

Member Function Documentation

◆ abortBundle

void Isis::BundleAdjust::abortBundle ( )
slot

Flag to abort when bundle is threaded.

Flag is set outside the bundle thread, typically by the gui thread.

Referenced by Isis::JigsawRunWidget::closeEvent().

◆ cMatrix

Table Isis::BundleAdjust::cMatrix ( int i)
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

Parameters
iThe index of the cube
Returns
Table The InstrumentPointing table for the cube.

◆ controlNet

ControlNetQsp Isis::BundleAdjust::controlNet ( )
slot

Returns a pointer to the output control network.

Returns
ControlNetQsp A shared pointer to the output control network.

◆ error

void Isis::BundleAdjust::error ( QString )
signal

◆ fileName

QString Isis::BundleAdjust::fileName ( int i)
slot

Return the ith filename in the cube list file given to constructor.

Parameters
iThe index of the cube.
Returns
QString The filename of the cube.

References Isis::SerialNumberList::fileName().

◆ finished

void Isis::BundleAdjust::finished ( )
signal

Referenced by solveCholesky().

◆ imageLists()

QList< ImageList * > Isis::BundleAdjust::imageLists ( )

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

Returns
QList<ImageList *> The ImageLists used for the bundle adjust

References _FILEINFO_, Isis::Image::closeCube(), Isis::SerialNumberList::fileName(), Isis::IException::Programmer, and Isis::SerialNumberList::size().

◆ isAborted()

bool Isis::BundleAdjust::isAborted ( )

Returns if the BundleAdjust has been aborted.

Returns
bool If the BundleAdjust was aborted.

Referenced by Isis::JigsawRunWidget::notifyThreadFinished().

◆ isConverged

bool Isis::BundleAdjust::isConverged ( )
slot

Returns if the BundleAdjust converged.

Returns
bool If the BundleAdjust converged.

References Isis::BundleResults::converged().

◆ iteration

double Isis::BundleAdjust::iteration ( ) const
slot

Returns what iteration the BundleAdjust is currently on.

Returns
double The current iteration number.

◆ iterationSummaryGroup

QString Isis::BundleAdjust::iterationSummaryGroup ( ) const
slot

Returns the iteration summary string.

Returns
QString the iteration summary string.
See also
iterationSummary()

◆ iterationUpdate

void Isis::BundleAdjust::iterationUpdate ( int )
signal

Referenced by solveCholesky().

◆ lidarData

LidarDataQsp Isis::BundleAdjust::lidarData ( )
slot

Returns a pointer to the output lidar data file.

Returns
LidarDataQsp A shared pointer to the output lidar data file.

◆ modelState

QString Isis::BundleAdjust::modelState ( int i)
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.

Parameters
iThe index of the cube to get the model state for
Returns
QString The updated CSM model state string

References _FILEINFO_, Isis::Camera::Csm, Isis::CSMCamera::getModelState(), Isis::IException::Programmer, and Isis::toString().

◆ numberOfImages

int Isis::BundleAdjust::numberOfImages ( ) const
slot

Returns the number of images.

Returns
int The number of images.

References Isis::SerialNumberList::size().

◆ outputBundleStatus

void Isis::BundleAdjust::outputBundleStatus ( QString status)
slot

Slot for deltack and jigsaw to output the bundle status.

Parameters
statusThe bundle status string to output.

References Isis::iApp.

Referenced by solveCholesky().

◆ pointUpdate

void Isis::BundleAdjust::pointUpdate ( int )
signal

◆ resultsReady

void Isis::BundleAdjust::resultsReady ( BundleSolutionInfo * bundleSolveInformation)
signal

Referenced by solveCholesky().

◆ serialNumberList

SerialNumberList * Isis::BundleAdjust::serialNumberList ( )
slot

Returns a pointer to the serial number list.

Returns
SerialNumberList* A pointer to the serial number list.

◆ solveCholesky

◆ solveCholeskyBR()

BundleSolutionInfo * Isis::BundleAdjust::solveCholeskyBR ( )

Compute the least squares bundle adjustment solution using Cholesky decomposition.

Returns
BundleSolutionInfo A container with settings and results from the adjustment.
See also
BundleAdjust::solveCholesky

References solveCholesky().

◆ spVector

Table Isis::BundleAdjust::spVector ( int i)
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

Parameters
iThe index of the cube
Returns
Table The InstrumentPosition table for the cube.

◆ statusBarUpdate

void Isis::BundleAdjust::statusBarUpdate ( QString )
signal

Referenced by solveCholesky().

◆ statusUpdate

void Isis::BundleAdjust::statusUpdate ( QString )
signal

Referenced by solveCholesky().


The documentation for this class was generated from the following files: