[pktools] 319/375: small changes
Bas Couwenberg
sebastic at xs4all.nl
Wed Dec 3 21:54:26 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 b9007e57db7627269256a8d522bf6ce13456502c
Author: Pieter Kempeneers <kempenep at 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
More information about the Pkg-grass-devel
mailing list