Unverified Commit 7c3511f3 authored by ihumphrey's avatar ihumphrey Committed by GitHub
Browse files

Merge pull request #295 from twilson271828/ipceBundleWindow

Added support for additional apriori sigmas in updateBundleObservationSolveSettings
parents 55322118 b6c1d08f
Loading
Loading
Loading
Loading
+20 −4
Original line number Diff line number Diff line
@@ -381,7 +381,7 @@ namespace Isis {
                                           bool solvePolynomialOverExisting,
                                           double anglesAprioriSigma,
                                           double angularVelocityAprioriSigma,
                                           double angularAccelerationAprioriSigma) {
                                           double angularAccelerationAprioriSigma,QList<double> * additionalPointingSigmas) {

    // automatically set the solve option and ck degree to the user entered values
    m_instrumentPointingSolveOption = option;
@@ -434,6 +434,16 @@ namespace Isis {
      }
    }

    if (additionalPointingSigmas) {
      for (int i=0;i < additionalPointingSigmas->count();i++) {         
          m_anglesAprioriSigma.append(additionalPointingSigmas->value(i));
      }
    }





    m_solveTwist = solveTwist; // dependent on solve option???

    // Set the SpiceRotation interpolation type enum appropriately
@@ -622,14 +632,14 @@ namespace Isis {
   * @param velocityAprioriSigma A priori velocity sigma
   * @param accelerationAprioriSigma A priori acceleration sigma
   */
  void BundleObservationSolveSettings::setInstrumentPositionSettings(
                                           InstrumentPositionSolveOption option,
  void BundleObservationSolveSettings::setInstrumentPositionSettings(InstrumentPositionSolveOption option,
                                           int spkDegree,
                                           int spkSolveDegree,
                                           bool positionOverHermite,
                                           double positionAprioriSigma,
                                           double velocityAprioriSigma,
                                           double accelerationAprioriSigma) {
                                           double accelerationAprioriSigma,
                                           QList<double> *additionalPositionSigmas) {
    // automatically set the solve option and spk degree to the user entered values
    m_instrumentPositionSolveOption = option;

@@ -680,6 +690,12 @@ namespace Isis {
      }
    }

    if (additionalPositionSigmas) {
      for (int i=0;i < additionalPositionSigmas->count();i++) {
          m_positionAprioriSigma.append(additionalPositionSigmas->value(i));
      }
    }

    // Set the SpicePosition interpolation type enum appropriately
    m_solvePositionOverHermiteSpline = positionOverHermite;
    if (m_solvePositionOverHermiteSpline) {
+8 −3
Original line number Diff line number Diff line
@@ -78,7 +78,10 @@ namespace Isis {
   *   @history 2018-06-21 Ian Humphrey - Added removeObservationNumber() to be able to remove an
   *                           observation number from a BundleObservationSolveSettings.
   *                           References #497.
   *
   *   @history 2018-06-26 Tyler Wilson - Added support for adding an arbitrary number of
   *                           additional apriori sigma values in setInstrumentPositionSettings/
   *                           setInstrumentPointingSettings beyond position/velocity/acceleration.
   *                           References #497.
   *
   *   @todo Figure out why solve degree and num coefficients does not match solve option.
   *   @todo Determine whether xml stuff needs a Project pointer.
@@ -128,7 +131,8 @@ class BundleObservationSolveSettings {
                                         bool solvePolynomialOverExisting = false,
                                         double anglesAprioriSigma = -1.0,
                                         double angularVelocityAprioriSigma = -1.0,
                                         double angularAccelerationAprioriSigma = -1.0);
                                         double angularAccelerationAprioriSigma = -1.0,
                                         QList<double> * additionalPointingSigmas=nullptr);
      InstrumentPointingSolveOption instrumentPointingSolveOption() const;
      bool solveTwist() const;
      int ckDegree() const;
@@ -159,7 +163,8 @@ class BundleObservationSolveSettings {
                                         bool positionOverHermite = false,
                                         double positionAprioriSigma = -1.0,
                                         double velocityAprioriSigma = -1.0,
                                         double accelerationAprioriSigma = -1.0);
                                         double accelerationAprioriSigma = -1.0,
                                         QList<double> * additionalPositionSigmas=nullptr);
      InstrumentPositionSolveOption instrumentPositionSolveOption() const;
      int spkDegree() const;
      int spkSolveDegree() const;
+5 −3
Original line number Diff line number Diff line
@@ -902,10 +902,12 @@ namespace Isis {


      boss.setInstrumentPositionSettings(positionSolvingOption,spkDegree,spkSolveDegree,positionOverHermite,
                                         positionAprioriSigma,velocityAprioriSigma,accelerationAprioriSigma);
                                         positionAprioriSigma,velocityAprioriSigma,accelerationAprioriSigma,
                                         &additionalPositionCoefficients);

      boss.setInstrumentPointingSettings(pointSolvingOption,solveTwist,ckDegree,ckSolveDegree,solvePolynomialOverExisting,
                                         anglesAprioriSigma,angularVelocityAprioriSigma,angularAccelerationAprioriSigma);
                                         anglesAprioriSigma,angularVelocityAprioriSigma,angularAccelerationAprioriSigma,
                                         &additionalAngularCoefficients);

      //What if multiple instrument IDs are represented?
      boss.setInstrumentId("");
@@ -925,7 +927,7 @@ namespace Isis {
          if (projItem->isImage() ) {
            Image * img = projItem->data().value<Image *>();
            boss.addObservationNumber(img->serialNumber() );
            //qDebug() << "serial num:  " << img->serialNumber();

          }
        }

+4 −0
Original line number Diff line number Diff line
@@ -77,6 +77,10 @@ namespace Isis {
   *                           updateBundleObservationSolveSettings(BundleObservationSolveSettings &) 
   *                           which grabs BOSS settings from the JSD BOSS tab for selected images 
   *                           in the BOSS QTreeView and saves them in a BOSS object. 
   *   @history 2018-06-26 Tyler Wilson - Added support in
   *                           updateBundleObservationSolveSettings(BundleObservationSolveSettings &)
   *                           for the user to set an arbitrary number of position/pointing Apriori
   *                           Sigma values beyond position/velocity/acceleration.  References #497.
   */

  class JigsawSetupDialog : public QDialog {