Commit 88ba182c authored by Ken Edmundson's avatar Ken Edmundson
Browse files

more piecewise support

parent e07dd519
Loading
Loading
Loading
Loading
+5 −19
Original line number Diff line number Diff line
@@ -375,7 +375,7 @@ namespace Isis {
    m_iterationSummary = "";

    // Get the cameras set up for all images
    // NOTE - THIS IS NOT THE SAME AS "setImage" as called in BundleAdjust::computePartials
    // NOTE - THIS IS NinitOT THE SAME AS "setImage" as called in BundleAdjust::computePartials
    // this call only does initializations; sets measure's camera pointer, etc
    // RENAME????????????
    m_controlNet->SetImages(*m_serialNumberList, progress);
@@ -457,22 +457,6 @@ namespace Isis {
        }
      }

      // initialize polynomial continuity constraints for time-dependent sensors if necessary
      // TODO: can we let BundleObservation handle this
//      int numBundleObservations = m_bundleObservations.size();
//      for (int i = 0; i < numBundleObservations; i++) {
//        BundleObservationQsp observation = m_bundleObservations.at(i);
//        int numSpkSegments = observation->numberPolynomialPositionSegments();
//        int numCkSegments = observation->numberPolynomialPointingSegments();
//        if (numSpkSegments == 1 && numCkSegments == 1)
//          continue;

//        BundlePolynomialContinuityConstraintQsp polyConstraint =
//            BundlePolynomialContinuityConstraintQsp(
//              new BundlePolynomialContinuityConstraint(observation));
//        observation->setContinuityConstraints(polyConstraint);
//      }

      if (m_bundleSettings->solveTargetBody()) {
        m_bundleObservations.initializeBodyRotation();
      }
@@ -895,7 +879,7 @@ namespace Isis {
        emit statusUpdate(QString("Constrained Parameters:%1")
                                  .arg(m_bundleResults.numberConstrainedPointParameters()));
        if (m_bundleResults.numberContinuityConstraintEquations() > 0) {
          emit statusUpdate(QString("Constrained Parameters:%1")
          emit statusUpdate(QString("Continuity Constraint Equations:%1")
                                    .arg(m_bundleResults.numberContinuityConstraintEquations()));
        }
        emit statusUpdate(QString("Constrained Parameters:%1")
@@ -1488,9 +1472,11 @@ namespace Isis {

      // get diagonal block i from sparse normal equations matrix
      LinearAlgebra::Matrix *diagonalBlock = m_sparseNormals.getBlock(i, i);
      if (!diagonalBlock) // TODO: should we continue here, or throw an error? (KLE 2017-07-18)
      if (!diagonalBlock) // TODO: should we continue here, or throw an error? Think an error, null
                          // diagonalBlock seems pretty catastropic (KLE 2017-10-06)
        continue;

      // TODO: are these calls making a copy?
      continuityMatrix = observation->continuityContraintMatrix();
      continuityRHS = observation->continuityRHS();

+7 −3
Original line number Diff line number Diff line
@@ -285,6 +285,13 @@ namespace Isis {
   *   @history 2017-08-09 Summer Stapleton - Added a try/catch around the m_controlNet assignment
   *                           in each of the constructors to verify valid control net input.
   *                           Fixes #5068.
   *   @history 2017-07-14 Ken Edmundson Added support for piecewise polynomials...
   *                           -modifications to...
   *                               ::init
   *                               ::solveCholesky
   *                               ::formNormalEquations
   *                           -methods...
   *                               void applyPolynomialContinuityConstraints()
   */
  class BundleAdjust : public QObject {
      Q_OBJECT
@@ -392,9 +399,6 @@ namespace Isis {
                               LinearAlgebra::Vector                               &nj);
      void applyPolynomialContinuityConstraints();

//      void polynomialContinuityConstraints(BundleObservationQsp observation,
//                                           LinearAlgebra::Matrix * diagonalBlock);

      // dedicated matrix functions

      void productAB(SparseBlockColumnMatrix &A,
+1 −1
Original line number Diff line number Diff line
@@ -677,7 +677,7 @@ namespace Isis {
        sprintf(buf, "\nPOLYNOMIAL OVER HERMITE SPLINE : OFF");
    fpOut << buf;
    sprintf(buf, "\n          POLYNOMIAL SEGMENT COUNT: %d",
            globalSettings.numberSpkPolySegments()());
            globalSettings.numberSpkPolySegments());

    sprintf(buf, "\n\nINPUT: GLOBAL IMAGE PARAMETER UNCERTAINTIES\n===========================================\n");
    fpOut << buf;