Isis 3 Programmer Reference
BundleSolutionInfo.h
1#ifndef BundleSolutionInfo_h
2#define BundleSolutionInfo_h
3
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
161 Q_OBJECT
162 public:
164 FileName controlNetworkFileName,
165 BundleResults outputStatistics,
166 QList<ImageList *> imgList,
167 QObject *parent = 0);
169 FileName controlNetworkFileName,
170 FileName lidarDataFileName,
171 BundleResults outputStatistics,
172 QList<ImageList *> imgList,
173 QObject *parent = 0);
175 QXmlStreamReader *xmlReader,
176 QObject *parent = 0);
177 void readBundleSolutionInfo(QXmlStreamReader *xmlReader);
178 BundleSolutionInfo() = default;
179
181
183 QString savedImagesFilename();
184 QString savedPointsFilename();
185 QString savedResidualsFilename();
186
187 void addAdjustedImages(ImageList *images);
188 void setOutputStatistics(BundleResults statisticsResults);
189 void setOutputControl(Control *outputControl);
190 void setOutputControlName(QString name);
191 void setRunTime(QString runTime);
192 void setName(QString name);
193
194 QList<ImageList *> adjustedImages() const;
195 QString id() const;
196 QString inputControlNetFileName() const;
197 QString outputControlNetFileName() const;
198 Control *control() const;
199 QString outputControlName() const;
200 QString inputLidarDataFileName() const;
203 QList<ImageList *> imageList();
204 QString runTime() const;
205 QString name() const;
206
207
208 bool outputImagesCSVHeader(std::ofstream &fpOut, BundleObservationQsp observations);
209 bool outputHeader(std::ofstream &fpOut);
210 bool outputText();
211 bool outputImagesCSV();
212 bool outputPointsCSV();
213 bool outputLidarCSV();
214 bool outputResiduals();
215
216 void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
217
219 SurfacePoint::CoordIndex coordInx) const;
220
221 public slots:
222 void updateFileName(Project *);
223
224 private:
225
228 QUuid *m_id;
229 QString m_name;
230 QString m_runTime;
233 QString m_outputControlName;
238 QList<ImageList *> *m_images;
239 QList<ImageList *> *m_adjustedImages;
240
241 // In theory the path in the BundleSettings can change while running. So we save the
242 // filenames actually used when the most recent save of the file was done.
243 QString m_txtBundleOutputFilename;
244 QString m_csvSavedImagesFilename;
245 QString m_csvSavedPointsFilename;
246 QString m_csvSavedResidualsFilename;
247
248 // BundleSolutionInfo *m_xmlHandlerBundleSolutionInfo; //!< The bundleSolutionInfo object
249 Project *m_xmlHandlerProject; // TODO does xml stuff need project???
251
252 }; // end BundleSolutionInfo class
253
254 void setStringAttribute(int locationId, QString locationName,
255 QString attributeName, QString attributeValue);
256 QString getStringAttribute(int locationId, QString locationName, QString attributeName);
257}; // end namespace Isis
258
259Q_DECLARE_METATYPE(Isis::BundleSolutionInfo *);
260
261#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.
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.
Definition Apollo.h:16