Commit 510cbaa8 authored by Ken Edmundson's avatar Ken Edmundson
Browse files

fixed bug in BundleAdjust::computeBundleStatistics method

git-svn-id: http://subversion.wr.usgs.gov/repos/prog/isis3/branches/ipce@6161 41f8697f-d340-4b68-9986-7bafba869bb8
parent b16df83c
Loading
Loading
Loading
Loading
+29 −25
Original line number Diff line number Diff line
@@ -5235,6 +5235,35 @@ namespace Isis {
      Distance sigmaLatDist, sigmaLonDist, sigmaRadDist;

      int nPoints = m_pCnet->GetNumPoints();
      // initialize max and min values to those from first valid point
      for (int i = 0; i < nPoints; i++) {

        const ControlPoint *point = m_pCnet->GetPoint(i);
        if (point->IsIgnored()) {
          continue;
        }

        maxSigmaLatDist = point->GetAdjustedSurfacePoint().GetLatSigmaDistance();;
        minSigmaLatDist = maxSigmaLatDist;

        maxSigmaLonDist = point->GetAdjustedSurfacePoint().GetLonSigmaDistance();;
        minSigmaLonDist = maxSigmaLonDist;

        maxSigmaLatPointId = point->GetId();
        maxSigmaLonPointId = maxSigmaLatPointId;
        minSigmaLatPointId = maxSigmaLatPointId;
        minSigmaLonPointId = maxSigmaLatPointId;

        if (m_bundleSettings.solveRadius()) {
          maxSigmaRadDist = point->GetAdjustedSurfacePoint().GetLocalRadiusSigma();
          minSigmaRadDist = maxSigmaRadDist;

          maxSigmaRadPointId = maxSigmaLatPointId;
          minSigmaRadPointId = maxSigmaLatPointId;
        }
        break;
      }

      for (int i = 0; i < nPoints; i++) {

        const ControlPoint *point = m_pCnet->GetPoint(i);
@@ -5250,30 +5279,6 @@ namespace Isis {
        sigmaLonStats.AddData(sigmaLonDist.meters());
        sigmaRadStats.AddData(sigmaRadDist.meters());

        if (i == 0) {
          // initialize min/max to current dist

          maxSigmaLatDist = sigmaLatDist;
          minSigmaLatDist = sigmaLatDist;

          maxSigmaLonDist = sigmaLonDist;
          minSigmaLonDist = sigmaLonDist;

          QString initialPointId = point->GetId();
          maxSigmaLatPointId = initialPointId;
          maxSigmaLonPointId = initialPointId;
          minSigmaLatPointId = initialPointId;
          minSigmaLonPointId = initialPointId;

          if (m_bundleSettings.solveRadius()) {
            maxSigmaRadDist = sigmaRadDist;
            minSigmaRadDist = sigmaRadDist;

            maxSigmaRadPointId = initialPointId;
            minSigmaRadPointId = initialPointId;
          }
        }
        else {
        if (sigmaLatDist > maxSigmaLatDist) {
          maxSigmaLatDist = sigmaLatDist;
          maxSigmaLatPointId = point->GetId();
@@ -5303,7 +5308,6 @@ namespace Isis {
          }
        }
      }
      }

      // update bundle results 
      m_bundleResults.resizeSigmaStatisticsVectors(numberImages);