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 b9007e57db7627269256a8d522bf6ce13456502c Author: Pieter Kempeneers <kempe...@gmail.com> Date: Fri Sep 12 19:02:05 2014 +0200 small changes --- src/apps/pkcrop.cc | 4 +- src/apps/pkdumpogr.cc | 243 +++++++++++++++++++++++++++----------------------- src/apps/pkfilter.cc | 5 +- 3 files changed, 138 insertions(+), 114 deletions(-) diff --git a/src/apps/pkcrop.cc b/src/apps/pkcrop.cc index 2684cd8..d926b91 100644 --- a/src/apps/pkcrop.cc +++ b/src/apps/pkcrop.cc @@ -61,7 +61,7 @@ int main(int argc, char *argv[]) Optionpk<double> nodata_opt("nodata", "nodata", "Nodata value to put in image if out of bounds."); Optionpk<string> resample_opt("r", "resampling-method", "Resampling method (near: nearest neighbor, bilinear: bi-linear interpolation).", "near"); Optionpk<string> description_opt("d", "description", "Set image description"); - Optionpk<bool> verbose_opt("v", "verbose", "verbose", false); + Optionpk<short> verbose_opt("v", "verbose", "verbose", 0); bool doProcess;//stop process when program was invoked with help option (-h --help) try{ @@ -479,7 +479,7 @@ int main(int argc, char *argv[]) writeBuffer.push_back(nodataValue); } else{ - if(verbose_opt[0]) + if(verbose_opt[0]>1) cout << "reading row: " << readRow << endl; try{ if(endCol<imgReader.nrOfCol()-1) diff --git a/src/apps/pkdumpogr.cc b/src/apps/pkdumpogr.cc index 44b1239..2a4e305 100644 --- a/src/apps/pkdumpogr.cc +++ b/src/apps/pkdumpogr.cc @@ -28,6 +28,7 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>. int main(int argc, char *argv[]) { Optionpk<string> input_opt("i", "input", "Input shape file"); + Optionpk<string> layer_opt("ln", "lname", "Layer name(s) in sample (leave empty to select all)"); Optionpk<string> output_opt("o", "output", "Output ASCII file"); Optionpk<string> attribute_opt("n", "name", "names of the attributes to select. Each attribute is stored in a separate band. Default is ALL: write all attributes", "ALL"); Optionpk<bool> pos_opt("pos","pos","include position (x and y)",false); @@ -37,6 +38,7 @@ int main(int argc, char *argv[]) bool doProcess;//stop process when program was invoked with help option (-h --help) try{ doProcess=input_opt.retrieveOption(argc,argv); + layer_opt.retrieveOption(argc,argv); output_opt.retrieveOption(argc,argv); attribute_opt.retrieveOption(argc,argv); pos_opt.retrieveOption(argc,argv); @@ -65,124 +67,143 @@ int main(int argc, char *argv[]) outputFile.open(output_opt[0].c_str(),ios::out); ImgReaderOgr inputReader(input_opt[0]); - if(attribute_opt[0]!="ALL"){ - vector<double> xvector; - vector<double> yvector; - if(inputReader.getGeometryType()==wkbPoint) - inputReader.readXY(xvector,yvector); - Vector2d<std::string> theData(attribute_opt.size()); - for(int ifield=0;ifield<attribute_opt.size();++ifield){ - if(verbose_opt[0]) - cout << "field: " << ifield << endl; - theData[ifield].clear(); - inputReader.readData(theData[ifield],OFTReal,attribute_opt[ifield],0,verbose_opt[0]); - } - if(verbose_opt[0]){ - std::cout << "number of fields: " << theData.size() << std::endl; - std::cout << "number of samples: " << theData[0].size() << std::endl; - } - if(transpose_opt[0]){ - if(pos_opt[0]&&(inputReader.getGeometryType()==wkbPoint)){ - if(output_opt.size()){ - outputFile << "X" << " "; - for(int isample=0;isample<xvector.size();++isample){ - outputFile << xvector[isample]; - if(isample<xvector.size()-1) - outputFile << " "; - else - outputFile << std::endl; - } - outputFile << "Y" << " "; - for(int isample=0;isample<yvector.size();++isample){ - outputFile << yvector[isample]; - if(isample<yvector.size()-1) - outputFile << " "; - else - outputFile << std::endl; - } - } - else{ - std::cout << "X" << " "; - for(int isample=0;isample<xvector.size();++isample){ - std::cout << xvector[isample]; - if(isample<xvector.size()-1) - std::cout << " "; - else - std::cout << std::endl; - } - std::cout << "Y" << " "; - for(int isample=0;isample<yvector.size();++isample){ - std::cout << yvector[isample]; - if(isample<yvector.size()-1) - std::cout << " "; - else - std::cout << std::endl; - } - } + + //support multiple layers + int nlayerRead=inputReader.getDataSource()->GetLayerCount(); + if(verbose_opt[0]) + cout << "number of layers: " << nlayerRead << endl; + + for(int ilayer=0;ilayer<nlayerRead;++ilayer){ + OGRLayer *readLayer=inputReader.getLayer(ilayer); + string currentLayername=readLayer->GetName(); + if(layer_opt.size()) + if(find(layer_opt.begin(),layer_opt.end(),currentLayername)==layer_opt.end()) + continue; + if(verbose_opt[0]) + cout << "processing layer " << currentLayername << endl; + if(layer_opt.size()) + cout << " --lname " << currentLayername; + + if(attribute_opt[0]!="ALL"){ + vector<double> xvector; + vector<double> yvector; + if(inputReader.getGeometryType()==wkbPoint) + inputReader.readXY(xvector,yvector); + Vector2d<std::string> theData(attribute_opt.size()); + for(int ifield=0;ifield<attribute_opt.size();++ifield){ + if(verbose_opt[0]) + cout << "field: " << ifield << endl; + theData[ifield].clear(); + inputReader.readData(theData[ifield],OFTReal,attribute_opt[ifield],ilayer,verbose_opt[0]); + } + if(verbose_opt[0]){ + std::cout << "number of fields: " << theData.size() << std::endl; + std::cout << "number of samples: " << theData[0].size() << std::endl; } - for(int ifield=0;ifield<theData.size();++ifield){ - if(output_opt.size()){ - outputFile << ifield << " "; - for(int isample=0;isample<theData[0].size();++isample){ - outputFile << theData[ifield][isample]; - if(isample<theData[0].size()-1) - outputFile << " "; - else - outputFile << std::endl; - } - } - else{ - std::cout << ifield << " "; - for(int isample=0;isample<theData[0].size();++isample){ - std::cout << theData[ifield][isample]; - if(isample<theData[0].size()-1) - std::cout << " "; - else - std::cout << std::endl; - } - } + if(transpose_opt[0]){ + if(pos_opt[0]&&(inputReader.getGeometryType()==wkbPoint)){ + if(output_opt.size()){ + outputFile << "X" << " "; + for(int isample=0;isample<xvector.size();++isample){ + outputFile << xvector[isample]; + if(isample<xvector.size()-1) + outputFile << " "; + else + outputFile << std::endl; + } + outputFile << "Y" << " "; + for(int isample=0;isample<yvector.size();++isample){ + outputFile << yvector[isample]; + if(isample<yvector.size()-1) + outputFile << " "; + else + outputFile << std::endl; + } + } + else{ + std::cout << "X" << " "; + for(int isample=0;isample<xvector.size();++isample){ + std::cout << xvector[isample]; + if(isample<xvector.size()-1) + std::cout << " "; + else + std::cout << std::endl; + } + std::cout << "Y" << " "; + for(int isample=0;isample<yvector.size();++isample){ + std::cout << yvector[isample]; + if(isample<yvector.size()-1) + std::cout << " "; + else + std::cout << std::endl; + } + } + } + for(int ifield=0;ifield<theData.size();++ifield){ + if(output_opt.size()){ + outputFile << ifield << " "; + for(int isample=0;isample<theData[0].size();++isample){ + outputFile << theData[ifield][isample]; + if(isample<theData[0].size()-1) + outputFile << " "; + else + outputFile << std::endl; + } + } + else{ + std::cout << ifield << " "; + for(int isample=0;isample<theData[0].size();++isample){ + std::cout << theData[ifield][isample]; + if(isample<theData[0].size()-1) + std::cout << " "; + else + std::cout << std::endl; + } + } + } } + else{ + for(int isample=0;isample<theData[0].size();++isample){ + if(output_opt.size()){ + outputFile << isample << " "; + if(pos_opt[0]) + outputFile << xvector[isample] << " " << yvector[isample] << " "; + for(int ifield=0;ifield<theData.size();++ifield){ + outputFile << theData[ifield][isample]; + if(ifield<theData.size()-1) + outputFile << " "; + else + outputFile << std::endl; + } + } + else{ + std::cout << isample << " "; + if(pos_opt[0]) + std::cout << xvector[isample] << " " << yvector[isample] << " "; + for(int ifield=0;ifield<theData.size();++ifield){ + std::cout << theData[ifield][isample]; + if(ifield<theData.size()-1) + std::cout << " "; + else + std::cout << std::endl; + } + } + } + } + if(output_opt.size()) + outputFile.close(); } else{ - for(int isample=0;isample<theData[0].size();++isample){ - if(output_opt.size()){ - outputFile << isample << " "; - if(pos_opt[0]) - outputFile << xvector[isample] << " " << yvector[isample] << " "; - for(int ifield=0;ifield<theData.size();++ifield){ - outputFile << theData[ifield][isample]; - if(ifield<theData.size()-1) - outputFile << " "; - else - outputFile << std::endl; - } - } - else{ - std::cout << isample << " "; - if(pos_opt[0]) - std::cout << xvector[isample] << " " << yvector[isample] << " "; - for(int ifield=0;ifield<theData.size();++ifield){ - std::cout << theData[ifield][isample]; - if(ifield<theData.size()-1) - std::cout << " "; - else - std::cout << std::endl; - } - } + if(output_opt.size()){ + ofstream outputFile(output_opt[0].c_str(),ios::out); + outputFile << imgReader; + outputFile.close(); } + else + std::cout << imgReader; } - if(output_opt.size()) - outputFile.close(); - } - else{ - if(output_opt.size()){ - ofstream outputFile(output_opt[0].c_str(),ios::out); - outputFile << imgReader; - outputFile.close(); - } - else - std::cout << imgReader; } + inputReader.close(); imgReader.close(); } diff --git a/src/apps/pkfilter.cc b/src/apps/pkfilter.cc index 4ea7e06..11bc602 100644 --- a/src/apps/pkfilter.cc +++ b/src/apps/pkfilter.cc @@ -706,7 +706,10 @@ int main(int argc,char **argv) { if(verbose_opt[0]) std::cout << "classes set" << std::endl; default: - filter2d.doit(input,output,method_opt[0],dimX_opt[0],dimY_opt[0],down_opt[0],disc_opt[0]); + if(dimZ_opt.size()){ + } + else + filter2d.doit(input,output,method_opt[0],dimX_opt[0],dimY_opt[0],down_opt[0],disc_opt[0]); break; } } -- 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