Isis 3 Programmer Reference
Isis::LidarData Class Reference

LidarData class. More...

#include <LidarData.h>

Collaboration diagram for Isis::LidarData:
Collaboration graph

Public Types

enum  Format { Binary , Json , Test }
 Enumerates the file formats for serializing the LidarData class. More...
 

Public Member Functions

 LidarData ()
 Default constructor.
 
void insert (QSharedPointer< LidarControlPoint > point)
 Adds a LidarControlPoint to the LidarData.
 
QSharedPointer< LidarControlPointpoint (QString pointId) const
 Gets a single LidarDataPoint by ID.
 
QList< QSharedPointer< LidarControlPoint > > points (bool sort=false) const
 Gets the list of Lidar data points optionally sorted .
 
void SetImages (SerialNumberList &list, Progress *progress=0)
 Creates the ControlNet's image camera's based on the list of Serial Numbers.
 
void SetImages (ControlNet &controlNet, Progress *progress=0)
 TODO: more detail below...
 
void read (FileName)
 Unserialize LidarData.
 
void write (FileName, Format)
 Serializes LidarData.
 
int numberLidarPoints ()
 Returns number of Lidar data points.
 
int numberSimultaneousMeasures ()
 Returns number of simultaneous lidar measures.
 
int numberAsynchronousMeasures ()
 Returns number of non-simultaneous lidar measures.
 
int numberMeasures ()
 Returns total number of lidar measures.
 
bool ValidateSerialNumber (QString serialNumber) const
 Does a check to ensure that the given serial number is contained within the network.
 
QList< ControlMeasure * > GetMeasuresInCube (QString serialNumber)
 Get all the measures pertaining to a given cube serial number.
 
QList< ControlMeasure * > GetValidMeasuresInCube (QString serialNumber)
 Get all the valid measures pertaining to a given cube serial number.
 
int GetNumberOfValidMeasuresInImage (const QString &serialNumber)
 Return the number of measures in image specified by serialNumber.
 
int GetNumberOfJigsawRejectedMeasuresInImage (const QString &serialNumber)
 Return the number of jigsaw rejected measures in image specified by serialNumber.
 

Private Attributes

QHash< QString, QSharedPointer< LidarControlPoint > > m_points
 hash of LidarControlPoints
 
QMap< QString, Isis::Camera * > p_cameraMap
 camera
 
QMap< QString, int > p_cameraValidMeasuresMap
 #measures
 
QMap< QString, int > p_cameraRejectedMeasuresMap
 #rejected measures
 
QVector< Isis::Camera * > p_cameraList
 vector of image# to camera
 
int m_numSimultaneousMeasures
 
int m_numAsynchronousMeasures
 

Detailed Description

LidarData class.

Author
2018-01-29 Ian Humphrey
History

2018-01-29 Ian Humphrey - original version.

2018-01-31 Tyler Wilson - Implemented Lidar::read(Filename &).

2018-01-31 Ian Humphrey - Added insert method to insert a LidarControlPoint into the LidarData. Added documentation for m_points.

2018-02-03 Ian Humphrey - Renamed read to readCsv. read() and write() methods support JSON or binary serialization. Added documentation to new Format enumeration.

2018-03-19 Debbie A. Cook - Added simultaneousImages, apriori variance/covariance matrix, adjusted point coordinates, and adjusted variance/covariance matrix to the read and write methods. Ref #5343.

2018-06-14 Ken Edmundson - Added typedef for QSharedPointer to LidarData object.

2019-02-23 Debbie A. Cook - Added sorting option to points() method with default being to not sort. References #5343.

Definition at line 49 of file LidarData.h.

Member Enumeration Documentation

◆ Format

Enumerates the file formats for serializing the LidarData class.

Enumerator
Binary 

Serializes to a binary (QByteArray) .dat file.

Json 

Serializes to a JSON .json file.

Test 

Serializes to an ordered JSON .json file for comparing to truth data.

Definition at line 53 of file LidarData.h.

Constructor & Destructor Documentation

◆ LidarData()

Isis::LidarData::LidarData ( )

Default constructor.

Definition at line 38 of file LidarData.cpp.

Member Function Documentation

◆ GetMeasuresInCube()

QList< ControlMeasure * > Isis::LidarData::GetMeasuresInCube ( QString serialNumber)

Get all the measures pertaining to a given cube serial number.

Returns
A list of all measures which are in a given cube

Definition at line 684 of file LidarData.cpp.

References m_points, point(), Isis::IException::Programmer, and ValidateSerialNumber().

Referenced by GetValidMeasuresInCube().

◆ GetNumberOfJigsawRejectedMeasuresInImage()

