Commit 6ceab785 authored by Makayla Shepherd's avatar Makayla Shepherd
Browse files

Removed readCSV, csv reading is now in app

parent b5add168
Loading
Loading
Loading
Loading
+11 −57
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
#include <QList>
#include <QRegExp>
#include <QSharedPointer>
#include <QString>
#include <QStringList>
#include <QTextStream>

@@ -22,6 +23,10 @@
#include "Longitude.h"
#include "SurfacePoint.h"



#include <QDebug>

namespace Isis {


@@ -42,7 +47,7 @@ namespace Isis {
   * @param FileName lidarFile Name of the Lidar CSV file to use.
   */
  LidarData::LidarData(FileName lidarFile) {
    readCsv(lidarFile);

  }


@@ -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.
   *
@@ -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();
+0 −2
Original line number Diff line number Diff line
@@ -40,8 +40,6 @@ namespace Isis {
      LidarData();
      LidarData(FileName);

      void readCsv(FileName);

      void insert(QSharedPointer<LidarControlPoint> point);
      QList< QSharedPointer<LidarControlPoint> > points() const;