Commit d23f16bb authored by Tyler Wilson's avatar Tyler Wilson
Browse files

Change N/A to FREE for solve paramaters for BundleAdjust output files. Fixes #4317

git-svn-id: http://subversion.wr.usgs.gov/repos/prog/isis3/branches/ipce@7195 41f8697f-d340-4b68-9986-7bafba869bb8
parent 99a61548
Loading
Loading
Loading
Loading
+18 −11
Original line number Diff line number Diff line
@@ -451,7 +451,8 @@ namespace Isis {
   * @return @b QString The formatted output detailed string.
   */
  QString BundleControlPoint::formatBundleOutputDetailString(bool errorPropagation,
                                                             double RTM) const {
                                                             double RTM,
                                                             bool solveRadius) const {

    int numRays     = numberOfMeasures();
    int numGoodRays = numRays - numberOfRejectedMeasures();
@@ -524,7 +525,7 @@ namespace Isis {
                      .arg(formatValue(m_corrections(2), 21, 8))                    // km
                      .arg(formatValue(cor_rad_m, 20, 8))                           // m
                      .arg(formatValue(rad, 20, 8))                                 // km
                      .arg(formatRadiusAprioriSigmaString(18,8))                    // m
                      .arg(formatRadiusAprioriSigmaString(18,8,solveRadius))        // m
                      .arg(formatRadiusAdjustedSigmaString(18,8,errorPropagation)); // m

    return output;
@@ -561,12 +562,16 @@ namespace Isis {
   * 
   * @return @b QString The formatted value, as a string.
   */
  QString BundleControlPoint::formatAprioriSigmaString(int type, int fieldWidth, 
                                                       int precision) const {
  QString BundleControlPoint::formatAprioriSigmaString(int version, int fieldWidth,
                                                       int precision, bool solveRadius) const {
    QString aprioriSigmaStr;
    double sigma = m_aprioriSigmas[type];
    QString pointType = ControlPoint::PointTypeToString(type()).toUpper();
    if (pointType == "CONSTRAINED"||!solveRadius) {
        pointType = "N/A";
    }
    double sigma = m_aprioriSigmas[version];
    if (IsSpecial(sigma)) { // if globalAprioriSigma <= 0 (including Isis::NUll), then m_aprioriSigmas = Null
      aprioriSigmaStr = QString("%1").arg("N/A", fieldWidth);
      aprioriSigmaStr = QString("%1").arg(pointType, fieldWidth);
    }
    else {
      aprioriSigmaStr = QString("%1").arg(sigma, fieldWidth, 'f', precision);
@@ -587,7 +592,7 @@ namespace Isis {
   */
  QString BundleControlPoint::formatLatitudeAprioriSigmaString(int fieldWidth, 
                                                               int precision) const {
    return formatAprioriSigmaString(0, fieldWidth, precision);
    return formatAprioriSigmaString(0, fieldWidth, precision, true);
  }


@@ -603,7 +608,7 @@ namespace Isis {
   */
  QString BundleControlPoint::formatLongitudeAprioriSigmaString(int fieldWidth, 
                                                                int precision) const {
    return formatAprioriSigmaString(1, fieldWidth, precision);
    return formatAprioriSigmaString(1, fieldWidth, precision, true);
  }


@@ -617,8 +622,10 @@ namespace Isis {
   *  
   * @see formatAprioriSigmaString() 
   */
  QString BundleControlPoint::formatRadiusAprioriSigmaString(int fieldWidth, int precision) const {
    return formatAprioriSigmaString(2, fieldWidth, precision);
  QString BundleControlPoint::formatRadiusAprioriSigmaString(int fieldWidth,
                                                             int precision,
                                                             bool solveRadius) const {
    return formatAprioriSigmaString(2, fieldWidth, precision, solveRadius);
  }


+6 −3
Original line number Diff line number Diff line
@@ -64,6 +64,9 @@ namespace Isis {
   *   @history 2016-08-15 Jesse Mapel - Changed contained member data type to a shared pointer.
   *                           Added wrapper methods for several ControlPoint methods.
   *                           Fixes #4159.
   *   @history 2016-10-27 Tyler Wilson - Modified formatRadiusAprioriSigmaString, formatAprioriSigmaString,
   *                          and formatBundleOutputDetailString to accept a third argument (bool solveRadius)
   *                          with a default value = false.  References #4317.
   */
  class BundleControlPoint : public QVector<BundleMeasureQsp> {

@@ -103,12 +106,12 @@ namespace Isis {

      // string format methods
      QString formatBundleOutputSummaryString(bool errorPropagation) const;
      QString formatBundleOutputDetailString(bool errorPropagation, double RTM) const;
      QString formatBundleOutputDetailString(bool errorPropagation, double RTM, bool solveRadius=false) const;
      QString formatValue(double value, int fieldWidth, int precision) const;
      QString formatAprioriSigmaString(int type, int fieldWidth, int precision) const;
      QString formatAprioriSigmaString(int type, int fieldWidth, int precision, bool solveRadius=false) const;
      QString formatLatitudeAprioriSigmaString(int fieldWidth, int precision) const;
      QString formatLongitudeAprioriSigmaString(int fieldWidth, int precision) const;
      QString formatRadiusAprioriSigmaString(int fieldWidth, int precision) const;
      QString formatRadiusAprioriSigmaString(int fieldWidth, int precision, bool solveRadius=false) const;
      QString formatAdjustedSigmaString(int type, int fieldWidth, int precision,
                                        bool errorPropagation) const;
      QString formatLatitudeAdjustedSigmaString(int fieldWidth, int precision,
+7 −6
Original line number Diff line number Diff line
@@ -970,7 +970,7 @@ namespace Isis {
        if (!useDefaultPosition) {
          correction = m_corrections(i);
          adjustedSigma = m_adjustedSigmas(i);
          sigma = ( IsSpecial(m_aprioriSigmas[i]) ? "N/A" : toString(m_aprioriSigmas[i], 8) );
          sigma = ( IsSpecial(m_aprioriSigmas[i]) ? "FREE" : toString(m_aprioriSigmas[i], 8) );
        }
        if (errorPropagation) {
          qStr = QString("%1%2%3%4%5%6\n").
@@ -1014,8 +1014,8 @@ namespace Isis {
          else {
            correction = m_corrections(i - offset);
            adjustedSigma = m_adjustedSigmas(i - offset);
            sigma = ( IsSpecial(m_aprioriSigmas[i - offset]) ? 
                "N/A" : toString(m_aprioriSigmas[i - offset], 8) );
            sigma = ( IsSpecial(m_aprioriSigmas[i - offset]) ? "FREE" :
                    toString(m_aprioriSigmas[i-offset], 8) );
          }
        }
        // We are using default pointing, so provide default correction and sigma values to output
@@ -1052,7 +1052,7 @@ namespace Isis {
        if (!useDefaultPosition) {
          correction = m_corrections(i);
          adjustedSigma = m_adjustedSigmas[i];
          sigma = ( IsSpecial(m_aprioriSigmas[i]) ? "-1.0" : toString(m_aprioriSigmas[i]));
        sigma = ( IsSpecial(m_aprioriSigmas[i]) ? "FREE" : toString(m_aprioriSigmas[i], 8) );
        }
        // Provide default values for position if not solving position
        else {
@@ -1098,8 +1098,9 @@ namespace Isis {
          else {
            correction = m_corrections(i - offset);
            adjustedSigma = m_adjustedSigmas[i - offset];
            sigma = ( IsSpecial(m_aprioriSigmas[i - offset]) ? 
                "-1.0" : toString(m_aprioriSigmas[i - offset]) );
        sigma = ( IsSpecial(m_aprioriSigmas[i-offset]) ? "FREE" :
                   toString(m_aprioriSigmas[i-offset], 8) );

          }
        }
        // Provide default values for pointing if not solving pointing
+3 −0
Original line number Diff line number Diff line
@@ -69,6 +69,9 @@ namespace Isis {
   *   @history 2016-10-26 Ian Humphrey - Modified formatBundleOutputString() to provided default
   *                           values for all solve parameters, whether they are being solved for
   *                           or not. Fixes #4464.
   *   @history 2016-10-27 Tyler Wilson Modified formatBundleOutputString to change N/A to FREE 
   *                           in the ouptut under POINTS DETAL when no lat/lon sigmas were entered.
   *                           Fixes #4317.
   */
  class BundleObservation : public QVector<BundleImageQsp> {

+113 −49

File changed.

Preview size limit exceeded, changes collapsed.

Loading