int Isis::LidarData::GetNumberOfJigsawRejectedMeasuresInImage ( const QString & serialNumber)

Return the number of jigsaw rejected measures in image specified by serialNumber.

Returns
Number of jigsaw rejected measures in image

Definition at line 655 of file LidarData.cpp.

References p_cameraRejectedMeasuresMap.

◆ GetNumberOfValidMeasuresInImage()

int Isis::LidarData::GetNumberOfValidMeasuresInImage ( const QString & serialNumber)

Return the number of measures in image specified by serialNumber.

Returns
Number of valid measures in image
History
2013-12-18 Tracie Sucharski - Renamed from GetNumberOfMeasuresInImage, it is returning a count of only valid measures (Ignore=False).

Definition at line 641 of file LidarData.cpp.

References GetValidMeasuresInCube(), p_cameraList, and p_cameraValidMeasuresMap.

◆ GetValidMeasuresInCube()

QList< ControlMeasure * > Isis::LidarData::GetValidMeasuresInCube ( QString serialNumber)

Get all the valid measures pertaining to a given cube serial number.

Returns
A list of all valid measures which are in a given cube

Definition at line 664 of file LidarData.cpp.

References GetMeasuresInCube().

Referenced by GetNumberOfValidMeasuresInImage().

◆ insert()

void Isis::LidarData::insert ( QSharedPointer< LidarControlPoint > point)

Adds a LidarControlPoint to the LidarData.

Parameters
QSharedPointer<LidarControlPoint>point LidarControlPoint to add.

Definition at line 49 of file LidarData.cpp.

References m_points, and point().

Referenced by read().

◆ numberAsynchronousMeasures()

int Isis::LidarData::numberAsynchronousMeasures ( )

Returns number of non-simultaneous lidar measures.

Returns
int Returns number of non-simultaneous lidar measures.

Definition at line 121 of file LidarData.cpp.

◆ numberLidarPoints()

int Isis::LidarData::numberLidarPoints ( )

Returns number of Lidar data points.

Returns
int Returns number of Lidar control points.

Definition at line 102 of file LidarData.cpp.

References m_points.

◆ numberMeasures()

int Isis::LidarData::numberMeasures ( )

Returns total number of lidar measures.

Returns
int Returns total number of lidar measures.

Definition at line 131 of file LidarData.cpp.

◆ numberSimultaneousMeasures()

int Isis::LidarData::numberSimultaneousMeasures ( )

Returns number of simultaneous lidar measures.

Returns
int Returns number of simultaneous lidar measures.

Definition at line 112 of file LidarData.cpp.

◆ point()

QSharedPointer< LidarControlPoint > Isis::LidarData::point ( QString pointId) const

Gets a single LidarDataPoint by ID.

Parameters
pointIdThe ID of the LidarDataPoint
Returns
QSharedPointer<LidarDataPoint> The LidarDataPoint matching the supplied ID

Definition at line 60 of file LidarData.cpp.

References m_points, point(), and Isis::IException::Programmer.

Referenced by GetMeasuresInCube(), insert(), and point().

◆ points()

QList< QSharedPointer< LidarControlPoint > > Isis::LidarData::points ( bool sort = false) const

Gets the list of Lidar data points optionally sorted .

Parameters
sortAn option to sort the list. The default is false (no sort).
Returns
QList<QSharedPointer<LidarControlPoint>> Returns list of Lidar control points.
History
2019-02-23 Debbie A Cook - Added optional argument to the points method to sort the list. See LidarControlPoint for the sorting functor. The default behavior has not changed for backward compatability. References #5343.

Definition at line 81 of file LidarData.cpp.

References m_points, and points().

Referenced by points(), and write().

◆ read()

void Isis::LidarData::read ( FileName lidarDataFile)

Unserialize LidarData.

This method unserializes LidarData from a JSON or binary (QByteArray) file. It will automatically determine if it is JSON or binary formatted data.

Parameters
FileNamelidarFile Name of the serialized LidarData file to read.
Exceptions
IException::UserThrows User exception if it cannot open the file passed.

Definition at line 281 of file LidarData.cpp.

References Isis::ControlPoint::Constrained, Isis::Angle::Degrees, insert(), Isis::Distance::Kilometers, p_cameraMap, and Isis::IException::User.

◆ SetImages() [1/2]

void Isis::LidarData::SetImages ( ControlNet & controlNet,
Progress * progress = 0 )

TODO: more detail below...

Assigns Isis::Camera pointers to LidarControlPoint measures.

Parameters
controlNetInput ControlNet
progressA pointer to the progress of creating the cameras
Exceptions
Isis::iException::User- "Lidar Control point measure does not have a cube with a matching serial number"
History
2019-02-06 Ken Edmundson - initial version.

