[pktools] 316/375: support multiple bands for statistics in pkinfo
Bas Couwenberg
sebastic at xs4all.nl
Wed Dec 3 21:54:25 UTC 2014
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 <kempenep at 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
More information about the Pkg-grass-devel
mailing list