Commit 55351b4a authored by Jesse Mapel's avatar Jesse Mapel Committed by Makayla Shepherd
Browse files

Modified cnetcheck to no longer use ControlCubeGraphNode

parent 8bdafe4b
Loading
Loading
Loading
Loading
+21 −31
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@

#include "Camera.h"
#include "CameraFactory.h"
#include "ControlCubeGraphNode.h"
#include "ControlMeasure.h"
#include "ControlNet.h"
#include "ControlPoint.h"
@@ -48,15 +47,12 @@ QVector< set<QString> > findIslands(
  set<QString> &index,
  QMap< QString, set<QString> > adjCubes);

QList< ControlCubeGraphNode * > checkSerialList(
    SerialNumberList *serialNumbers, ControlNet * controlNet);

void writeOutput(SerialNumberList num2cube,
                 QString filename,
                 set<QString> sns,
                 QMap< QString, set<QString> > cps);

double getControlFitness(const ControlCubeGraphNode * node, double tolerance, Cube * cube);
double getControlFitness(ControlNet &cnet, QString sn, double tolerance, Cube * cube);
void noLatLonCheck(ControlNet &cnet, CubeManager &manager, Progress &progress,
    bool ignore, SerialNumberList &num2cube,
    set<QString> &noLatLonSerialNumbers,
@@ -295,22 +291,21 @@ void IsisMain() {
  QString coverageOp = "LowCoverage";
  int failedCoverageCheck = 0;
  if (ui.GetBoolean(QString(coverageOp).toUpper())) {
    QList< ControlCubeGraphNode * > nodes = innet.GetCubeGraphNodes();
    QList< QString > netSerials = innet.GetCubeSerials();

    if (nodes.size() > 0) {
    if (netSerials.size() > 0) {
      QString name(FileName(prefix + coverageOp + ".txt").expanded());
      ofstream out_stream;
      out_stream.open(name.toLatin1().data(), std::ios::out);
      out_stream.seekp(0, std::ios::beg); // Start writing from file beginning

      double tolerance = ui.GetDouble("TOLERANCE");
      foreach (ControlCubeGraphNode * node, nodes) {
        QString sn = node->getSerialNumber();
      foreach (QString sn, netSerials) {

        if (num2cube.hasSerialNumber(sn)) {
          // Create a convex hull
          Cube *cube = cbman.OpenCube(num2cube.fileName(sn));
          double controlFitness = getControlFitness(node, tolerance, cube);
          double controlFitness = getControlFitness(innet, sn, tolerance, cube);

          if (controlFitness < tolerance) {
            outputRow(out_stream, buildRow(num2cube, sn, controlFitness));
@@ -375,8 +370,7 @@ void IsisMain() {
    out_stream.seekp(0, std::ios::beg);   //Start writing from beginning of file

    for (int sn = 0; sn < (int)nonListedSerialNumbers.size(); sn++) {
      int validMeasureCount = innet.getGraphNode(
          nonListedSerialNumbers[sn])->getValidMeasures().size();
      int validMeasureCount = innet.GetValidMeasuresInCube(nonListedSerialNumbers[sn]).size();
      QString rowText = nonListedSerialNumbers[sn] + " (Valid Measures: " +
          toString(validMeasureCount) + ")";
      outputRow(out_stream, rowText);
@@ -551,12 +545,12 @@ void writeOutput(SerialNumberList num2cube, QString filename,
}


double getControlFitness(const ControlCubeGraphNode * node, double tolerance, Cube * cube) {
double getControlFitness(ControlNet &cnet, QString sn, double tolerance, Cube * cube) {
  double controlFitness = 0;

  static  geos::geom::GeometryFactory geosFactory;
  geos::geom::CoordinateSequence * pts = new geos::geom::CoordinateArraySequence();
  QList< ControlMeasure * > measures = node->getMeasures();
  QList< ControlMeasure * > measures = cnet.GetMeasuresInCube(sn);

  // Populate pts with a list of control points
  foreach (ControlMeasure * measure, measures) {
@@ -572,7 +566,6 @@ double getControlFitness(const ControlCubeGraphNode * node, double tolerance, Cu

    // Calculate the area of the convex hull
    double convexArea = convexHull->getArea();
    QString sn = node->getSerialNumber();
    double cubeArea = cube->sampleCount() * cube->lineCount();

    controlFitness = convexArea / cubeArea;
@@ -594,16 +587,14 @@ void noLatLonCheck(ControlNet &cnet, CubeManager &manager, Progress &progress,
    QMap< QString, set<QString> > &noLatLonControlPoints) {

  // Set calculating progress
  QList<ControlCubeGraphNode *> graphNodes = cnet.GetCubeGraphNodes();
  if (graphNodes.size() > 0) {
  QList< QString > netSerials = cnet.GetCubeSerials();
  if (netSerials.size() > 0) {
    progress.SetText("Checking for No Lat/Lon");
    progress.SetMaximumSteps(graphNodes.size());
    progress.SetMaximumSteps(netSerials.size());
    progress.CheckStatus();
  }

  for (int sn = 0; sn < graphNodes.size(); sn++) {
    ControlCubeGraphNode *graphNode = graphNodes[sn];
    QString serialNumber = graphNode->getSerialNumber();
  foreach (QString serialNumber, netSerials) {

    if (num2cube.hasSerialNumber(serialNumber)) {
      Cube *cube = manager.OpenCube(num2cube.fileName(serialNumber));
@@ -618,7 +609,7 @@ void noLatLonCheck(ControlNet &cnet, CubeManager &manager, Progress &progress,
        createdCamera = false;
      }

      QList< ControlMeasure * > measures = graphNode->getMeasures();
      QList< ControlMeasure * > measures = cnet.GetMeasuresInCube(serialNumber);
      for (int cm = 0; cm < measures.size(); cm++) {
        ControlMeasure *measure = measures[cm];
        ControlPoint *point = measure->Parent();
@@ -671,4 +662,3 @@ QString buildRow(SerialNumberList &serials, QString sn, double value) {
void outputRow(ofstream &outStream, QString rowText) {
  outStream << rowText << "\n";
}