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

Added statistics objects for updated approximation to...

Added statistics objects for updated approximation to Line/Sample/Pixel/Detector resolutions in the Camera class.  References #476

git-svn-id: http://subversion.wr.usgs.gov/repos/prog/isis3/trunk@7067 41f8697f-d340-4b68-9986-7bafba869bb8
parent 550b5726
Loading
Loading
Loading
Loading
+72 −2
Original line number Diff line number Diff line
@@ -93,6 +93,13 @@ namespace Isis {
    m_latStat = new Statistics();
    m_lonStat = new Statistics();
    m_resStat = new Statistics();


    m_obliqueResStat = new Statistics();
    m_obliqueSampleResStat = new Statistics();
    m_obliqueLineResStat = new Statistics();


    m_sampleResStat = new Statistics();
    m_lineResStat = new Statistics();
    m_aspectRatioStat = new Statistics();
@@ -157,6 +164,25 @@ namespace Isis {
      delete m_resStat;
      m_resStat = NULL;
    }


   if (m_obliqueLineResStat != NULL) {
     delete m_obliqueLineResStat;
     m_obliqueLineResStat = NULL;

   }

   if (m_obliqueSampleResStat != NULL) {
     delete m_obliqueSampleResStat;
     m_obliqueSampleResStat = NULL;

   }

   if (m_obliqueResStat != NULL) {
     delete m_obliqueResStat;
     m_obliqueResStat = NULL;
   }

    if (m_sampleResStat != NULL) {
      delete m_sampleResStat;
      m_sampleResStat = NULL;
@@ -209,6 +235,14 @@ namespace Isis {
    if(cam->HasSurfaceIntersection()) {
      m_latStat->AddData(cam->UniversalLatitude());
      m_lonStat->AddData(cam->UniversalLongitude());


      m_obliqueResStat->AddData(cam->ObliquePixelResolution());
      m_obliqueSampleResStat->AddData(cam->ObliqueSampleResolution());
      m_obliqueLineResStat->AddData(cam->ObliqueLineResolution());



      m_resStat->AddData(cam->PixelResolution());
      m_sampleResStat->AddData(cam->SampleResolution());
      m_lineResStat->AddData(cam->LineResolution());
@@ -344,6 +378,37 @@ namespace Isis {
    pLon += constructKeyword("LongitudeAverage", m_lonStat->Average());
    pLon += constructKeyword("LongitudeStandardDeviation", m_lonStat->StandardDeviation());

    PvlGroup pObliqueSampleRes("ObliqueSampleResolution");
    pObliqueSampleRes += constructKeyword("ObliqueSampleResolutionMinimum",
                                          m_obliqueSampleResStat->Minimum(), "meters/pixel");
    pObliqueSampleRes += constructKeyword("ObliqueSampleResolutionMaximum",
                                          m_obliqueSampleResStat->Maximum(),"meters/pixel");
    pObliqueSampleRes += constructKeyword("ObliqueSampleResolutionAverage",
                                          m_obliqueSampleResStat->Average(),"meters/pixel");
    pObliqueSampleRes += constructKeyword("ObliqueSampleResolutionStandardDeviation",
        m_obliqueSampleResStat->StandardDeviation(), "meters/pixel");

    PvlGroup pObliqueLineRes("ObliqueLineResolution");
    pObliqueLineRes += constructKeyword("ObliqueLineResolutionMinimum", m_obliqueLineResStat->Minimum(),
        "meters/pixel");
    pObliqueLineRes += constructKeyword("ObliqueLineResolutionMaximum", m_obliqueLineResStat->Maximum(),
        "meters/pixel");
    pObliqueLineRes += constructKeyword("ObliqueLineResolutionAverage", m_obliqueLineResStat->Average(),
        "meters/pixel");
    pObliqueLineRes += constructKeyword("ObliqueLineResolutionStandardDeviation",
        m_obliqueLineResStat->StandardDeviation(), "meters/pixel");

    PvlGroup pObliqueResolution("ObliqueResolution");
    pObliqueResolution += constructKeyword("ObliqueResolutionMinimum", m_obliqueResStat->Minimum(),
        "meters/pixel");
    pObliqueResolution += constructKeyword("ObliqueResolutionMaximum", m_obliqueResStat->Maximum(),
        "meters/pixel");
    pObliqueResolution += constructKeyword("ObliqueResolutionAverage", m_obliqueResStat->Average(),
        "meters/pixel");
    pObliqueResolution += constructKeyword("ObliqueResolutionStandardDeviation",
        m_obliqueResStat->StandardDeviation(), "meters/pixel");


    PvlGroup pSampleRes("SampleResolution");
    pSampleRes += constructKeyword("SampleResolutionMinimum", m_sampleResStat->Minimum(),
        "meters/pixel");
@@ -433,6 +498,11 @@ namespace Isis {
    returnPvl.addGroup(pSampleRes);
    returnPvl.addGroup(pLineRes);
    returnPvl.addGroup(pResolution);

    returnPvl.addGroup(pObliqueSampleRes);
    returnPvl.addGroup(pObliqueLineRes);
    returnPvl.addGroup(pObliqueResolution);

    returnPvl.addGroup(pAspectRatio);
    returnPvl.addGroup(pPhase);
    returnPvl.addGroup(pEmission);
+48 −2
Original line number Diff line number Diff line
@@ -50,8 +50,10 @@ namespace Isis {
   * @internal
   * @history 2011-06-14 Travis Addair - Extracted logic from "camstats"
   *                     application to create this class.
   * @history 2016-08-17 Tyler Wilson - Added Statistics objects for
   *                     ObliquePixelResolution,ObliqueSampleResolution, and
   *                     ObliqueLineResolution.  References #476, #4100.
   */

  class CameraStatistics {
    public:
      CameraStatistics(QString filename, int sinc, int linc);
@@ -87,6 +89,7 @@ namespace Isis {
      };



      /**
       * Accessor method for inspecting the statistics gathered on the
       * Pixel Resolutions of the input Camera.
@@ -98,6 +101,41 @@ namespace Isis {
      };



      /**
       * Accessor method for inspecting the statistics gathered on the
       * oblique pixel resolutions of the input Camera.
       *
       * @return Statistics * Constant pointer to oblique pixel resolution statistics
       */
      const Statistics * getObliqueResStat() const {
        return m_obliqueResStat;
      };

      /**
       * Accessor method for inspecting the statistics gathered on the
       * oblique sample resolutions of the input Camera.
       *
       * @return Statistics * Constant pointer to oblique sample resolution statistics
       */
      const Statistics * getObliqueSampleResStat() const {
        return m_obliqueSampleResStat;
      };



      /**
       * Accessor method for inspecting the statistics gathered on the
       * oblique line resolution of the input Camera.
       *
       * @return Statistics * Constant pointer to oblique line resolution statistics
       */
      const Statistics * getObliqueLineResStat() const {
        return m_obliqueLineResStat;
      };



      /**
       * Accessor method for inspecting the statistics gathered on the
       * Sample Resolutions of the input Camera.
@@ -206,6 +244,13 @@ namespace Isis {

      Statistics *m_latStat; //!< Universal latitude statistics.
      Statistics *m_lonStat; //!< Universal longitude statistics.



      Statistics *m_obliqueResStat;  //!< Oblique pixel resolution statistics.
      Statistics *m_obliqueSampleResStat; //!< Oblique sample resolution statistics.
      Statistics *m_obliqueLineResStat; //!< Oblique line resolution statistics.

      Statistics *m_resStat; //!< Pixel resolution statistics.
      Statistics *m_sampleResStat; //!< Sample resolution statistics.
      Statistics *m_lineResStat; //!< Line resolution statistics.
@@ -220,3 +265,4 @@ namespace Isis {
};

#endif
+18 −0
Original line number Diff line number Diff line
@@ -36,6 +36,24 @@ Resolution:
  ResolutionAverage = 245.015
  ResolutionStandardDeviation = 0.181039

ObliqueSampleResolution:
  ObliqueSampleResolutionMinimum = 244.735
  ObliqueSampleResolutionMaximum = 246.319
  ObliqueSampleResolutionAverage = 245.205
  ObliqueSampleResolutionStandardDeviation = 0.304432

ObliqueLineResolution:
  ObliqueLineResolutionMinimum = 244.735
  ObliqueLineResolutionMaximum = 246.319
  ObliqueLineResolutionAverage = 245.205
  ObliqueLineResolutionStandardDeviation = 0.304432

ObliqueResolution:
  ObliqueResolutionMinimum = 244.735
  ObliqueResolutionMaximum = 246.319
  ObliqueResolutionAverage = 245.205
  ObliqueResolutionStandardDeviation = 0.304432

AspectRatio:
  AspectRatioMinimum = 1
  AspectRatioMaximun = 1