Loading isis/src/base/objs/LidarData/LidarData.cpp +11 −57 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ #include <QList> #include <QRegExp> #include <QSharedPointer> #include <QString> #include <QStringList> #include <QTextStream> Loading @@ -22,6 +23,10 @@ #include "Longitude.h" #include "SurfacePoint.h" #include <QDebug> namespace Isis { Loading @@ -42,7 +47,7 @@ namespace Isis { * @param FileName lidarFile Name of the Lidar CSV file to use. */ LidarData::LidarData(FileName lidarFile) { readCsv(lidarFile); } Loading @@ -66,61 +71,6 @@ namespace Isis { } /** * @brief Reads in a Lidar CSV file. * * Reads in a CSV file that contains raw Lidar data and then creates LidarControlPoints from * this data. (This is NOT an unserialization method - use read() for unserializing LidarData * from a file). * * @param FileName lidarFile Name of the Lidar CSV file to read. * @throws If the header for the file does not contain the correct info, * an IException will be thrown. */ void LidarData::readCsv(FileName lidarFile) { QFile data(lidarFile.expanded()); if (data.open(QIODevice::ReadOnly|QIODevice::Text)) { QTextStream datain(&data); QString header = datain.readLine(); QStringList headerCells = header.split(",",QString::KeepEmptyParts); QRegExp utc("*Universal*",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp longitude("*Longitude",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp latitude("*Latitude",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp range("*Range",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp shot("S",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp frame("*Frm*",Qt::CaseInsensitive,QRegExp::Wildcard); int longIx = headerCells.indexOf(longitude); int latIx = headerCells.indexOf(latitude); int utcIx = headerCells.indexOf(utc); int rangeIx = headerCells.indexOf(range); int shotIx = headerCells.indexOf(shot); int frameIx = headerCells.indexOf(frame); if ( longIx < 0 || latIx < 0 || utcIx < 0 || rangeIx < 0 ||shotIx < 0 || frameIx < 0) { QString msg = "Header line in "+lidarFile.expanded() + " is missing expected information."; throw IException(IException::Io,msg, _FILEINFO_); } while (!datain.atEnd() ) { QString key; QString row = datain.readLine(); QStringList cells = row.split(",",QString::KeepEmptyParts); iTime time(cells[utcIx]); QString shot(cells[shotIx]); QString frame(cells[frameIx]); key = "lrolola"+time.EtString()+"_"+frame+"_"+shot; QSharedPointer<LidarControlPoint> pt = QSharedPointer<LidarControlPoint> (new LidarControlPoint(time,cells[rangeIx].toDouble(),0.0)); m_points.insert(key,pt); } } } /** * @brief Unserialize LidarData. * Loading Loading @@ -192,12 +142,16 @@ namespace Isis { } QSharedPointer<LidarControlPoint> lcp = QSharedPointer<LidarControlPoint>(new LidarControlPoint(iTime(time), range, sigmaRange)); QSharedPointer<LidarControlPoint>(new LidarControlPoint()); lcp->SetId(id); lcp->setTime(iTime(time)); lcp->setRange(range); lcp->setSigmaRange(sigmaRange); lcp->SetAprioriSurfacePoint(SurfacePoint(Latitude(latitude, Angle::Units::Degrees), Longitude(longitude, Angle::Units::Degrees), Distance(radius, Distance::Units::Kilometers))); // Unserialize ControlMeasures if (pointObject.contains("measures") && pointObject["measures"].isArray()) { QJsonArray measureArray = pointObject["measures"].toArray(); Loading isis/src/base/objs/LidarData/LidarData.h +0 −2 Original line number Diff line number Diff line Loading @@ -40,8 +40,6 @@ namespace Isis { LidarData(); LidarData(FileName); void readCsv(FileName); void insert(QSharedPointer<LidarControlPoint> point); QList< QSharedPointer<LidarControlPoint> > points() const; Loading Loading
isis/src/base/objs/LidarData/LidarData.cpp +11 −57 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ #include <QList> #include <QRegExp> #include <QSharedPointer> #include <QString> #include <QStringList> #include <QTextStream> Loading @@ -22,6 +23,10 @@ #include "Longitude.h" #include "SurfacePoint.h" #include <QDebug> namespace Isis { Loading @@ -42,7 +47,7 @@ namespace Isis { * @param FileName lidarFile Name of the Lidar CSV file to use. */ LidarData::LidarData(FileName lidarFile) { readCsv(lidarFile); } Loading @@ -66,61 +71,6 @@ namespace Isis { } /** * @brief Reads in a Lidar CSV file. * * Reads in a CSV file that contains raw Lidar data and then creates LidarControlPoints from * this data. (This is NOT an unserialization method - use read() for unserializing LidarData * from a file). * * @param FileName lidarFile Name of the Lidar CSV file to read. * @throws If the header for the file does not contain the correct info, * an IException will be thrown. */ void LidarData::readCsv(FileName lidarFile) { QFile data(lidarFile.expanded()); if (data.open(QIODevice::ReadOnly|QIODevice::Text)) { QTextStream datain(&data); QString header = datain.readLine(); QStringList headerCells = header.split(",",QString::KeepEmptyParts); QRegExp utc("*Universal*",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp longitude("*Longitude",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp latitude("*Latitude",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp range("*Range",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp shot("S",Qt::CaseInsensitive,QRegExp::Wildcard); QRegExp frame("*Frm*",Qt::CaseInsensitive,QRegExp::Wildcard); int longIx = headerCells.indexOf(longitude); int latIx = headerCells.indexOf(latitude); int utcIx = headerCells.indexOf(utc); int rangeIx = headerCells.indexOf(range); int shotIx = headerCells.indexOf(shot); int frameIx = headerCells.indexOf(frame); if ( longIx < 0 || latIx < 0 || utcIx < 0 || rangeIx < 0 ||shotIx < 0 || frameIx < 0) { QString msg = "Header line in "+lidarFile.expanded() + " is missing expected information."; throw IException(IException::Io,msg, _FILEINFO_); } while (!datain.atEnd() ) { QString key; QString row = datain.readLine(); QStringList cells = row.split(",",QString::KeepEmptyParts); iTime time(cells[utcIx]); QString shot(cells[shotIx]); QString frame(cells[frameIx]); key = "lrolola"+time.EtString()+"_"+frame+"_"+shot; QSharedPointer<LidarControlPoint> pt = QSharedPointer<LidarControlPoint> (new LidarControlPoint(time,cells[rangeIx].toDouble(),0.0)); m_points.insert(key,pt); } } } /** * @brief Unserialize LidarData. * Loading Loading @@ -192,12 +142,16 @@ namespace Isis { } QSharedPointer<LidarControlPoint> lcp = QSharedPointer<LidarControlPoint>(new LidarControlPoint(iTime(time), range, sigmaRange)); QSharedPointer<LidarControlPoint>(new LidarControlPoint()); lcp->SetId(id); lcp->setTime(iTime(time)); lcp->setRange(range); lcp->setSigmaRange(sigmaRange); lcp->SetAprioriSurfacePoint(SurfacePoint(Latitude(latitude, Angle::Units::Degrees), Longitude(longitude, Angle::Units::Degrees), Distance(radius, Distance::Units::Kilometers))); // Unserialize ControlMeasures if (pointObject.contains("measures") && pointObject["measures"].isArray()) { QJsonArray measureArray = pointObject["measures"].toArray(); Loading
isis/src/base/objs/LidarData/LidarData.h +0 −2 Original line number Diff line number Diff line Loading @@ -40,8 +40,6 @@ namespace Isis { LidarData(); LidarData(FileName); void readCsv(FileName); void insert(QSharedPointer<LidarControlPoint> point); QList< QSharedPointer<LidarControlPoint> > points() const; Loading