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 63d89ad22328dab5e04d421689b86ac27be1e18e Author: Pieter Kempeneers <kempe...@gmail.com> Date: Mon May 12 22:57:58 2014 +0200 simplify options for pksvm --- src/apps/pkann.cc | 17 ++++++++++++----- src/apps/pkextract.cc | 2 +- src/apps/pkoptsvm.cc | 22 ++++++++++++---------- src/apps/pkstatascii.cc | 2 +- src/apps/pkstatogr.cc | 2 +- src/apps/pksvm.cc | 20 ++++++++++++++------ 6 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/apps/pkann.cc b/src/apps/pkann.cc index 341eec9..bc9980a 100644 --- a/src/apps/pkann.cc +++ b/src/apps/pkann.cc @@ -52,7 +52,7 @@ int main(int argc, char *argv[]) Optionpk<double> scale_opt("\0", "scale", "scale value for each spectral band input features: refl=(DN[band]-offset[band])/scale[band] (use 0 if scale min and max in each band to -1.0 and 1.0)", 0.0); Optionpk<unsigned short> aggreg_opt("a", "aggreg", "how to combine aggregated classifiers, see also rc option (1: sum rule, 2: max rule).",1); Optionpk<double> priors_opt("p", "prior", "prior probabilities for each class (e.g., -p 0.3 -p 0.3 -p 0.2 )", 0.0); - Optionpk<string> priorimg_opt("pim", "priorimg", "prior probability image (multi-band img with band for each class"); + Optionpk<string> priorimg_opt("pim", "priorimg", "prior probability image (multi-band img with band for each class","",2); Optionpk<unsigned short> cv_opt("cv", "cv", "n-fold cross validation mode",0); Optionpk<unsigned int> nneuron_opt("n", "nneuron", "number of neurons in hidden layers in neural network (multiple hidden layers are set by defining multiple number of neurons: -n 15 -n 1, default is one hidden layer with 5 neurons)", 5); Optionpk<float> connection_opt("\0", "connection", "connection reate (default: 1.0 for a fully connected network)", 1.0); @@ -72,9 +72,9 @@ int main(int argc, char *argv[]) Optionpk<string> option_opt("co", "co", "Creation option for output file. Multiple options can be specified."); Optionpk<string> colorTable_opt("ct", "ct", "colour table in ascii format having 5 columns: id R G B ALFA (0: transparent, 255: solid)"); Optionpk<string> prob_opt("\0", "prob", "probability image. Default is no probability image"); - Optionpk<string> entropy_opt("entropy", "entropy", "entropy image (measure for uncertainty of classifier output"); - Optionpk<string> active_opt("active", "active", "ogr output for active training sample."); - Optionpk<string> ogrformat_opt("f", "f", "Output ogr format for active training sample","ESRI Shapefile"); + Optionpk<string> entropy_opt("entropy", "entropy", "entropy image (measure for uncertainty of classifier output","",2); + Optionpk<string> active_opt("active", "active", "ogr output for active training sample.","",2); + Optionpk<string> ogrformat_opt("f", "f", "Output ogr format for active training sample","SQLite"); Optionpk<unsigned int> nactive_opt("na", "nactive", "number of active training points",1); Optionpk<string> classname_opt("c", "class", "list of class names."); Optionpk<short> classvalue_opt("r", "reclass", "list of class values (use same order as in class opt)."); @@ -133,6 +133,13 @@ int main(int argc, char *argv[]) exit(0);//help was invoked, stop processing } + if(entropy_opt[0]=="") + entropy_opt.clear(); + if(active_opt[0]=="") + active_opt.clear(); + if(priorimg_opt[0]=="") + priorimg_opt.clear(); + if(verbose_opt[0]>=1){ if(input_opt.size()) cout << "image filename: " << input_opt[0] << endl; @@ -372,7 +379,7 @@ int main(int argc, char *argv[]) ++mapit; } if(classname_opt.empty()){ - std::cerr << "Warning: no class name and value pair provided for all " << nclass << " classes, using string2type<int> instead!" << std::endl; + //std::cerr << "Warning: no class name and value pair provided for all " << nclass << " classes, using string2type<int> instead!" << std::endl; for(int iclass=0;iclass<nclass;++iclass){ if(verbose_opt[0]) std::cout << iclass << " " << cm.getClass(iclass) << " -> " << string2type<short>(cm.getClass(iclass)) << std::endl; diff --git a/src/apps/pkextract.cc b/src/apps/pkextract.cc index ffd6a2d..56231e5 100644 --- a/src/apps/pkextract.cc +++ b/src/apps/pkextract.cc @@ -48,7 +48,7 @@ int main(int argc, char *argv[]) Optionpk<string> output_opt("o", "output", "Output sample file (image file)"); Optionpk<int> class_opt("c", "class", "Class(es) to extract from input sample image. Leave empty to extract all valid data pixels from sample file. Make sure to set classes if rule is set to maxvote or proportion"); Optionpk<float> threshold_opt("t", "threshold", "threshold for selecting samples (randomly). Provide probability in percentage (>0) or absolute (<0). Use a single threshold for vector sample files. If using raster land cover maps as a sample file, you can provide a threshold value for each class (e.g. -t 80 -t 60). Use value 100 to select all pixels for selected class(es)", 100); - Optionpk<string> ogrformat_opt("f", "f", "Output sample file format","ESRI Shapefile"); + Optionpk<string> ogrformat_opt("f", "f", "Output sample file format","SQLite"); Optionpk<string> ftype_opt("ft", "ftype", "Field type (only Real or Integer)", "Real"); Optionpk<string> ltype_opt("lt", "ltype", "Label type: In16 or String", "Integer"); Optionpk<bool> polygon_opt("polygon", "polygon", "create OGRPolygon as geometry instead of OGRPoint. Only if sample option is also of polygon type.", false); diff --git a/src/apps/pkoptsvm.cc b/src/apps/pkoptsvm.cc index 8980d0a..864ccaf 100644 --- a/src/apps/pkoptsvm.cc +++ b/src/apps/pkoptsvm.cc @@ -230,8 +230,8 @@ int main(int argc, char *argv[]) { map<short,int> reclassMap; vector<int> vreclass; - Optionpk<string> input_opt("i", "input", "input image"); - Optionpk<string> training_opt("t", "training", "training vector file. A single vector file contains all training features (must be set as: B0, B1, B2,...) for all classes (class numbers identified by label option)."); + Optionpk<string> training_opt("t", "training", "training vector file. A single vector file contains all training features (must be set as: b0, b1, b2,...) for all classes (class numbers identified by label option)."); + Optionpk<string> input_opt("i", "input", "input test vectro file"); Optionpk<string> tlayer_opt("tln", "tln", "training layer name(s)"); Optionpk<string> label_opt("\0", "label", "identifier for class label in training vector 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); @@ -248,12 +248,13 @@ int main(int argc, char *argv[]) Optionpk<unsigned int> maxit_opt("maxit","maxit","maximum number of iterations",500); Optionpk<string> algorithm_opt("a", "algorithm", "GRID, or any optimization algorithm from http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms","GRID"); Optionpk<double> tolerance_opt("tol","tolerance","relative tolerance for stopping criterion",0.0001); - Optionpk<double> step_opt("step","step","multiplicative step for GRID search (-step cost -step gamma)",2); + Optionpk<double> stepcc_opt("stepcc","stepcc","multiplicative step for ccost in GRID search",2); + Optionpk<double> stepg_opt("stepg","stepg","multiplicative step for gamma in GRID search",2); bool doProcess;//stop process when program was invoked with help option (-h --help) try{ - doProcess=input_opt.retrieveOption(argc,argv); - training_opt.retrieveOption(argc,argv); + doProcess=training_opt.retrieveOption(argc,argv); + input_opt.retrieveOption(argc,argv); tlayer_opt.retrieveOption(argc,argv); label_opt.retrieveOption(argc,argv); // reclass_opt.retrieveOption(argc,argv); @@ -281,7 +282,8 @@ int main(int argc, char *argv[]) costfunction_opt.retrieveOption(argc,argv); maxit_opt.retrieveOption(argc,argv); tolerance_opt.retrieveOption(argc,argv); - step_opt.retrieveOption(argc,argv); + stepcc_opt.retrieveOption(argc,argv); + stepg_opt.retrieveOption(argc,argv); algorithm_opt.retrieveOption(argc,argv); classname_opt.retrieveOption(argc,argv); classvalue_opt.retrieveOption(argc,argv); @@ -594,8 +596,8 @@ int main(int argc, char *argv[]) std::vector<double> x(2); if(algorithm_opt[0]=="GRID"){ - if(step_opt.size()<2)//[0] for cost, [1] for gamma - step_opt.push_back(step_opt.back()); + // if(step_opt.size()<2)//[0] for cost, [1] for gamma + // step_opt.push_back(step_opt.back()); double minError=1000; double minCost=0; double minGamma=0; @@ -607,8 +609,8 @@ int main(int argc, char *argv[]) pfnProgress(progress,pszMessage,pProgressArg); double ncost=log(ccost_opt[1])/log(10.0)-log(ccost_opt[0])/log(10.0); double ngamma=log(gamma_opt[1])/log(10.0)-log(gamma_opt[0])/log(10.0); - for(double ccost=ccost_opt[0];ccost<=ccost_opt[1];ccost*=step_opt[0]){ - for(double gamma=gamma_opt[0];gamma<=gamma_opt[1];gamma*=step_opt[1]){ + for(double ccost=ccost_opt[0];ccost<=ccost_opt[1];ccost*=stepcc_opt[0]){ + for(double gamma=gamma_opt[0];gamma<=gamma_opt[1];gamma*=stepg_opt[0]){ x[0]=ccost; x[1]=gamma; std::vector<double> theGrad; diff --git a/src/apps/pkstatascii.cc b/src/apps/pkstatascii.cc index 7950758..69a1137 100644 --- a/src/apps/pkstatascii.cc +++ b/src/apps/pkstatascii.cc @@ -56,7 +56,7 @@ int main(int argc, char *argv[]) Optionpk<bool> histogram2d_opt("hist2d","hist2d","calculate 2-dimensional histogram based on two columns",false); Optionpk<short> nbin_opt("nbin","nbin","number of bins to calculate histogram"); Optionpk<bool> relative_opt("rel","relative","use percentiles for histogram to calculate histogram",false); - Optionpk<bool> kde_opt("kde","kde","Use Kernel density estimation when producing histogram. The standard deviation is estimated based on Silverman's rule of thumb.",false); + Optionpk<bool> kde_opt("kde","kde","Use Kernel density estimation when producing histogram. The standard deviation is estimated based on Silverman's rule of thumb",false); Optionpk<bool> correlation_opt("cor","correlation","calculate Pearson produc-moment correlation coefficient between two columns (defined by -c <col1> -c <col2>",false); Optionpk<bool> rmse_opt("rmse","rmse","calculate root mean square error between two columns (defined by -c <col1> -c <col2>",false); Optionpk<bool> reg_opt("reg","regression","calculate linear regression error between two columns (defined by -c <col1> -c <col2>",false); diff --git a/src/apps/pkstatogr.cc b/src/apps/pkstatogr.cc index c7b9b5c..074d291 100644 --- a/src/apps/pkstatogr.cc +++ b/src/apps/pkstatogr.cc @@ -45,7 +45,7 @@ int main(int argc, char *argv[]) Optionpk<bool> histogram_opt("hist","hist","calculate histogram",false); Optionpk<unsigned int> nbin_opt("nbin", "nbin", "number of bins"); Optionpk<bool> relative_opt("rel","relative","use percentiles for histogram to calculate histogram",false); - Optionpk<bool> kde_opt("kde","kde","Use Kernel density estimation when producing histogram. The standard deviation is estimated based on Silverman's rule of thumb.",false); + Optionpk<bool> kde_opt("kde","kde","Use Kernel density estimation when producing histogram. The standard deviation is estimated based on Silverman's rule of thumb",false); Optionpk<short> verbose_opt("v", "verbose", "verbose mode if > 0", 0); bool doProcess;//stop process when program was invoked with help option (-h --help) diff --git a/src/apps/pksvm.cc b/src/apps/pksvm.cc index 19b83b8..4ca05b9 100644 --- a/src/apps/pksvm.cc +++ b/src/apps/pksvm.cc @@ -49,7 +49,7 @@ int main(int argc, char *argv[]) //--------------------------- command line options ------------------------------------ Optionpk<string> input_opt("i", "input", "input image"); - Optionpk<string> training_opt("t", "training", "training vector file. A single vector 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> training_opt("t", "training", "training vector file. A single vector 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> tlayer_opt("tln", "tln", "training layer name(s)"); Optionpk<string> label_opt("label", "label", "identifier for class label in training vector file.","label"); Optionpk<unsigned int> balance_opt("bal", "balance", "balance the input data to this number of samples for each class", 0); @@ -61,7 +61,7 @@ int main(int argc, char *argv[]) Optionpk<double> offset_opt("\0", "offset", "offset value for each spectral band input features: refl[band]=(DN[band]-offset[band])/scale[band]", 0.0); Optionpk<double> scale_opt("\0", "scale", "scale value for each spectral band input features: refl=(DN[band]-offset[band])/scale[band] (use 0 if scale min and max in each band to -1.0 and 1.0)", 0.0); Optionpk<double> priors_opt("p", "prior", "prior probabilities for each class (e.g., -p 0.3 -p 0.3 -p 0.2 ). Used for input only (ignored for cross validation)", 0.0); - Optionpk<string> priorimg_opt("pim", "priorimg", "prior probability image (multi-band img with band for each class"); + Optionpk<string> priorimg_opt("pim", "priorimg", "prior probability image (multi-band img with band for each class","",2); Optionpk<unsigned short> cv_opt("cv", "cv", "n-fold cross validation mode",0); Optionpk<std::string> svm_type_opt("svmt", "svmtype", "type of SVM (C_SVC, nu_SVC,one_class, epsilon_SVR, nu_SVR)","C_SVC"); Optionpk<std::string> kernel_type_opt("kt", "kerneltype", "type of kernel function (linear,polynomial,radial,sigmoid) ","radial"); @@ -88,9 +88,9 @@ int main(int argc, char *argv[]) Optionpk<string> option_opt("co", "co", "Creation option for output file. Multiple options can be specified."); Optionpk<string> colorTable_opt("ct", "ct", "colour table in ascii format having 5 columns: id R G B ALFA (0: transparent, 255: solid)"); Optionpk<string> prob_opt("prob", "prob", "probability image."); - Optionpk<string> entropy_opt("entropy", "entropy", "entropy image (measure for uncertainty of classifier output"); - Optionpk<string> active_opt("active", "active", "ogr output for active training sample."); - Optionpk<string> ogrformat_opt("f", "f", "Output ogr format for active training sample","ESRI Shapefile"); + Optionpk<string> entropy_opt("entropy", "entropy", "entropy image (measure for uncertainty of classifier output","",2); + Optionpk<string> active_opt("active", "active", "ogr output for active training sample.","",2); + Optionpk<string> ogrformat_opt("f", "f", "Output ogr format for active training sample","SQLite"); Optionpk<unsigned int> nactive_opt("na", "nactive", "number of active training points",1); Optionpk<string> classname_opt("c", "class", "list of class names."); Optionpk<short> classvalue_opt("r", "reclass", "list of class values (use same order as in class opt)."); @@ -154,6 +154,14 @@ int main(int argc, char *argv[]) exit(0);//help was invoked, stop processing } + if(entropy_opt[0]=="") + entropy_opt.clear(); + if(active_opt[0]=="") + active_opt.clear(); + if(priorimg_opt[0]=="") + priorimg_opt.clear(); + + std::map<std::string, svm::SVM_TYPE> svmMap; svmMap["C_SVC"]=svm::C_SVC; @@ -429,7 +437,7 @@ int main(int argc, char *argv[]) exit(1); } if(classname_opt.empty()){ - std::cerr << "Warning: no class name and value pair provided for all " << nclass << " classes, using string2type<int> instead!" << std::endl; + //std::cerr << "Warning: no class name and value pair provided for all " << nclass << " classes, using string2type<int> instead!" << std::endl; for(int iclass=0;iclass<nclass;++iclass){ if(verbose_opt[0]) std::cout << iclass << " " << cm.getClass(iclass) << " -> " << string2type<short>(cm.getClass(iclass)) << std::endl; -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pktools.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel