[pktools] 43/375: converted all apps for new Optionpk.h
Bas Couwenberg
sebastic at xs4all.nl
Wed Dec 3 21:53:56 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 48453a50c9d52236dcf8aa610bf03c4f4580f928
Author: user <user at osgeolive.(none)>
Date: Mon Jan 28 11:55:33 2013 +0100
converted all apps for new Optionpk.h
---
src/apps/pkascii2img.cc | 63 ++++++++-------------
src/apps/pkascii2ogr.cc | 58 +++++++-------------
src/apps/pkclassify_nn.cc | 104 ++++++++++++++---------------------
src/apps/pkclassify_svm.cc | 2 -
src/apps/pkcreatect.cc | 60 +++++++-------------
src/apps/pkcrop.cc | 81 ++++++++++-----------------
src/apps/pkdiff.cc | 78 ++++++++++----------------
src/apps/pkdsm2shadow.cc | 57 ++++++-------------
src/apps/pkdumpimg.cc | 64 ++++++++--------------
src/apps/pkdumpogr.cc | 48 +++++-----------
src/apps/pkegcs.cc | 50 ++++++-----------
src/apps/pkextract.cc | 84 +++++++++++-----------------
src/apps/pkfillnodata.cc | 48 +++++-----------
src/apps/pkfilter.cc | 74 +++++++++----------------
src/apps/pkfs_svm.cc | 93 ++++++++++++-------------------
src/apps/pkgetmask.cc | 63 +++++++--------------
src/apps/pklas2img.cc | 95 +++++++++++++-------------------
src/apps/pkmosaic.cc | 93 ++++++++++++-------------------
src/apps/pkndvi.cc | 64 ++++++++--------------
src/apps/pkopt_svm.cc | 92 ++++++++++++-------------------
src/apps/pkreclass.cc | 66 ++++++++--------------
src/apps/pksensormodel.cc | 125 ++++++++++++++++++------------------------
src/apps/pksetmask.cc | 58 ++++++--------------
src/apps/pksieve.cc | 49 +++++------------
src/apps/pkstat.cc | 81 ++++++++++-----------------
src/apps/pkstatogr.cc | 56 ++++++-------------
src/base/Optionpk.h | 134 ++++++++++++++++++++++++++++-----------------
27 files changed, 724 insertions(+), 1216 deletions(-)
diff --git a/src/apps/pkascii2img.cc b/src/apps/pkascii2img.cc
index 03caf61..1b51861 100644
--- a/src/apps/pkascii2img.cc
+++ b/src/apps/pkascii2img.cc
@@ -23,22 +23,9 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include <assert.h>
#include "imageclasses/ImgWriterGdal.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","introduce -uli -ulj to crop based on image coordinates",false);
Optionpk<std::string> input_opt("i","input","input ASCII file");
Optionpk<string> output_opt("o", "output", "Output image file");
Optionpk<string> dataType_opt("ot", "otype", "Data type for output image ({Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/CInt16/CInt32/CFloat32/CFloat64}). Empty string: inherit type from input image","Byte");
@@ -53,38 +40,32 @@ int main(int argc, char *argv[])
Optionpk<string> description_opt("d", "description", "Set image description");
Optionpk<bool> verbose_opt("v", "verbose", "verbose (false)", false);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ dataType_opt.retrieveOption(argc,argv);
+ imageType_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ ulx_opt.retrieveOption(argc,argv);
+ uly_opt.retrieveOption(argc,argv);
+ dx_opt.retrieveOption(argc,argv);
+ dy_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ projection_opt.retrieveOption(argc,argv);
+ description_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- dataType_opt.retrieveOption(argc,argv);
- imageType_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- ulx_opt.retrieveOption(argc,argv);
- uly_opt.retrieveOption(argc,argv);
- dx_opt.retrieveOption(argc,argv);
- dy_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- projection_opt.retrieveOption(argc,argv);
- description_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << "usage: pkascii2img -i asciifile -o imgfile [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
+
assert(input_opt.size());
assert(output_opt.size());
ImgWriterGdal imgWriter;
diff --git a/src/apps/pkascii2ogr.cc b/src/apps/pkascii2ogr.cc
index 6ab9c2c..60791ba 100644
--- a/src/apps/pkascii2ogr.cc
+++ b/src/apps/pkascii2ogr.cc
@@ -23,22 +23,8 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "base/Optionpk.h"
#include "imageclasses/ImgWriterOgr.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
Optionpk<string> input_opt("i","input","Input ASCII file");
Optionpk<string> output_opt("o", "output", "Output file");
Optionpk<short> colX_opt("x", "x", "column number of x (0)", 0);
@@ -51,34 +37,28 @@ int main(int argc, char *argv[])
Optionpk<char> fs_opt("fs","fs","field separator.",' ');
Optionpk<int> verbose_opt("v", "verbose", "verbose (0)", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- colX_opt.retrieveOption(argc,argv);
- colY_opt.retrieveOption(argc,argv);
- polygon_opt.retrieveOption(argc,argv);
- fname_opt.retrieveOption(argc,argv);
- ftype_opt.retrieveOption(argc,argv);
- itype_opt.retrieveOption(argc,argv);
- projection_opt.retrieveOption(argc,argv);
- fs_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]){
- cout << version_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ colX_opt.retrieveOption(argc,argv);
+ colY_opt.retrieveOption(argc,argv);
+ polygon_opt.retrieveOption(argc,argv);
+ fname_opt.retrieveOption(argc,argv);
+ ftype_opt.retrieveOption(argc,argv);
+ itype_opt.retrieveOption(argc,argv);
+ projection_opt.retrieveOption(argc,argv);
+ fs_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
-
- if(help_opt[0]){
- cout << "usage: pksensormodel -i asciifile [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
string theProjection;
diff --git a/src/apps/pkclassify_nn.cc b/src/apps/pkclassify_nn.cc
index a8574d1..afcd750 100644
--- a/src/apps/pkclassify_nn.cc
+++ b/src/apps/pkclassify_nn.cc
@@ -30,10 +30,6 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "floatfann.h"
#include "myfann_cpp.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
void reclass(const vector<float>& result, const vector<int>& vreclass, const vector<double>& priors, unsigned short aggregation, vector<float>& theResultReclass);
void reclass(const vector<float>& result, const vector<int>& vreclass, const vector<double>& priors, unsigned short aggregation, vector<float>& theResultReclass){
@@ -87,17 +83,6 @@ int main(int argc, char *argv[])
vector<double> priorsReclass;
//--------------------------- command line options ------------------------------------
-
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "input image");
Optionpk<string> training_opt("t", "training", "training shape file. A single shape file contains all training features (must be set as: B0, B1, B2,...) for all classes (class numbers identified by label option). Use multiple training files for bootstrap aggregation (alternative to the bag and bsize options, where a random subset is taken from a single training file)");
Optionpk<string> label_opt("label", "label", "identifier for class label in training shape file.","label");
@@ -132,57 +117,50 @@ int main(int argc, char *argv[])
Optionpk<string> prob_opt("\0", "prob", "probability image. Default is no probability image");
Optionpk<short> verbose_opt("v", "verbose", "set to: 0 (results only), 1 (confusion matrix), 2 (debug)",0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- input_opt.retrieveOption(argc,argv);
- training_opt.retrieveOption(argc,argv);
- label_opt.retrieveOption(argc,argv);
- reclass_opt.retrieveOption(argc,argv);
- balance_opt.retrieveOption(argc,argv);
- minSize_opt.retrieveOption(argc,argv);
- start_opt.retrieveOption(argc,argv);
- end_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- offset_opt.retrieveOption(argc,argv);
- scale_opt.retrieveOption(argc,argv);
- aggreg_opt.retrieveOption(argc,argv);
- priors_opt.retrieveOption(argc,argv);
- cv_opt.retrieveOption(argc,argv);
- nneuron_opt.retrieveOption(argc,argv);
- connection_opt.retrieveOption(argc,argv);
- weights_opt.retrieveOption(argc,argv);
- learning_opt.retrieveOption(argc,argv);
- maxit_opt.retrieveOption(argc,argv);
- comb_opt.retrieveOption(argc,argv);
- bag_opt.retrieveOption(argc,argv);
- bagSize_opt.retrieveOption(argc,argv);
- classBag_opt.retrieveOption(argc,argv);
- mask_opt.retrieveOption(argc,argv);
- maskValue_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- prob_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ input_opt.retrieveOption(argc,argv);
+ training_opt.retrieveOption(argc,argv);
+ label_opt.retrieveOption(argc,argv);
+ reclass_opt.retrieveOption(argc,argv);
+ balance_opt.retrieveOption(argc,argv);
+ minSize_opt.retrieveOption(argc,argv);
+ start_opt.retrieveOption(argc,argv);
+ end_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ offset_opt.retrieveOption(argc,argv);
+ scale_opt.retrieveOption(argc,argv);
+ aggreg_opt.retrieveOption(argc,argv);
+ priors_opt.retrieveOption(argc,argv);
+ cv_opt.retrieveOption(argc,argv);
+ nneuron_opt.retrieveOption(argc,argv);
+ connection_opt.retrieveOption(argc,argv);
+ weights_opt.retrieveOption(argc,argv);
+ learning_opt.retrieveOption(argc,argv);
+ maxit_opt.retrieveOption(argc,argv);
+ comb_opt.retrieveOption(argc,argv);
+ bag_opt.retrieveOption(argc,argv);
+ bagSize_opt.retrieveOption(argc,argv);
+ classBag_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ maskValue_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ prob_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- cout << "usage: pkclassify_nn -i testimage -o outputimage -t training [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
if(verbose_opt[0]>=1){
diff --git a/src/apps/pkclassify_svm.cc b/src/apps/pkclassify_svm.cc
index e35bc40..db3b615 100644
--- a/src/apps/pkclassify_svm.cc
+++ b/src/apps/pkclassify_svm.cc
@@ -17,7 +17,6 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with pktools. If not, see <http://www.gnu.org/licenses/>.
***********************************************************************/
-
#include <vector>
#include <map>
#include <algorithm>
@@ -86,7 +85,6 @@ int main(int argc, char *argv[])
vector<double> priorsReclass;
//--------------------------- command line options ------------------------------------
-
Optionpk<string> input_opt("i", "input", "input image");
Optionpk<string> training_opt("t", "training", "training shape file. A single shape file contains all training features (must be set as: B0, B1, B2,...) for all classes (class numbers identified by label option). Use multiple training files for bootstrap aggregation (alternative to the bag and bsize options, where a random subset is taken from a single training file)");
Optionpk<string> label_opt("label", "label", "identifier for class label in training shape file.","label");
diff --git a/src/apps/pkcreatect.cc b/src/apps/pkcreatect.cc
index b911e30..c880cce 100644
--- a/src/apps/pkcreatect.cc
+++ b/src/apps/pkcreatect.cc
@@ -22,10 +22,6 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "imageclasses/ImgWriterGdal.h"
#include "base/Optionpk.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
using namespace std;
int main(int argc,char **argv) {
@@ -34,16 +30,6 @@ int main(int argc,char **argv) {
short green=-1;
short blue=-1;
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "Input image file", "");
Optionpk<string> output_opt("o", "output", "Output image file", "");
Optionpk<string> legend_opt("l", "legend", "Create legend as png file", "");
@@ -57,36 +43,28 @@ int main(int argc,char **argv) {
Optionpk<string> description_opt("d", "description", "Set image description", "");
Optionpk<bool> verbose_opt("v", "verbose", "verbose", false);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ legend_opt.retrieveOption(argc,argv);
+ dim_opt.retrieveOption(argc,argv);
+ min_opt.retrieveOption(argc,argv);
+ max_opt.retrieveOption(argc,argv);
+ grey_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ description_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- legend_opt.retrieveOption(argc,argv);
- dim_opt.retrieveOption(argc,argv);
- min_opt.retrieveOption(argc,argv);
- max_opt.retrieveOption(argc,argv);
- grey_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- description_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << "usage: pkcreatect [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
GDALColorTable colorTable;
diff --git a/src/apps/pkcrop.cc b/src/apps/pkcrop.cc
index 263f0ca..6a4e71b 100644
--- a/src/apps/pkcrop.cc
+++ b/src/apps/pkcrop.cc
@@ -28,22 +28,8 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "base/Optionpk.h"
#include "algorithms/Egcs.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "Input image file(s). If input contains multiple images, a multi-band output is created", "");
Optionpk<string> output_opt("o", "output", "Output image file", "");
Optionpk<string> projection_opt("p", "projection", "projection in EPSG format (leave blank to copy from input file, use EPSG:3035 to use European projection and to force to European grid", "");
@@ -67,46 +53,39 @@ int main(int argc, char *argv[])
Optionpk<string> description_opt("d", "description", "Set image description", "");
Optionpk<bool> verbose_opt("v", "verbose", "verbose", false);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- projection_opt.retrieveOption(argc,argv);
- extent_opt.retrieveOption(argc,argv);
- mask_opt.retrieveOption(argc,argv);
- ulx_opt.retrieveOption(argc,argv);
- uly_opt.retrieveOption(argc,argv);
- lrx_opt.retrieveOption(argc,argv);
- lry_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- scale_opt.retrieveOption(argc,argv);
- offset_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- dx_opt.retrieveOption(argc,argv);
- dy_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- resample_opt.retrieveOption(argc,argv);
- description_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ projection_opt.retrieveOption(argc,argv);
+ extent_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ ulx_opt.retrieveOption(argc,argv);
+ uly_opt.retrieveOption(argc,argv);
+ lrx_opt.retrieveOption(argc,argv);
+ lry_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ scale_opt.retrieveOption(argc,argv);
+ offset_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ dx_opt.retrieveOption(argc,argv);
+ dy_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ resample_opt.retrieveOption(argc,argv);
+ description_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- cout << "usage: pkcrop -i inputimage -o outputimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
RESAMPLE theResample;
diff --git a/src/apps/pkdiff.cc b/src/apps/pkdiff.cc
index e6b51b2..ac673ad 100644
--- a/src/apps/pkdiff.cc
+++ b/src/apps/pkdiff.cc
@@ -25,22 +25,8 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "Optionpk.h"
#include "algorithms/ConfusionMatrix.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","todo: support different data types (now only integer type supported)",false);
Optionpk<string> input_opt("i", "input", "Input image file.", "");
Optionpk<string> reference_opt("r", "reference", "Reference image file", "");
Optionpk<string> output_opt("o", "output", "Output image file. Default is empty: no output image, only report difference or identical.", "");
@@ -63,45 +49,37 @@ int main(int argc, char *argv[])
Optionpk<string> option_opt("co", "co", "options: NAME=VALUE [-co COMPRESS=LZW] [-co INTERLEAVE=BAND]");
Optionpk<short> verbose_opt("v", "verbose", "verbose (default value is 0)", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ reference_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ valueE_opt.retrieveOption(argc,argv);
+ valueO_opt.retrieveOption(argc,argv);
+ valueC_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ mflag_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ confusion_opt.retrieveOption(argc,argv);
+ lzw_opt.retrieveOption(argc,argv);
+ labelref_opt.retrieveOption(argc,argv);
+ labelclass_opt.retrieveOption(argc,argv);
+ class_opt.retrieveOption(argc,argv);
+ boundary_opt.retrieveOption(argc,argv);
+ disc_opt.retrieveOption(argc,argv);
+ homogeneous_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- reference_opt.retrieveOption(argc,argv);
- mask_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- valueE_opt.retrieveOption(argc,argv);
- valueO_opt.retrieveOption(argc,argv);
- valueC_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- mflag_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- confusion_opt.retrieveOption(argc,argv);
- lzw_opt.retrieveOption(argc,argv);
- labelref_opt.retrieveOption(argc,argv);
- labelclass_opt.retrieveOption(argc,argv);
- class_opt.retrieveOption(argc,argv);
- boundary_opt.retrieveOption(argc,argv);
- disc_opt.retrieveOption(argc,argv);
- homogeneous_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << "usage: pkdiff -i inputimage -r referenceimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
ImgReaderGdal inputReader;
diff --git a/src/apps/pkdsm2shadow.cc b/src/apps/pkdsm2shadow.cc
index 87dbd6f..ea1d6f4 100644
--- a/src/apps/pkdsm2shadow.cc
+++ b/src/apps/pkdsm2shadow.cc
@@ -30,25 +30,10 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "imageclasses/ImgReaderGdal.h"
#include "imageclasses/ImgWriterGdal.h"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
/*------------------
Main procedure
----------------*/
int main(int argc,char **argv) {
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<std::string> input_opt("i","input","input image file","");
Optionpk<std::string> output_opt("o", "output", "Output image file", "");
Optionpk<double> sza_opt("sza", "sza", "Sun zenith angle.");
@@ -60,34 +45,26 @@ int main(int argc,char **argv) {
Optionpk<std::string> option_opt("co", "co", "options: NAME=VALUE [-co COMPRESS=LZW] [-co INTERLEAVE=BAND]");
Optionpk<short> verbose_opt("v", "verbose", "verbose mode if > 0", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- sza_opt.retrieveOption(argc,argv);
- saa_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ sza_opt.retrieveOption(argc,argv);
+ saa_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- cout << "usage: pkveg2shadow -i inputimage -o outputimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
ImgReaderGdal input;
diff --git a/src/apps/pkdumpimg.cc b/src/apps/pkdumpimg.cc
index 36e82de..ea7e52a 100644
--- a/src/apps/pkdumpimg.cc
+++ b/src/apps/pkdumpimg.cc
@@ -32,16 +32,6 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","introduce -uli -ulj to crop based on image coordinates",false);
Optionpk<std::string> input_opt("i","input","input image file","");
Optionpk<string> output_opt("o", "output", "Output ascii file (Default is empty: use stdout", "");
Optionpk<string> otype_opt("ot", "otype", "Data type for output ({Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/CInt16/CInt32/CFloat32/CFloat64}). Empty string: inherit type from input image", "");
@@ -59,40 +49,32 @@ int main(int argc, char *argv[])
Optionpk<double> nodata_opt("nodata", "nodata", "set no data value(s) for calculations (flags in input image)");
Optionpk<short> verbose_opt("v", "verbose", "verbose (Default: 0)", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ extent_opt.retrieveOption(argc,argv);
+ ulx_opt.retrieveOption(argc,argv);
+ uly_opt.retrieveOption(argc,argv);
+ lrx_opt.retrieveOption(argc,argv);
+ lry_opt.retrieveOption(argc,argv);
+ dx_opt.retrieveOption(argc,argv);
+ dy_opt.retrieveOption(argc,argv);
+ resample_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ nodata_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- extent_opt.retrieveOption(argc,argv);
- ulx_opt.retrieveOption(argc,argv);
- uly_opt.retrieveOption(argc,argv);
- lrx_opt.retrieveOption(argc,argv);
- lry_opt.retrieveOption(argc,argv);
- dx_opt.retrieveOption(argc,argv);
- dy_opt.retrieveOption(argc,argv);
- resample_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- nodata_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << "usage: pkdumpimg -i imgfile [-o asciifile] [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
ofstream outputStream;
diff --git a/src/apps/pkdumpogr.cc b/src/apps/pkdumpogr.cc
index a64c64e..53a498b 100644
--- a/src/apps/pkdumpogr.cc
+++ b/src/apps/pkdumpogr.cc
@@ -26,22 +26,8 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "algorithms/Histogram.h"
#include "pkdumpogr.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "Input shape file", "");
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");
@@ -49,30 +35,22 @@ int main(int argc, char *argv[])
Optionpk<bool> transpose_opt("t","transpose","transpose output (does not work for -n ALL ",false);
Optionpk<short> verbose_opt("v", "verbose", "verbose (Default: 0)", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- attribute_opt.retrieveOption(argc,argv);
- pos_opt.retrieveOption(argc,argv);
- transpose_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ attribute_opt.retrieveOption(argc,argv);
+ pos_opt.retrieveOption(argc,argv);
+ transpose_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- cout << "usage: pkdumpogr -i input [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
ImgReaderOgr imgReader;
diff --git a/src/apps/pkegcs.cc b/src/apps/pkegcs.cc
index 60357f3..c7fa5f8 100644
--- a/src/apps/pkegcs.cc
+++ b/src/apps/pkegcs.cc
@@ -21,21 +21,8 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "imageclasses/ImgReaderGdal.h"
#include "algorithms/Egcs.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
Optionpk<string> image_opt("i","image","input image to analyse","");
Optionpk<unsigned short> band_opt("b", "band", "Band specific information", 0);
Optionpk<string> cell2bb_opt("c2b","cell2bb","convert cell code to geo coordinates of boundingbox (e.g. 32-AB)","");
@@ -47,29 +34,28 @@ int main(int argc, char *argv[])
Optionpk<double> x_opt("x","x","x coordinate in epsg:3035",0);
Optionpk<double> y_opt("y","y","y coordinate in epsg:3035",0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- if(version_opt[0]){
- cout << version_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=image_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ cell2bb_opt.retrieveOption(argc,argv);
+ cell2mid_opt.retrieveOption(argc,argv);
+ geo2cell_opt.retrieveOption(argc,argv);
+ refpixel_opt.retrieveOption(argc,argv);
+ maskValue_opt.retrieveOption(argc,argv);
+ dx_opt.retrieveOption(argc,argv);
+ x_opt.retrieveOption(argc,argv);
+ y_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
-
- image_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- cell2bb_opt.retrieveOption(argc,argv);
- cell2mid_opt.retrieveOption(argc,argv);
- geo2cell_opt.retrieveOption(argc,argv);
- refpixel_opt.retrieveOption(argc,argv);
- maskValue_opt.retrieveOption(argc,argv);
- dx_opt.retrieveOption(argc,argv);
- x_opt.retrieveOption(argc,argv);
- y_opt.retrieveOption(argc,argv);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
+ }
Egcs egcs;
if(cell2bb_opt[0]!=""){
diff --git a/src/apps/pkextract.cc b/src/apps/pkextract.cc
index c3ac4f9..b18b17c 100644
--- a/src/apps/pkextract.cc
+++ b/src/apps/pkextract.cc
@@ -29,10 +29,6 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "base/Optionpk.h"
#include "algorithms/Histogram.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#ifndef PI
#define PI 3.1415926535897932384626433832795
#endif
@@ -40,16 +36,6 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> image_opt("i", "image", "Input image file", "");
Optionpk<string> sample_opt("s", "sample", "Input sample file (shape) or class file (e.g. Corine CLC) if class option is set", "");
Optionpk<string> mask_opt("m", "mask", "Mask image file", "");
@@ -75,48 +61,40 @@ int main(int argc, char *argv[])
Optionpk<short> rule_opt("r", "rule", "rule how to report image information per feature. 0: value at each point (or at centroid of the polygon if line is not set), 1: mean value (written to centroid of polygon if line is not set), 2: proportion classes, 3: custom, 4: minimum of polygon).", 0);
Optionpk<short> verbose_opt("v", "verbose", "verbose mode if > 0", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- image_opt.retrieveOption(argc,argv);
- sample_opt.retrieveOption(argc,argv);
- mask_opt.retrieveOption(argc,argv);
- invalid_opt.retrieveOption(argc,argv);
- class_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- keepFeatures_opt.retrieveOption(argc,argv);
- bufferOutput_opt.retrieveOption(argc,argv);
- geo_opt.retrieveOption(argc,argv);
- down_opt.retrieveOption(argc,argv);
- threshold_opt.retrieveOption(argc,argv);
- min_opt.retrieveOption(argc,argv);
- boundary_opt.retrieveOption(argc,argv);
- rbox_opt.retrieveOption(argc,argv);
- cbox_opt.retrieveOption(argc,argv);
- disc_opt.retrieveOption(argc,argv);
- ftype_opt.retrieveOption(argc,argv);
- ltype_opt.retrieveOption(argc,argv);
- fieldname_opt.retrieveOption(argc,argv);
- label_opt.retrieveOption(argc,argv);
- polygon_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- rule_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- std::cout << version_opt.getHelp() << std::endl;
- std::cout << "todo: " << todo_opt.getHelp() << std::endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=image_opt.retrieveOption(argc,argv);
+ sample_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ invalid_opt.retrieveOption(argc,argv);
+ class_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ keepFeatures_opt.retrieveOption(argc,argv);
+ bufferOutput_opt.retrieveOption(argc,argv);
+ geo_opt.retrieveOption(argc,argv);
+ down_opt.retrieveOption(argc,argv);
+ threshold_opt.retrieveOption(argc,argv);
+ min_opt.retrieveOption(argc,argv);
+ boundary_opt.retrieveOption(argc,argv);
+ rbox_opt.retrieveOption(argc,argv);
+ cbox_opt.retrieveOption(argc,argv);
+ disc_opt.retrieveOption(argc,argv);
+ ftype_opt.retrieveOption(argc,argv);
+ ltype_opt.retrieveOption(argc,argv);
+ fieldname_opt.retrieveOption(argc,argv);
+ label_opt.retrieveOption(argc,argv);
+ polygon_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ rule_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- std::cout << Optionpk<bool>::getGPLv3License() << std::endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- std::cout << "usage: pkextract -i input -s sample [OPTIONS]" << std::endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
if(verbose_opt[0])
diff --git a/src/apps/pkfillnodata.cc b/src/apps/pkfillnodata.cc
index f30967b..90136b9 100644
--- a/src/apps/pkfillnodata.cc
+++ b/src/apps/pkfillnodata.cc
@@ -25,20 +25,7 @@ extern "C" {
}
#include "base/Optionpk.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
int main(int argc,char **argv) {
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
Optionpk<string> input_opt("i", "input", "Input image file (WARNING: will be overwritten with output!", "");
Optionpk<int> band_opt("b", "band", "band(s) to process (Default is -1: process all bands)", -1);
Optionpk<string> mask_opt("m", "mask", "Mask band indicating pixels to be interpolated (zero valued) ", "");
@@ -47,30 +34,23 @@ int main(int argc,char **argv) {
Optionpk<int> iteration_opt("it", "iteration", "Number of 3x3 smoothing filter passes to run (default 0)", 0);
Optionpk<short> verbose_opt("v", "verbose", "verbose", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]){
- cout << version_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ distance_opt.retrieveOption(argc,argv);
+ iteration_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
-
- input_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- mask_opt.retrieveOption(argc,argv);
- distance_opt.retrieveOption(argc,argv);
- iteration_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << "usage: pkfillnodata -i inputimage -o outputimage -m maskimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
GDALAllRegister();
diff --git a/src/apps/pkfilter.cc b/src/apps/pkfilter.cc
index 7beadb0..c8846d5 100644
--- a/src/apps/pkfilter.cc
+++ b/src/apps/pkfilter.cc
@@ -32,24 +32,10 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "imageclasses/ImgWriterGdal.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
/*------------------
Main procedure
----------------*/
int main(int argc,char **argv) {
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<std::string> input_opt("i","input","input image file");
Optionpk<std::string> output_opt("o", "output", "Output image file");
Optionpk<bool> disc_opt("c", "circular", "circular disc kernel for dilation and erosion", false);
@@ -70,43 +56,35 @@ int main(int argc,char **argv) {
Optionpk<short> down_opt("d", "down", "down sampling factor. Use value 1 for no downsampling)", 1);
Optionpk<short> verbose_opt("v", "verbose", "verbose mode if > 0", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- disc_opt.retrieveOption(argc,argv);
- angle_opt.retrieveOption(argc,argv);
- function_opt.retrieveOption(argc,argv);
- dimX_opt.retrieveOption(argc,argv);
- dimY_opt.retrieveOption(argc,argv);
- dimZ_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- class_opt.retrieveOption(argc,argv);
- threshold_opt.retrieveOption(argc,argv);
- mask_opt.retrieveOption(argc,argv);
- tap_opt.retrieveOption(argc,argv);
- tapz_opt.retrieveOption(argc,argv);
- down_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ disc_opt.retrieveOption(argc,argv);
+ angle_opt.retrieveOption(argc,argv);
+ function_opt.retrieveOption(argc,argv);
+ dimX_opt.retrieveOption(argc,argv);
+ dimY_opt.retrieveOption(argc,argv);
+ dimZ_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ class_opt.retrieveOption(argc,argv);
+ threshold_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ tap_opt.retrieveOption(argc,argv);
+ tapz_opt.retrieveOption(argc,argv);
+ down_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- cout << "usage: pkfilter -i inputimage -o outputimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
ImgReaderGdal input;
diff --git a/src/apps/pkfs_svm.cc b/src/apps/pkfs_svm.cc
index 24c4969..1277e1f 100644
--- a/src/apps/pkfs_svm.cc
+++ b/src/apps/pkfs_svm.cc
@@ -27,10 +27,6 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "algorithms/svm.h"
#include "pkclassify_nn.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#define Malloc(type,n) (type *)malloc((n)*sizeof(type))
enum SelectorValue { NA=0, SFFS=1, SFS=2, SBS=3, BFS=4 };
@@ -146,16 +142,6 @@ int main(int argc, char *argv[])
// vector<double> priors;
//--------------------------- command line options ------------------------------------
- std::string versionString="version ";
- versionString+=static_cast<string>(VERSION);
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> training_opt("t", "training", "training shape file. A single shape file contains all training features (must be set as: B0, B1, B2,...) for all classes (class numbers identified by label option).");
Optionpk<string> label_opt("\0", "label", "identifier for class label in training shape file.","label");
Optionpk<unsigned short> maxFeatures_opt("n", "nf", "number of features to select (0 to select optimal number, see also ecost option)", 0);
@@ -170,53 +156,46 @@ int main(int argc, char *argv[])
Optionpk<string> selector_opt("sm", "sm", "feature selection method (sffs=sequential floating forward search,sfs=sequential forward search, sbs, sequential backward search ,bfs=brute force search)","sffs");
Optionpk<float> epsilon_cost_opt("ecost", "ecost", "epsilon for stopping criterion in cost function to determine optimal number of features",0.001);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
- training_opt.retrieveOption(argc,argv);
- maxFeatures_opt.retrieveOption(argc,argv);
- label_opt.retrieveOption(argc,argv);
- reclass_opt.retrieveOption(argc,argv);
- balance_opt.retrieveOption(argc,argv);
- minSize_opt.retrieveOption(argc,argv);
- start_opt.retrieveOption(argc,argv);
- end_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- offset_opt.retrieveOption(argc,argv);
- scale_opt.retrieveOption(argc,argv);
- // priors_opt.retrieveOption(argc,argv);
- svm_type_opt.retrieveOption(argc,argv);
- kernel_type_opt.retrieveOption(argc,argv);
- kernel_degree_opt.retrieveOption(argc,argv);
- gamma_opt.retrieveOption(argc,argv);
- coef0_opt.retrieveOption(argc,argv);
- ccost_opt.retrieveOption(argc,argv);
- nu_opt.retrieveOption(argc,argv);
- epsilon_loss_opt.retrieveOption(argc,argv);
- cache_opt.retrieveOption(argc,argv);
- epsilon_tol_opt.retrieveOption(argc,argv);
- shrinking_opt.retrieveOption(argc,argv);
- prob_est_opt.retrieveOption(argc,argv);
- cv_opt.retrieveOption(argc,argv);
- selector_opt.retrieveOption(argc,argv);
- epsilon_cost_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- std::cout << version_opt.getHelp() << std::endl;
- std::cout << "todo: " << todo_opt.getHelp() << std::endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=training_opt.retrieveOption(argc,argv);
+ maxFeatures_opt.retrieveOption(argc,argv);
+ label_opt.retrieveOption(argc,argv);
+ reclass_opt.retrieveOption(argc,argv);
+ balance_opt.retrieveOption(argc,argv);
+ minSize_opt.retrieveOption(argc,argv);
+ start_opt.retrieveOption(argc,argv);
+ end_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ offset_opt.retrieveOption(argc,argv);
+ scale_opt.retrieveOption(argc,argv);
+ // priors_opt.retrieveOption(argc,argv);
+ svm_type_opt.retrieveOption(argc,argv);
+ kernel_type_opt.retrieveOption(argc,argv);
+ kernel_degree_opt.retrieveOption(argc,argv);
+ gamma_opt.retrieveOption(argc,argv);
+ coef0_opt.retrieveOption(argc,argv);
+ ccost_opt.retrieveOption(argc,argv);
+ nu_opt.retrieveOption(argc,argv);
+ epsilon_loss_opt.retrieveOption(argc,argv);
+ cache_opt.retrieveOption(argc,argv);
+ epsilon_tol_opt.retrieveOption(argc,argv);
+ shrinking_opt.retrieveOption(argc,argv);
+ prob_est_opt.retrieveOption(argc,argv);
+ cv_opt.retrieveOption(argc,argv);
+ selector_opt.retrieveOption(argc,argv);
+ epsilon_cost_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- std::cout << Optionpk<bool>::getGPLv3License() << std::endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- std::cout << "usage: pkfs_svm -t training [OPTIONS]" << std::endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
-
+
static std::map<std::string, SelectorValue> selMap;
//initialize selMap
selMap["sffs"]=SFFS;
diff --git a/src/apps/pkgetmask.cc b/src/apps/pkgetmask.cc
index 03e7aaf..9548f9f 100644
--- a/src/apps/pkgetmask.cc
+++ b/src/apps/pkgetmask.cc
@@ -23,22 +23,8 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "imageclasses/ImgWriterGdal.h"
#include "base/Optionpk.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
using namespace std;
int main(int argc,char **argv) {
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "Input image file", "");
Optionpk<short> band_opt("b", "band", "band(s) used for mask", 0);
Optionpk<double> min_opt("min", "min", "Values smaller than min threshold(s) are masked as invalid. Use one threshold for each band", 0);
@@ -53,40 +39,31 @@ int main(int argc,char **argv) {
Optionpk<string> colorTable_opt("ct", "ct", "color table (file with 5 columns: id R G B ALFA (0: transparent, 255: solid)", "");
Optionpk<short> verbose_opt("v", "verbose", "verbose", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ min_opt.retrieveOption(argc,argv);
+ max_opt.retrieveOption(argc,argv);
+ operator_opt.retrieveOption(argc,argv);
+ valid_opt.retrieveOption(argc,argv);
+ invalid_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- input_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- min_opt.retrieveOption(argc,argv);
- max_opt.retrieveOption(argc,argv);
- operator_opt.retrieveOption(argc,argv);
- valid_opt.retrieveOption(argc,argv);
- invalid_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << "usage: pkinfo -i inputimage -o outputimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
-
const char* pszMessage;
void* pProgressArg=NULL;
GDALProgressFunc pfnProgress=GDALTermProgress;
diff --git a/src/apps/pklas2img.cc b/src/apps/pklas2img.cc
index 4233052..afbf4ad 100644
--- a/src/apps/pklas2img.cc
+++ b/src/apps/pklas2img.cc
@@ -26,20 +26,7 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "algorithms/Histogram.h"
#include "algorithms/Filter2d.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
int main(int argc,char **argv) {
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
Optionpk<string> input_opt("i", "input", "Input las file", "");
// Optionpk<string> mask_opt("m", "mask", "mask image file", "");
// Optionpk<short> invalid_opt("t", "invalid", "Mask value(s) where image is invalid. Use multiple values for a single mask. Default value is 0", 0);
@@ -71,56 +58,48 @@ int main(int argc,char **argv) {
Optionpk<string> colorTable_opt("ct", "ct", "color table (file with 5 columns: id R G B ALFA (0: transparent, 255: solid)", "");
Optionpk<short> verbose_opt("v", "verbose", "verbose (default is 0)", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]){
- cout << version_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ // mask_opt.retrieveOption(argc,argv);
+ // invalid_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ attribute_opt.retrieveOption(argc,argv);
+ disc_opt.retrieveOption(argc,argv);
+ maxSlope_opt.retrieveOption(argc,argv);
+ hThreshold_opt.retrieveOption(argc,argv);
+ maxIter_opt.retrieveOption(argc,argv);
+ nbin_opt.retrieveOption(argc,argv);
+ returns_opt.retrieveOption(argc,argv);
+ classes_opt.retrieveOption(argc,argv);
+ composite_opt.retrieveOption(argc,argv);
+ filter_opt.retrieveOption(argc,argv);
+ postFilter_opt.retrieveOption(argc,argv);
+ dimx_opt.retrieveOption(argc,argv);
+ dimy_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ projection_opt.retrieveOption(argc,argv);
+ ulx_opt.retrieveOption(argc,argv);
+ uly_opt.retrieveOption(argc,argv);
+ lrx_opt.retrieveOption(argc,argv);
+ lry_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ dx_opt.retrieveOption(argc,argv);
+ dy_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
-
- input_opt.retrieveOption(argc,argv);
- // mask_opt.retrieveOption(argc,argv);
- // invalid_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- attribute_opt.retrieveOption(argc,argv);
- disc_opt.retrieveOption(argc,argv);
- maxSlope_opt.retrieveOption(argc,argv);
- hThreshold_opt.retrieveOption(argc,argv);
- maxIter_opt.retrieveOption(argc,argv);
- nbin_opt.retrieveOption(argc,argv);
- returns_opt.retrieveOption(argc,argv);
- classes_opt.retrieveOption(argc,argv);
- composite_opt.retrieveOption(argc,argv);
- filter_opt.retrieveOption(argc,argv);
- postFilter_opt.retrieveOption(argc,argv);
- dimx_opt.retrieveOption(argc,argv);
- dimy_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- projection_opt.retrieveOption(argc,argv);
- ulx_opt.retrieveOption(argc,argv);
- uly_opt.retrieveOption(argc,argv);
- lrx_opt.retrieveOption(argc,argv);
- lry_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- dx_opt.retrieveOption(argc,argv);
- dy_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << version_opt.getHelp() << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
-
GDALAllRegister();
double dfComplete=0.0;
diff --git a/src/apps/pkmosaic.cc b/src/apps/pkmosaic.cc
index 1340409..62ae98c 100644
--- a/src/apps/pkmosaic.cc
+++ b/src/apps/pkmosaic.cc
@@ -28,24 +28,10 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "base/Optionpk.h"
#include "algorithms/Histogram.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
using namespace std;
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "Input image file(s). If input contains multiple images, a multi-band output is created", "");
Optionpk<string> output_opt("o", "output", "Output image file", "");
Optionpk<string> projection_opt("p", "projection", "projection in EPSG format (leave blank to copy from input file, use EPSG:3035 to use European projection and to force to European grid", "");
@@ -75,53 +61,44 @@ int main(int argc, char *argv[])
Optionpk<short> class_opt("c", "class", "classes for multi-band output image: each band represents the number of observations for one specific class. Use value 0 for no multi-band output image).", 0);
Optionpk<bool> verbose_opt("v", "verbose", "verbose", false);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ projection_opt.retrieveOption(argc,argv);
+ extent_opt.retrieveOption(argc,argv);
+ ulx_opt.retrieveOption(argc,argv);
+ uly_opt.retrieveOption(argc,argv);
+ lrx_opt.retrieveOption(argc,argv);
+ lry_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ dx_opt.retrieveOption(argc,argv);
+ dy_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ resample_opt.retrieveOption(argc,argv);
+ description_opt.retrieveOption(argc,argv);
+ mrule_opt.retrieveOption(argc,argv);
+ ruleBand_opt.retrieveOption(argc,argv);
+ validBand_opt.retrieveOption(argc,argv);
+ invalid_opt.retrieveOption(argc,argv);
+ minValue_opt.retrieveOption(argc,argv);
+ maxValue_opt.retrieveOption(argc,argv);
+ file_opt.retrieveOption(argc,argv);
+ weight_opt.retrieveOption(argc,argv);
+ class_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
-
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- projection_opt.retrieveOption(argc,argv);
- extent_opt.retrieveOption(argc,argv);
- ulx_opt.retrieveOption(argc,argv);
- uly_opt.retrieveOption(argc,argv);
- lrx_opt.retrieveOption(argc,argv);
- lry_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- dx_opt.retrieveOption(argc,argv);
- dy_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- resample_opt.retrieveOption(argc,argv);
- description_opt.retrieveOption(argc,argv);
- mrule_opt.retrieveOption(argc,argv);
- ruleBand_opt.retrieveOption(argc,argv);
- validBand_opt.retrieveOption(argc,argv);
- invalid_opt.retrieveOption(argc,argv);
- minValue_opt.retrieveOption(argc,argv);
- maxValue_opt.retrieveOption(argc,argv);
- file_opt.retrieveOption(argc,argv);
- weight_opt.retrieveOption(argc,argv);
- class_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << "usage: pkmosaic -i inputimage -o outputimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
while(invalid_opt.size()<validBand_opt.size())
diff --git a/src/apps/pkndvi.cc b/src/apps/pkndvi.cc
index d792b2f..bda887e 100644
--- a/src/apps/pkndvi.cc
+++ b/src/apps/pkndvi.cc
@@ -23,24 +23,11 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "imageclasses/ImgWriterGdal.h"
#include "base/Optionpk.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
using namespace std;
int main(int argc, char *argv[])
{
//command line options
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
Optionpk<string> input_opt("i","input","input image file","");
Optionpk<string> output_opt("o","output","output image file containing ndvi","");
Optionpk<short> band_opt("b", "band", "Bands to be used for vegetation index (see rule option)", 0);
@@ -58,37 +45,32 @@ int main(int argc, char *argv[])
Optionpk<string> option_opt("co", "co", "options: NAME=VALUE [-co COMPRESS=LZW] [-co INTERLEAVE=BAND]");
Optionpk<short> verbose_opt("v", "verbose", "verbose mode if > 0", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- input_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- rule_opt.retrieveOption(argc,argv);
- invalid_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- description_opt.retrieveOption(argc,argv);
- minmax_opt.retrieveOption(argc,argv);
- eps_opt.retrieveOption(argc,argv);
- scale_opt.retrieveOption(argc,argv);
- offset_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]){
- cout << version_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ rule_opt.retrieveOption(argc,argv);
+ invalid_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ description_opt.retrieveOption(argc,argv);
+ minmax_opt.retrieveOption(argc,argv);
+ eps_opt.retrieveOption(argc,argv);
+ scale_opt.retrieveOption(argc,argv);
+ offset_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- cout << "usage: pkinfo -i inputimage -o outputimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
if(scale_opt.size()<2){
diff --git a/src/apps/pkopt_svm.cc b/src/apps/pkopt_svm.cc
index 29ff82e..ea2b9da 100644
--- a/src/apps/pkopt_svm.cc
+++ b/src/apps/pkopt_svm.cc
@@ -31,10 +31,6 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "algorithms/svm.h"
#include "pkclassify_nn.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#define Malloc(type,n) (type *)malloc((n)*sizeof(type))
//declare objective function
double objFunction(const std::vector<double> &x, std::vector<double> &grad, void *my_func_data);
@@ -153,16 +149,6 @@ int main(int argc, char *argv[])
{
map<short,int> reclassMap;
vector<int> vreclass;
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
Optionpk<string> training_opt("t", "training", "training shape file. A single shape file contains all training features (must be set as: B0, B1, B2,...) for all classes (class numbers identified by label option).");
Optionpk<string> label_opt("\0", "label", "identifier for class label in training shape file.","label");
Optionpk<unsigned short> reclass_opt("\0", "rc", "reclass code (e.g. --rc=12 --rc=23 to reclass first two classes to 12 and 23 resp.).", 0);
@@ -179,54 +165,46 @@ int main(int argc, char *argv[])
Optionpk<string> algorithm_opt("a", "algorithm", "optimization algorithm (see http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms)","LN_COBYLA");
Optionpk<double> tolerance_opt("tol","tolerance","relative tolerance for stopping criterion",0.0001);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
- training_opt.retrieveOption(argc,argv);
- label_opt.retrieveOption(argc,argv);
- reclass_opt.retrieveOption(argc,argv);
- balance_opt.retrieveOption(argc,argv);
- minSize_opt.retrieveOption(argc,argv);
- start_opt.retrieveOption(argc,argv);
- end_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- offset_opt.retrieveOption(argc,argv);
- scale_opt.retrieveOption(argc,argv);
- svm_type_opt.retrieveOption(argc,argv);
- kernel_type_opt.retrieveOption(argc,argv);
- kernel_degree_opt.retrieveOption(argc,argv);
- gamma_opt.retrieveOption(argc,argv);
- coef0_opt.retrieveOption(argc,argv);
- ccost_opt.retrieveOption(argc,argv);
- nu_opt.retrieveOption(argc,argv);
- epsilon_loss_opt.retrieveOption(argc,argv);
- cache_opt.retrieveOption(argc,argv);
- epsilon_tol_opt.retrieveOption(argc,argv);
- shrinking_opt.retrieveOption(argc,argv);
- prob_est_opt.retrieveOption(argc,argv);
- cv_opt.retrieveOption(argc,argv);
- costfunction_opt.retrieveOption(argc,argv);
- maxit_opt.retrieveOption(argc,argv);
- tolerance_opt.retrieveOption(argc,argv);
- algorithm_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- std::cout << version_opt.getHelp() << std::endl;
- std::cout << "todo: " << todo_opt.getHelp() << std::endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=training_opt.retrieveOption(argc,argv);
+ label_opt.retrieveOption(argc,argv);
+ reclass_opt.retrieveOption(argc,argv);
+ balance_opt.retrieveOption(argc,argv);
+ minSize_opt.retrieveOption(argc,argv);
+ start_opt.retrieveOption(argc,argv);
+ end_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ offset_opt.retrieveOption(argc,argv);
+ scale_opt.retrieveOption(argc,argv);
+ svm_type_opt.retrieveOption(argc,argv);
+ kernel_type_opt.retrieveOption(argc,argv);
+ kernel_degree_opt.retrieveOption(argc,argv);
+ gamma_opt.retrieveOption(argc,argv);
+ coef0_opt.retrieveOption(argc,argv);
+ ccost_opt.retrieveOption(argc,argv);
+ nu_opt.retrieveOption(argc,argv);
+ epsilon_loss_opt.retrieveOption(argc,argv);
+ cache_opt.retrieveOption(argc,argv);
+ epsilon_tol_opt.retrieveOption(argc,argv);
+ shrinking_opt.retrieveOption(argc,argv);
+ prob_est_opt.retrieveOption(argc,argv);
+ cv_opt.retrieveOption(argc,argv);
+ costfunction_opt.retrieveOption(argc,argv);
+ maxit_opt.retrieveOption(argc,argv);
+ tolerance_opt.retrieveOption(argc,argv);
+ algorithm_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- std::cout << Optionpk<bool>::getGPLv3License() << std::endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- std::cout << "usage: pkopt_svm -t training [OPTIONS]" << std::endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
-
assert(training_opt[0].size());
if(verbose_opt[0]>=1)
std::cout << "training shape file: " << training_opt[0] << std::endl;
diff --git a/src/apps/pkreclass.cc b/src/apps/pkreclass.cc
index 407b0c4..e976877 100644
--- a/src/apps/pkreclass.cc
+++ b/src/apps/pkreclass.cc
@@ -25,24 +25,10 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "imageclasses/ImgReaderGdal.h"
#include "imageclasses/ImgWriterGdal.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
using namespace std;
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "Input image", "");
Optionpk<string> mask_opt("m", "mask", "Mask image(s)", "");
Optionpk<string> output_opt("o", "output", "Output mask file", "");
@@ -59,39 +45,31 @@ int main(int argc, char *argv[])
Optionpk<string> description_opt("d", "description", "Set image description", "");
Optionpk<short> verbose_opt("v", "verbose", "verbose", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ invalid_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ code_opt.retrieveOption(argc,argv);
+ class_opt.retrieveOption(argc,argv);
+ reclass_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ type_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ fieldname_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ description_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- input_opt.retrieveOption(argc,argv);
- mask_opt.retrieveOption(argc,argv);
- invalid_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- code_opt.retrieveOption(argc,argv);
- class_opt.retrieveOption(argc,argv);
- reclass_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- type_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- fieldname_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- description_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << "usage: pkinfo -i inputimage -o outputimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
// vector<short> bandVector;
diff --git a/src/apps/pksensormodel.cc b/src/apps/pksensormodel.cc
index 90e3f38..3f4fb06 100644
--- a/src/apps/pksensormodel.cc
+++ b/src/apps/pksensormodel.cc
@@ -28,10 +28,6 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "algorithms/Histogram.h"
#include "pksensormodel.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
double objFunction(const std::vector<double> &x, std::vector<double> &grad, void *my_func_data){
assert(grad.empty());
double error=0;
@@ -51,16 +47,6 @@ double objFunction(const std::vector<double> &x, std::vector<double> &grad, void
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
Optionpk<string> input_opt("i","input","name of the input text file");
Optionpk<string> datum_opt("datum","datum","GPS datum of the input points","WGS84");
Optionpk<int> s_srs_opt("s_srs","s_srs","source EPSG (integer) code of GCP input coordinates",4326);
@@ -107,68 +93,61 @@ int main(int argc, char *argv[])
Optionpk<string> algorithm_opt("a", "algorithm", "optimization algorithm (see http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms)","LN_COBYLA");
Optionpk<short> verbose_opt("v", "verbose", "verbose mode when > 0", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
- input_opt.retrieveOption(argc,argv);
- datum_opt.retrieveOption(argc,argv);
- s_srs_opt.retrieveOption(argc,argv);
- t_srs_opt.retrieveOption(argc,argv);
- focal_opt.retrieveOption(argc,argv);
- dx_opt.retrieveOption(argc,argv);
- dy_opt.retrieveOption(argc,argv);
- nx_opt.retrieveOption(argc,argv);
- ny_opt.retrieveOption(argc,argv);
- x_opt.retrieveOption(argc,argv);
- y_opt.retrieveOption(argc,argv);
- z_opt.retrieveOption(argc,argv);
- errorZ_opt.retrieveOption(argc,argv);
- xl_opt.retrieveOption(argc,argv);
- yl_opt.retrieveOption(argc,argv);
- zl_opt.retrieveOption(argc,argv);
- roll_opt.retrieveOption(argc,argv);
- pitch_opt.retrieveOption(argc,argv);
- yaw_opt.retrieveOption(argc,argv);
- col_opt.retrieveOption(argc,argv);
- row_opt.retrieveOption(argc,argv);
- // bcpos_opt.retrieveOption(argc,argv);
- bcatt_opt.retrieveOption(argc,argv);
- fov_opt.retrieveOption(argc,argv);
- ppx_opt.retrieveOption(argc,argv);
- ppy_opt.retrieveOption(argc,argv);
- fs_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- sensor_opt.retrieveOption(argc,argv);
- polynome_opt.retrieveOption(argc,argv);
- mean_opt.retrieveOption(argc,argv);
- optimize_opt.retrieveOption(argc,argv);
- lb_opt.retrieveOption(argc,argv);
- ub_opt.retrieveOption(argc,argv);
- maxit_opt.retrieveOption(argc,argv);
- tolerance_opt.retrieveOption(argc,argv);
- init_opt.retrieveOption(argc,argv);
- threshold_opt.retrieveOption(argc,argv);
- gcprad_opt.retrieveOption(argc,argv);
- pplrad_opt.retrieveOption(argc,argv);
- aplrad_opt.retrieveOption(argc,argv);
- bcrad_opt.retrieveOption(argc,argv);
- getzenith_opt.retrieveOption(argc,argv);
- algorithm_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]){
- cout << version_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ datum_opt.retrieveOption(argc,argv);
+ s_srs_opt.retrieveOption(argc,argv);
+ t_srs_opt.retrieveOption(argc,argv);
+ focal_opt.retrieveOption(argc,argv);
+ dx_opt.retrieveOption(argc,argv);
+ dy_opt.retrieveOption(argc,argv);
+ nx_opt.retrieveOption(argc,argv);
+ ny_opt.retrieveOption(argc,argv);
+ x_opt.retrieveOption(argc,argv);
+ y_opt.retrieveOption(argc,argv);
+ z_opt.retrieveOption(argc,argv);
+ errorZ_opt.retrieveOption(argc,argv);
+ xl_opt.retrieveOption(argc,argv);
+ yl_opt.retrieveOption(argc,argv);
+ zl_opt.retrieveOption(argc,argv);
+ roll_opt.retrieveOption(argc,argv);
+ pitch_opt.retrieveOption(argc,argv);
+ yaw_opt.retrieveOption(argc,argv);
+ col_opt.retrieveOption(argc,argv);
+ row_opt.retrieveOption(argc,argv);
+ // bcpos_opt.retrieveOption(argc,argv);
+ bcatt_opt.retrieveOption(argc,argv);
+ fov_opt.retrieveOption(argc,argv);
+ ppx_opt.retrieveOption(argc,argv);
+ ppy_opt.retrieveOption(argc,argv);
+ fs_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ sensor_opt.retrieveOption(argc,argv);
+ polynome_opt.retrieveOption(argc,argv);
+ mean_opt.retrieveOption(argc,argv);
+ optimize_opt.retrieveOption(argc,argv);
+ lb_opt.retrieveOption(argc,argv);
+ ub_opt.retrieveOption(argc,argv);
+ maxit_opt.retrieveOption(argc,argv);
+ tolerance_opt.retrieveOption(argc,argv);
+ init_opt.retrieveOption(argc,argv);
+ threshold_opt.retrieveOption(argc,argv);
+ gcprad_opt.retrieveOption(argc,argv);
+ pplrad_opt.retrieveOption(argc,argv);
+ aplrad_opt.retrieveOption(argc,argv);
+ bcrad_opt.retrieveOption(argc,argv);
+ getzenith_opt.retrieveOption(argc,argv);
+ algorithm_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
-
- if(help_opt[0]){
- cout << "usage: pksensormodel -i asciifile [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
//ID, row of GCP, column of GCP, x_GCP, y_GCP, Z_GCP, x_platform, y_platform, z_platform, platform roll, platform pitch, platform yaw of point.
diff --git a/src/apps/pksetmask.cc b/src/apps/pksetmask.cc
index 8b6f87d..9b85a7f 100644
--- a/src/apps/pksetmask.cc
+++ b/src/apps/pksetmask.cc
@@ -23,25 +23,11 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "imageclasses/ImgWriterGdal.h"
#include "base/Optionpk.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
using namespace std;
int main(int argc, char *argv[])
{
//command line options
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "Input image", "");
Optionpk<string> mask_opt("m", "mask", "Mask image(s)", "");
Optionpk<string> output_opt("o", "output", "Output mask file", "");
@@ -54,35 +40,27 @@ int main(int argc, char *argv[])
Optionpk<string> colorTable_opt("ct", "ct", "color table (file with 5 columns: id R G B ALFA (0: transparent, 255: solid)", "");
Optionpk<short> verbose_opt("v", "verbose", "verbose", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- cout << version_opt.getHelp() << endl;
- cout << "todo: " << todo_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ otype_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ invalid_opt.retrieveOption(argc,argv);
+ operator_opt.retrieveOption(argc,argv);
+ flag_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- input_opt.retrieveOption(argc,argv);
- mask_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- otype_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- invalid_opt.retrieveOption(argc,argv);
- operator_opt.retrieveOption(argc,argv);
- flag_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(help_opt[0]){
- cout << "usage: pksetmask -i inputimage -o outputimage -m maskimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
if(verbose_opt[0])
diff --git a/src/apps/pksieve.cc b/src/apps/pksieve.cc
index 747557e..7b8dee3 100644
--- a/src/apps/pksieve.cc
+++ b/src/apps/pksieve.cc
@@ -30,23 +30,9 @@ extern "C" {
#include "ogr_api.h"
}
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
using namespace std;
int main(int argc,char **argv) {
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "Input image file", "");
Optionpk<string> mask_opt("m", "mask", "Mask band indicating pixels to be interpolated (zero valued) ", "");
Optionpk<string> output_opt("o", "output", "Output image file", "");
@@ -55,30 +41,23 @@ int main(int argc,char **argv) {
Optionpk<int> size_opt("s", "size", "raster polygons with sizes smaller than this will be merged into their largest neighbour. No sieve is performed if size = 0", 0);
Optionpk<short> verbose_opt("v", "verbose", "verbose mode if > 0", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- input_opt.retrieveOption(argc,argv);
- mask_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
- connect_opt.retrieveOption(argc,argv);
- size_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]){
- cout << version_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
+ connect_opt.retrieveOption(argc,argv);
+ size_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- cout << "usage: pksieve -i inputimage -o outputimage [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
GDALAllRegister();
diff --git a/src/apps/pkstat.cc b/src/apps/pkstat.cc
index d24f3e6..f6940ff 100644
--- a/src/apps/pkstat.cc
+++ b/src/apps/pkstat.cc
@@ -24,24 +24,10 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "base/Optionpk.h"
#include "algorithms/Histogram.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
using namespace std;
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
Optionpk<string> input_opt("i","input","name of the input text file","");
Optionpk<char> fs_opt("fs","fs","field separator.",' ');
Optionpk<bool> output_opt("o","output","output the selected columns",false);
@@ -66,46 +52,39 @@ int main(int argc, char *argv[])
Optionpk<bool> reg_opt("reg","regression","calculate linear regression error between two columns (defined by -c <col1> -c <col2>",false);
Optionpk<short> verbose_opt("v", "verbose", "verbose mode when > 0", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
- input_opt.retrieveOption(argc,argv);
- fs_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- col_opt.retrieveOption(argc,argv);
- range_opt.retrieveOption(argc,argv);
- size_opt.retrieveOption(argc,argv);
- mean_opt.retrieveOption(argc,argv);
- median_opt.retrieveOption(argc,argv);
- var_opt.retrieveOption(argc,argv);
- stdev_opt.retrieveOption(argc,argv);
- skewness_opt.retrieveOption(argc,argv);
- kurtosis_opt.retrieveOption(argc,argv);
- sum_opt.retrieveOption(argc,argv);
- minmax_opt.retrieveOption(argc,argv);
- min_opt.retrieveOption(argc,argv);
- max_opt.retrieveOption(argc,argv);
- histogram_opt.retrieveOption(argc,argv);
- nbin_opt.retrieveOption(argc,argv);
- relative_opt.retrieveOption(argc,argv);
- correlation_opt.retrieveOption(argc,argv);
- rmse_opt.retrieveOption(argc,argv);
- reg_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]){
- cout << version_opt.getHelp() << endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ fs_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ col_opt.retrieveOption(argc,argv);
+ range_opt.retrieveOption(argc,argv);
+ size_opt.retrieveOption(argc,argv);
+ mean_opt.retrieveOption(argc,argv);
+ median_opt.retrieveOption(argc,argv);
+ var_opt.retrieveOption(argc,argv);
+ stdev_opt.retrieveOption(argc,argv);
+ skewness_opt.retrieveOption(argc,argv);
+ kurtosis_opt.retrieveOption(argc,argv);
+ sum_opt.retrieveOption(argc,argv);
+ minmax_opt.retrieveOption(argc,argv);
+ min_opt.retrieveOption(argc,argv);
+ max_opt.retrieveOption(argc,argv);
+ histogram_opt.retrieveOption(argc,argv);
+ nbin_opt.retrieveOption(argc,argv);
+ relative_opt.retrieveOption(argc,argv);
+ correlation_opt.retrieveOption(argc,argv);
+ rmse_opt.retrieveOption(argc,argv);
+ reg_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- cout << Optionpk<bool>::getGPLv3License() << endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
-
- if(help_opt[0]){
- cout << "usage: pkstat -i asciifile [OPTIONS]" << endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
vector< vector<double> > dataVector(col_opt.size());
diff --git a/src/apps/pkstatogr.cc b/src/apps/pkstatogr.cc
index 51ff299..a1d497b 100644
--- a/src/apps/pkstatogr.cc
+++ b/src/apps/pkstatogr.cc
@@ -25,22 +25,8 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
#include "imageclasses/ImgReaderOgr.h"
#include "algorithms/Histogram.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
int main(int argc, char *argv[])
{
- std::string versionString="version ";
- versionString+=VERSION;
- versionString+=", Copyright (C) 2008-2012 Pieter Kempeneers.\n\
- This program comes with ABSOLUTELY NO WARRANTY; for details type use option -h.\n\
- This is free software, and you are welcome to redistribute it\n\
- under certain conditions; use option --license for details.";
- Optionpk<bool> version_opt("\0","version",versionString,false);
- Optionpk<bool> license_opt("lic","license","show license information",false);
- Optionpk<bool> help_opt("h","help","shows this help info",false);
- Optionpk<bool> todo_opt("\0","todo","",false);
Optionpk<string> input_opt("i", "input", "Input shape file", "");
Optionpk<string> fieldname_opt("n", "fname", "fields on which to calculate statistics", "");
Optionpk<short> nbin_opt("nbin", "nbin", "number of bins", 0);
@@ -52,34 +38,26 @@ int main(int argc, char *argv[])
Optionpk<bool> size_opt("s","size","sample size (number of points)",false);
Optionpk<short> verbose_opt("v", "verbose", "verbose mode if > 0", 0);
- version_opt.retrieveOption(argc,argv);
- license_opt.retrieveOption(argc,argv);
- help_opt.retrieveOption(argc,argv);
- todo_opt.retrieveOption(argc,argv);
-
- input_opt.retrieveOption(argc,argv);
- fieldname_opt.retrieveOption(argc,argv);
- nbin_opt.retrieveOption(argc,argv);
- min_opt.retrieveOption(argc,argv);
- max_opt.retrieveOption(argc,argv);
- mean_opt.retrieveOption(argc,argv);
- median_opt.retrieveOption(argc,argv);
- stdev_opt.retrieveOption(argc,argv);
- size_opt.retrieveOption(argc,argv);
- verbose_opt.retrieveOption(argc,argv);
-
- if(version_opt[0]||todo_opt[0]){
- std::cout << version_opt.getHelp() << std::endl;
- std::cout << "todo: " << todo_opt.getHelp() << std::endl;
- exit(0);
+ bool doProcess;//stop process when program was invoked with help option (-h --help)
+ try{
+ doProcess=input_opt.retrieveOption(argc,argv);
+ fieldname_opt.retrieveOption(argc,argv);
+ nbin_opt.retrieveOption(argc,argv);
+ min_opt.retrieveOption(argc,argv);
+ max_opt.retrieveOption(argc,argv);
+ mean_opt.retrieveOption(argc,argv);
+ median_opt.retrieveOption(argc,argv);
+ stdev_opt.retrieveOption(argc,argv);
+ size_opt.retrieveOption(argc,argv);
+ verbose_opt.retrieveOption(argc,argv);
}
- if(license_opt[0]){
- std::cout << Optionpk<bool>::getGPLv3License() << std::endl;
+ catch(string predefinedString){
+ std::cout << predefinedString << std::endl;
exit(0);
}
- if(help_opt[0]){
- std::cout << "usage: pkstatogr -i inputimage -n nbin -n fieldname [-n fieldname]" << std::endl;
- exit(0);
+ if(!doProcess){
+ std::cout << "short option -h shows basic options only, use long option --help to show all options" << std::endl;
+ exit(0);//help was invoked, stop processing
}
ImgReaderOgr imgReader;
diff --git a/src/base/Optionpk.h b/src/base/Optionpk.h
index 8c84b46..11379d9 100644
--- a/src/base/Optionpk.h
+++ b/src/base/Optionpk.h
@@ -37,6 +37,7 @@ along with pktools. If not, see <http://www.gnu.org/licenses/>.
using namespace std;
+///throw this class when syntax error in command line option
class BadConversion : public runtime_error {
public:
BadConversion(string const& s)
@@ -44,29 +45,31 @@ class BadConversion : public runtime_error {
{ }
};
-template<typename T> inline T string2type(std::string const& s,bool failIfLeftoverChars){
+///convert command line option to value of the defined type, throw exception in case of failure
+template<typename T> inline T string2type(std::string const& s){
std::istringstream i(s);
- char c;
T x;
- if (!(i >> x) || (failIfLeftoverChars && i.get(c)))
+ if (!(i >> x) )
throw BadConversion(s);
return x;
}
-template<typename T> inline T string2type(std::string const& s){
+///convert command line option to value of the defined type, throw if entire string could not get converted
+template<typename T> inline T string2type(std::string const& s,bool failIfLeftoverChars){
std::istringstream i(s);
+ char c;
T x;
- if (!(i >> x) )
+ if (!(i >> x) || (failIfLeftoverChars && i.get(c)))
throw BadConversion(s);
return x;
}
-//specialization for string
+///specialization for string
template<> inline std::string string2type(std::string const& s){
return s;
}
-//specialization for OGRFieldType
+///specialization for OGRFieldType
template<> inline OGRFieldType string2type(std::string const& s){
OGRFieldType ftype;
int ogr_typecount=11;//hard coded for now!
@@ -78,13 +81,14 @@ template<> inline OGRFieldType string2type(std::string const& s){
return ftype;
}
+///serialization for help or to dump option values to screen in verbose mode
template<typename T> inline std::string type2string(T const& value){
std::ostringstream oss;
oss << value;
return oss.str();
}
-//specialization for bool
+///specialization for bool
template<> inline std::string type2string(bool const& value){
if(value)
return("true");
@@ -92,7 +96,7 @@ template<> inline std::string type2string(bool const& value){
return("false");
}
-//specialization for string
+///specialization for string
template<> inline std::string type2string(std::string const& value){
// if(value.empty())
// return("<empty string>");
@@ -100,7 +104,7 @@ template<> inline std::string type2string(std::string const& value){
return(value);
}
-//specialization for float
+///specialization for float
template<> inline std::string type2string(float const& value){
std::ostringstream oss;
// oss.precision(1);
@@ -109,7 +113,7 @@ template<> inline std::string type2string(float const& value){
return oss.str();
}
-//specialization for double
+///specialization for double
template<> inline std::string type2string(double const& value){
std::ostringstream oss;
// oss.precision(1);
@@ -121,13 +125,29 @@ template<> inline std::string type2string(double const& value){
template<class T> class Optionpk : public std::vector <T>
{
public:
+ ///default constructor
Optionpk();
+ ///constructor for option without default value
Optionpk(const std::string& shortName, const std::string& longName, const std::string& helpInfo);
+ ///constructor for option with default value. Option can be hidden for help info
Optionpk(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const T& defaultValue, short hide=0);
+ ///default destructor
~Optionpk();
+ ///set help information
void setHelp(const std::string& helpInfo){m_help=helpInfo;};
- std::string usage() const;
- std::string usageDoxygen() const;
+ bool retrieveOption(int argc, char ** argv);
+ template<class T1> friend ostream& operator<<(ostream & os, const Optionpk<T1>& theOption);
+
+ void setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo);
+ void setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const T& defaultValue, short hide);
+ void setDefault(const T& defaultValue);
+ std::string getDefaultValue() const {return m_defaultValue;};
+ void setShortName(const std::string& shortName);
+ void setLongName(const std::string& longName);
+ std::string getShortName() const {return m_shortName;};
+ std::string getLongName() const {return m_longName;};
+
+ std::string getHelp() const {return m_help;};
static std::string getGPLv3License(){
return static_cast<std::string>("\n\
This program is free software: you can redistribute it and/or modify\n\
@@ -142,30 +162,21 @@ public:
\n\
You should have received a copy of the GNU General Public License\n\
along with this program. If not, see <http://www.gnu.org/licenses/>.\n");};
- std::string getHelp() const {return m_help;};
- bool retrieveOption(int argc, char ** argv);///make sure to call this function first before using the option
std::vector<std::string>::const_iterator findSubstring(const std::string& argument) const;
- template<class T1> friend ostream& operator<<(ostream & os, const Optionpk<T1>& theOption);
private:
- void setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo);
- void setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const T& defaultValue, short hide);
- void setDefault(const T& defaultValue);
- std::string getDefaultValue() const {return m_defaultValue;};
- void setShortName(const std::string& shortName);
- void setLongName(const std::string& longName);
- std::string getShortName() const {return m_shortName;};
- std::string getLongName() const {return m_longName;};
bool hasArgument() const {return m_hasArgument;};//all options except bools should have arguments
bool hasShortOption() const {return m_shortName.compare("\0");};
bool hasLongOption() const {return m_longName.compare("\0");};
+ std::string usage() const;
+ std::string usageDoxygen() const;
- /*! short option invoked with `-` */std::string m_shortName;
- /*! long option invoked with `--` */ std::string m_longName;
- /*! the help message that is shown when option -h or --help is invoked */ std::string m_help;
- /*! false for options of type bool */ bool m_hasArgument;
- /*! the default value of the option */ T m_defaultValue;
- /*! option has a default value */ bool m_hasDefault;
- /*! 0: always show, 1: only show with long help (--help), 2: never show (hide)*/ short m_hide;
+ std::string m_shortName;
+ std::string m_longName;
+ std::string m_help;
+ bool m_hasArgument;
+ T m_defaultValue;
+ bool m_hasDefault;
+ short m_hide;
};
template<class T1> ostream& operator<<(ostream& os, const Optionpk<T1>& theOption)
@@ -182,12 +193,29 @@ template<class T> Optionpk<T>::Optionpk()
{
}
+/**
+constructor without default value\n
+shortName is option invoked with `-`\n
+longName is option invoked with `--`\n
+helpInfo is the help message that is shown when option -h or --help is invoked\n
+When the constructor without default value is used, the option is only visible in long help (`--help`), i.e., hide=1
+**/
template<class T> Optionpk<T>::Optionpk(const std::string& shortName, const std::string& longName, const std::string& helpInfo)
: m_hasDefault(false)
{
setAll(shortName,longName,helpInfo);
}
+/*!
+constructor with default value.\n
+shortName is option invoked with `-`\n
+longName is option invoked with `--`\n
+helpInfo is the help message that is shown when option -h or --help is invoked\n
+defaultValue is default value of the option (first value of vector: option[0])\n
+hide=0 : option is visible for in both short (`-h`) and long (`--help`) help. Typical use: mandatory options\n
+hide=1 : option is only visible in long help (`--help`). Typical use: expert options\n
+hide=2 : option is hidden for user. Typical use: Easter eggs or options only known to author
+*/
template<class T> Optionpk<T>::Optionpk(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const T& defaultValue, short hide)
{
setAll(shortName,longName,helpInfo,defaultValue, hide);
@@ -238,35 +266,33 @@ template<class T> std::string Optionpk<T>::usageDoxygen() const
return helpss.str();
}
-template<class T> void Optionpk<T>::setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const T& defaultValue, short hide)
+template<class T> void Optionpk<T>::setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo)
{
m_shortName=shortName;
m_longName=longName;
m_hasArgument=true;
m_help=helpInfo;
- m_defaultValue=defaultValue;
- m_hasDefault=true;
- m_hide=hide;
+ m_hide=1;
}
-template<class T> void Optionpk<T>::setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo)
+template<class T> void Optionpk<T>::setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const T& defaultValue, short hide)
{
m_shortName=shortName;
m_longName=longName;
m_hasArgument=true;
m_help=helpInfo;
- m_hide=1;//option with no default value can be hidden (level 1: only visible with long help info)
+ m_defaultValue=defaultValue;
+ m_hasDefault=true;
+ m_hide=hide;
}
-template<> void Optionpk<bool>::setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const bool& defaultValue, short hide);
-
+///specialization for bool
template<> void Optionpk<bool>::setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo);
-template<> Optionpk<bool>::Optionpk(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const bool& defaultValue, short hide)
-{
- setAll(shortName,longName,helpInfo,defaultValue, hide);
-}
+///specialization for bool
+template<> void Optionpk<bool>::setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const bool& defaultValue, short hide);
+///specialization for bool
template<> void Optionpk<bool>::setAll(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const bool& defaultValue, short hide)
{
m_shortName=shortName;
@@ -278,17 +304,24 @@ template<> void Optionpk<bool>::setAll(const std::string& shortName, const std::
m_hide=hide;
}
+///specialization for bool
+template<> Optionpk<bool>::Optionpk(const std::string& shortName, const std::string& longName, const std::string& helpInfo,const bool& defaultValue, short hide)
+{
+ setAll(shortName,longName,helpInfo,defaultValue, hide);
+}
+
template<class T> Optionpk<T>::~Optionpk()
{
}
+///make sure to call this function first before using the option in main program (or segmentation fault will occur...)
template<class T> bool Optionpk<T>::retrieveOption(int argc, char **argv){
- bool noHelp=true;///return value, alert main program that hard coded option (help, version, license, doxygen) was invoked
- std::string helpStringShort="-h";///short option for help (hard coded)
- std::string helpStringLong="--help";///long option for help (hard coded)
- std::string helpStringDoxygen="--doxygen";///option to create table of options ready to use for doxygen
- std::string versionString="--version";///option to show current version
- std::string licenseString="--license";///option to show current version
+ bool noHelp=true;//return value, alert main program that hard coded option (help, version, license, doxygen) was invoked
+ std::string helpStringShort="-h";//short option for help (hard coded)
+ std::string helpStringLong="--help";//long option for help (hard coded)
+ std::string helpStringDoxygen="--doxygen";//option to create table of options ready to use for doxygen
+ std::string versionString="--version";//option to show current version
+ std::string licenseString="--license";//option to show current version
for(int i = 1; i < argc; ++i ){
std::string currentArgument;
std::string currentOption=argv[i];
@@ -350,7 +383,8 @@ template<class T> bool Optionpk<T>::retrieveOption(int argc, char **argv){
return(noHelp);
}
-template<class T> std::vector<std::string>::const_iterator Optionpk<T>::findSubstring(const std::string& argument) const{
+//find a substring in string option (e.g., option is of type -co INTERLEAVE=BAND)
+template<> std::vector<std::string>::const_iterator Optionpk<std::string>::findSubstring(const std::string& argument) const{
std::vector<std::string>::const_iterator opit=this->begin();
while(opit!=this->end()){
if(opit->find(argument)!=std::string::npos)
--
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