Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Isis 3 Programmer Reference
BundleSolutionInfo.h
1#ifndef BundleSolutionInfo_h
2#define BundleSolutionInfo_h
3
9
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <QList>
13#include <QObject>
14#include <QString>
15
16#include "BundleObservation.h"
17#include "BundleSettings.h"
18#include "LidarData.h"
19#include "SurfacePoint.h"
20
21class QDataStream;
22class QUuid;
23class QXmlStreamWriter;
24class QXmlStreamReader;
25
26namespace Isis {
27 class BundleResults;
28 class Control;
29 class FileName;
30 class ImageList;
31 class Project; //TODO does xml stuff need project???
32 class PvlObject;
33
173 Q_OBJECT
174 public:
176 FileName controlNetworkFileName,
177 BundleResults outputStatistics,
178 QList<ImageList *> imgList,
179 QObject *parent = 0);
181 FileName controlNetworkFileName,
182 FileName lidarDataFileName,
183 BundleResults outputStatistics,
184 QList<ImageList *> imgList,
185 QObject *parent = 0);
187 QXmlStreamReader *xmlReader,
188 QObject *parent = 0);
189 void readBundleSolutionInfo(QXmlStreamReader *xmlReader);
190 BundleSolutionInfo() = default;
191
193
195 QString savedImagesFilename();
196 QString savedPointsFilename();
197 QString savedResidualsFilename();
198
199 void addAdjustedImages(ImageList *images);
200 void setOutputStatistics(BundleResults statisticsResults);
201 void setOutputControl(Control *outputControl);
202 void setOutputControlName(QString name);
203 void setRunTime(QString runTime);
204 void setName(QString name);
205
207 QString id() const;
208 QString inputControlNetFileName() const;
209 QString outputControlNetFileName() const;
210 Control *control() const;
211 QString outputControlName() const;
212 QString inputLidarDataFileName() const;
216 QString runTime() const;
217 QString name() const;
218
219
220 bool outputImagesCSVHeader(std::ofstream &fpOut, BundleObservationQsp observations);
221 bool outputHeader(std::ofstream &fpOut);
222 bool outputText();
223 bool outputImagesCSV();
224 bool outputPointsCSV();
225 bool outputLidarCSV();
226 bool outputResiduals();
227
228 void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
229
231 SurfacePoint::CoordIndex coordInx) const;
232
233 public slots:
234 void updateFileName(Project *);
235
236 private:
237
240 QUuid *m_id;
241 QString m_name;
242 QString m_runTime;
245 QString m_outputControlName;
252
253 // In theory the path in the BundleSettings can change while running. So we save the
254 // filenames actually used when the most recent save of the file was done.
255 QString m_txtBundleOutputFilename;
256 QString m_csvSavedImagesFilename;
257 QString m_csvSavedPointsFilename;
258 QString m_csvSavedResidualsFilename;
259
260 // BundleSolutionInfo *m_xmlHandlerBundleSolutionInfo; //!< The bundleSolutionInfo object
261 Project *m_xmlHandlerProject; // TODO does xml stuff need project???
263
264 }; // end BundleSolutionInfo class
265
266 void setStringAttribute(int locationId, QString locationName,
267 QString attributeName, QString attributeValue);
268 QString getStringAttribute(int locationId, QString locationName, QString attributeName);
269}; // end namespace Isis
270
271Q_DECLARE_METATYPE(Isis::BundleSolutionInfo *);
272
273#endif // BundleSolutionInfo_h
A container class for statistical results from a BundleAdjust solution.
Container class for BundleAdjustment results.
bool outputResiduals()
Outputs image coordinate residuals to a csv file.
bool outputImagesCSV()
Outputs the bundleout_images.csv file which contains Jigsaw data about the images within each observa...
BundleSettingsQsp m_settings
Bundle settings.
QString inputControlNetFileName() const
Returns the name of the input control network.
QString m_runTime
Run time of the bundle adjustment.
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Saves the BundleSolutionInfo to the project.
QString inputLidarDataFileName() const
Returns name of input lidar data file (if any).
void addAdjustedImages(ImageList *images)
Adds a list of images that were adjusted (their labels were updated).
QString savedPointsFilename()
Returns filename of output bundle points csv file.
QUuid * m_id
A unique ID for this BundleSolutionInfo object (useful for others to reference this object when savin...
BundleSettingsQsp bundleSettings()
Returns bundle settings.
void setName(QString name)
Sets the name of the bundle.
QList< ImageList * > * m_adjustedImages
Adjusted image list.
FileName * m_inputControlNetFileName
Input control network file name.
QString m_xmlHandlerCharacters
List of characters that have been handled.
void setOutputControl(Control *outputControl)
Returns the name of the output control network.
BundleSolutionInfo(BundleSettingsQsp inputSettings, FileName controlNetworkFileName, BundleResults outputStatistics, QList< ImageList * > imgList, QObject *parent=0)
Constructor.
QList< ImageList * > adjustedImages() const
Returns the list of images that were adjusted after a bundle.
QList< ImageList * > * m_images
Input image list.
FileName * m_inputLidarDataFileName
Input lidar data file name.
QString surfacePointCoordName(SurfacePoint::CoordinateType type, SurfacePoint::CoordIndex coordInx) const
Determine the control point coordinate name.
QString savedResidualsFilename()
Returns filename of output bundle residuals csv file.
void setOutputControlName(QString name)
Sets m_outputControlName.
BundleResults bundleResults()
Returns the bundle results.
QString id() const
Get a unique, identifying string associated with this BundleSolutionInfo object.
void setRunTime(QString runTime)
Sets the run time, and the name if a name is not already set.
bool outputPointsCSV()
Outputs point data to a csv file.
QString outputControlName() const
Returns m_outputControlName.
void updateFileName(Project *)
TODO: change description below to something more like english.
QString outputControlNetFileName() const
Returns the name of the output control network.
BundleResults * m_statisticsResults
Bundle statistical results.
QString runTime() const
Returns the run time.
bool outputHeader(std::ofstream &fpOut)
Output header for bundle results file.
LidarData * m_outputLidarDataSet
QList of adjusted lidar points.
QString name() const
Returns the name of the bundle.
QString savedBundleOutputFilename()
Returns bundleout text filename.
bool outputText()
Outputs a text file with the results of the BundleAdjust.
Control * m_outputControl
Output control.
QString savedImagesFilename()
Returns filename of output bundle images csv file.
QList< ImageList * > imageList()
Returns the images used in the bundle.
void setOutputStatistics(BundleResults statisticsResults)
Sets the stat results.
QString m_name
Name of the bundle. Defaults to the id.
bool outputImagesCSVHeader(std::ofstream &fpOut, BundleObservationQsp observations)
Outputs the header for the bundleout_images.csv file.
Control * control() const
Returns bundle output Control object.
bool outputLidarCSV()
Outputs lidar data to a csv file.
This represents an ISIS control net in a project-based GUI interface.
Definition Control.h:65
File name manipulation and expansion.
Definition FileName.h:100
Internalizes a list of images and allows for operations on the entire list.
Definition ImageList.h:53
LidarData class.
Definition LidarData.h:49
The main project for ipce.
Definition Project.h:287
Contains Pvl Groups and Pvl Objects.
Definition PvlObject.h:61
CoordinateType
Defines the coordinate typ, units, and coordinate index for some of the output methods.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
QSharedPointer< BundleSettings > BundleSettingsQsp
Definition for a BundleSettingsQsp, a shared pointer to a BundleSettings object.
QSharedPointer< BundleObservation > BundleObservationQsp
Typdef for BundleObservation QSharedPointer.