This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch upstream-master
in repository pktools.

commit 3aa352330ea961f8aa7c98672eab31a3785ec70e
Author: Pieter Kempeneers <kempe...@gmail.com>
Date:   Wed Sep 10 10:11:03 2014 +0200

    support multiple bands for statistics in pkinfo
---
 ChangeLog            |  2 ++
 src/apps/pkinfo.cc   | 64 ++++++++++++++++++++++++++++------------------------
 src/apps/pkkalman.cc |  3 ++-
 3 files changed, 39 insertions(+), 30 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index dfea511..bde1b8c 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -303,6 +303,8 @@ version 2.5.3
        libLAS 1.8.0 support (ticket #42951)
  - myfann_cpp.h 
        Fix build failure on ARM due to va_list usage in myfann_cpp.h
+ - pkinfo
+       Support multiple input bands when calculating statistics
 Next versions: 
  - todo for API: ImgReaderGdal (ImgWriterGdal) open in update mode (check 
gdal_edit.py: http://searchcode.com/codesearch/view/18938404)
 
diff --git a/src/apps/pkinfo.cc b/src/apps/pkinfo.cc
index 75f1fb1..116456c 100644
--- a/src/apps/pkinfo.cc
+++ b/src/apps/pkinfo.cc
@@ -258,33 +258,39 @@ int main(int argc, char *argv[])
     double maxValue=0;
     double meanValue=0;
     double stdDev=0;
-    if(stat_opt[0]){
-      assert(band_opt[0]<imgReader.nrOfBand());
-      GDALProgressFunc pfnProgress;
-      void* pProgressData;
-      GDALRasterBand* rasterBand;
-      rasterBand=imgReader.getRasterBand(band_opt[0]);
-      
rasterBand->ComputeStatistics(0,&minValue,&maxValue,&meanValue,&stdDev,pfnProgress,pProgressData);
-      std::cout << "-min " << minValue << " -max " << maxValue << " --mean " 
<< meanValue << " --stdDev " << stdDev << " ";
-    }
-
-    if(minmax_opt[0]||min_opt[0]||max_opt[0]){
-      assert(band_opt[0]<imgReader.nrOfBand());
-      
if((ulx_opt.size()||uly_opt.size()||lrx_opt.size()||lry_opt.size())&&(imgReader.covers(ulx_opt[0],uly_opt[0],lrx_opt[0],lry_opt[0]))){
-       double uli,ulj,lri,lrj;
-       imgReader.geo2image(ulx_opt[0],uly_opt[0],uli,ulj);
-       imgReader.geo2image(lrx_opt[0],lry_opt[0],lri,lrj);
-       
imgReader.getMinMax(static_cast<int>(uli),static_cast<int>(lri),static_cast<int>(ulj),static_cast<int>(lrj),band_opt[0],minValue,maxValue);
+    int nband=band_opt.size();
+    if(band_opt[0]<0)
+      nband=imgReader.nrOfBand();
+    for(int iband=0;iband<nband;++iband){
+      unsigned short theBand=(band_opt[0]<0)? iband : band_opt[iband];
+      if(stat_opt[0]){
+       assert(theBand<imgReader.nrOfBand());
+       GDALProgressFunc pfnProgress;
+       void* pProgressData;
+       GDALRasterBand* rasterBand;
+       rasterBand=imgReader.getRasterBand(theBand);
+       
rasterBand->ComputeStatistics(0,&minValue,&maxValue,&meanValue,&stdDev,pfnProgress,pProgressData);
+       std::cout << "-min " << minValue << " -max " << maxValue << " --mean " 
<< meanValue << " --stdDev " << stdDev << " ";
       }
-      else
-       imgReader.getMinMax(minValue,maxValue,band_opt[0],true);
-      if(minmax_opt[0])
-       std::cout << "-min " << minValue << " -max " << maxValue << " ";
-      else{
-       if(min_opt[0])
-         std::cout << "-min " << minValue << " ";
-       if(max_opt[0])
-         std::cout << "-max " << maxValue << " ";
+
+      if(minmax_opt[0]||min_opt[0]||max_opt[0]){
+       assert(theBand<imgReader.nrOfBand());
+       
if((ulx_opt.size()||uly_opt.size()||lrx_opt.size()||lry_opt.size())&&(imgReader.covers(ulx_opt[0],uly_opt[0],lrx_opt[0],lry_opt[0]))){
+         double uli,ulj,lri,lrj;
+         imgReader.geo2image(ulx_opt[0],uly_opt[0],uli,ulj);
+         imgReader.geo2image(lrx_opt[0],lry_opt[0],lri,lrj);
+         
imgReader.getMinMax(static_cast<int>(uli),static_cast<int>(lri),static_cast<int>(ulj),static_cast<int>(lrj),theBand,minValue,maxValue);
+       }
+       else
+         imgReader.getMinMax(minValue,maxValue,theBand,true);
+       if(minmax_opt[0])
+         std::cout << "-min " << minValue << " -max " << maxValue << " ";
+       else{
+         if(min_opt[0])
+           std::cout << "-min " << minValue << " ";
+         if(max_opt[0])
+           std::cout << "-max " << maxValue << " ";
+       }
       }
     }
     if(relative_opt[0])
@@ -374,9 +380,9 @@ int main(int argc, char *argv[])
 //       }
     }
     if(read_opt[0]){
-      int nband=band_opt.size();
-      if(band_opt[0]<0)
-        nband=imgReader.nrOfBand();
+      // int nband=band_opt.size();
+      // if(band_opt[0]<0)
+      //   nband=imgReader.nrOfBand();
       std::cout.precision(12);
       for(int iband=0;iband<nband;++iband){
         unsigned short theBand=(band_opt[0]<0)? iband : band_opt[iband];
diff --git a/src/apps/pkkalman.cc b/src/apps/pkkalman.cc
index 860b90b..0e67496 100644
--- a/src/apps/pkkalman.cc
+++ b/src/apps/pkkalman.cc
@@ -402,7 +402,8 @@ int main(int argc,char **argv) {
       double c1mod=0;
 
       if(verbose_opt[0])
-         cout << "Calculating regression for " << 
imgReaderModel1.getFileName() << " " << imgReaderModel2.getFileName() << endl;
+       cout << "Calculating regression for " << imgReaderModel1.getFileName() 
<< " " << imgReaderModel2.getFileName() << endl;
+      
       double 
errMod=imgreg.getRMSE(imgReaderModel1,imgReaderModel2,c0mod,c1mod);
       // double 
errMod=imgreg.getRMSE(imgReaderModel1,imgReaderModel2,c0mod,c1mod,verbose_opt[0]);
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-grass/pktools.git

_______________________________________________
Pkg-grass-devel mailing list
Pkg-grass-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

Reply via email to