Definition at line 148 of file LidarData.cpp.

References Isis::ControlNet::Camera(), Isis::ControlMeasure::GetCubeSerialNumber(), m_points, p_cameraList, p_cameraMap, p_cameraRejectedMeasuresMap, p_cameraValidMeasuresMap, and Isis::IException::User.

◆ SetImages() [2/2]

void Isis::LidarData::SetImages ( SerialNumberList & list,
Progress * progress = 0 )

Creates the ControlNet's image camera's based on the list of Serial Numbers.

Parameters
listThe list of Serial Numbers
progressA pointer to the progress of creating the cameras
Exceptions
Isis::iException::System- "Unable to create camera for cube file"
Isis::iException::User- "Control point measure does not have a cube with a matching serial number"
History

2009-01-06 Jeannie Walldren - Fixed typo in exception output.

2016-10-13 Ian Humphrey - Added initial check to see if cameras have already been set, and immediately return if yes. References #4293.

Definition at line 210 of file LidarData.cpp.

References Isis::Progress::CheckStatus(), Isis::CameraFactory::Create(), Isis::SerialNumberList::fileName(), Isis::ControlMeasure::GetCubeSerialNumber(), Isis::SerialNumberList::hasSerialNumber(), m_points, p_cameraList, p_cameraMap, p_cameraRejectedMeasuresMap, p_cameraValidMeasuresMap, Isis::SerialNumberList::serialNumber(), Isis::Progress::SetMaximumSteps(), Isis::Progress::SetText(), Isis::SerialNumberList::size(), Isis::IException::Unknown, and Isis::IException::User.

◆ ValidateSerialNumber()

bool Isis::LidarData::ValidateSerialNumber ( QString serialNumber) const

Does a check to ensure that the given serial number is contained within the network.

Parameters
serialNumberthe cube serial number to validate
Returns
bool If the serial number is contained in the network.

Definition at line 628 of file LidarData.cpp.

References p_cameraMap.

Referenced by GetMeasuresInCube().

◆ write()

void Isis::LidarData::write ( FileName outputFile,
LidarData::Format format )

Serializes LidarData.

This method serializes the LidarData to either a JSON or binary (QByteArray) file. If JSON, the file extension will be .json; otherwise (if binary), the file extension will be .dat.

Parameters
FileNameoutputFile Name of the file to serialize to.
LidarData::Formatformat Format of the serialized file (Json or Binary).
Exceptions
IException::UserThrows User exception if it cannot open the file for writing.

Definition at line 489 of file LidarData.cpp.

References Isis::Angle::Degrees, Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLocalRadius(), Isis::SurfacePoint::GetLongitude(), Json, Isis::Distance::kilometers(), Isis::Latitude::planetocentric(), points(), Isis::Longitude::positiveEast(), Test, and Isis::IException::User.

Member Data Documentation

◆ m_numAsynchronousMeasures

int Isis::LidarData::m_numAsynchronousMeasures
private

Definition at line 95 of file LidarData.h.

◆ m_numSimultaneousMeasures

int Isis::LidarData::m_numSimultaneousMeasures
private

Definition at line 94 of file LidarData.h.

◆ m_points

QHash<QString, QSharedPointer <LidarControlPoint> > Isis::LidarData::m_points
private

hash of LidarControlPoints

maps between serial# and...

Definition at line 85 of file LidarData.h.

Referenced by GetMeasuresInCube(), insert(), numberLidarPoints(), point(), points(), SetImages(), and SetImages().

◆ p_cameraList

QVector<Isis::Camera *> Isis::LidarData::p_cameraList
private

vector of image# to camera

Definition at line 92 of file LidarData.h.

Referenced by GetNumberOfValidMeasuresInImage(), SetImages(), and SetImages().

◆ p_cameraMap

QMap<QString, Isis::Camera *> Isis::LidarData::p_cameraMap
private

camera

Definition at line 88 of file LidarData.h.

Referenced by read(), SetImages(), SetImages(), and ValidateSerialNumber().

◆ p_cameraRejectedMeasuresMap

QMap<QString, int> Isis::LidarData::p_cameraRejectedMeasuresMap
private

#rejected measures

Definition at line 90 of file LidarData.h.

Referenced by GetNumberOfJigsawRejectedMeasuresInImage(), SetImages(), and SetImages().

◆ p_cameraValidMeasuresMap

QMap<QString, int> Isis::LidarData::p_cameraValidMeasuresMap
private

#measures

Definition at line 89 of file LidarData.h.

Referenced by GetNumberOfValidMeasuresInImage(), SetImages(), and SetImages().


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