[pktools] 266/375: changed kde type to bool and rely on Silvernman's rule of thumb in pkstatogr and pkstatascii
Bas Couwenberg
sebastic at xs4all.nl
Wed Dec 3 21:54:20 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 cf4777302d831f7dc03ec870871b50b7de46e4e8
Author: Pieter Kempeneers <kempenep at gmail.com>
Date: Mon May 12 20:02:57 2014 +0200
changed kde type to bool and rely on Silvernman's rule of thumb in pkstatogr and pkstatascii
---
src/apps/pkann.cc | 4 ++--
src/apps/pkstatascii.cc | 18 ++++++++--------
src/apps/pkstatogr.cc | 10 ++++-----
src/apps/pksvm.cc | 56 ++++++++++++++++++++++++-------------------------
4 files changed, 44 insertions(+), 44 deletions(-)
diff --git a/src/apps/pkann.cc b/src/apps/pkann.cc
index b199b6d..341eec9 100644
--- a/src/apps/pkann.cc
+++ b/src/apps/pkann.cc
@@ -43,7 +43,7 @@ int main(int argc, char *argv[])
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);
- Optionpk<bool> random_opt("random", "random", "in case of balance, randomize input data", true);
+ Optionpk<bool> random_opt("random", "random", "in case of balance, randomize input data", true,2);
Optionpk<int> minSize_opt("min", "min", "if number of training pixels is less then min, do not take this class into account (0: consider all classes)", 0);
Optionpk<double> start_opt("s", "start", "start band sequence number",0);
Optionpk<double> end_opt("e", "end", "end band sequence number (set to 0 to include bands)", 0);
@@ -659,7 +659,7 @@ int main(int argc, char *argv[])
if(verbose_opt[0]>=1)
cout << "opening class image for writing output " << output_opt[0] << endl;
if(classBag_opt.size()){
- classImageBag.open(output_opt[0],ncol,nrow,nbag,GDT_Byte,imageType,option_opt);
+ classImageBag.open(classBag_opt[0],ncol,nrow,nbag,GDT_Byte,imageType,option_opt);
classImageBag.GDALSetNoDataValue(nodata_opt[0]);
classImageBag.copyGeoTransform(testImage);
classImageBag.setProjection(testImage.getProjection());
diff --git a/src/apps/pkstatascii.cc b/src/apps/pkstatascii.cc
index 6dd1d25..7950758 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<double> kde_opt("kde","kde","bandwith of kernel density when producing histogram, use 0 for practical estimation based on Silverman's rule of thumb. Leave empty if no kernel density is required");
+ 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);
@@ -204,10 +204,10 @@ int main(int argc, char *argv[])
if(histogram_opt[0]){
//todo: support kernel density function and estimate sigma as in practical estimate of the bandwith in http://en.wikipedia.org/wiki/Kernel_density_estimation
double sigma=0;
- if(kde_opt.size()){
- if(kde_opt[0]>0)
- sigma=kde_opt[0];
- else
+ if(kde_opt[0]){//.size()){
+ // if(kde_opt[0]>0)
+ // sigma=kde_opt[0];
+ // else
sigma=1.06*sqrt(stat.var(dataVector[icol]))*pow(dataVector[icol].size(),-0.2);
}
assert(nbin);
@@ -318,10 +318,10 @@ int main(int argc, char *argv[])
assert(dataVector[0].size()==dataVector[1].size());
double sigma=0;
//kernel density estimation as in http://en.wikipedia.org/wiki/Kernel_density_estimation
- if(kde_opt.size()){
- if(kde_opt[0]>0)
- sigma=kde_opt[0];
- else
+ if(kde_opt[0]){
+ // if(kde_opt[0]>0)
+ // sigma=kde_opt[0];
+ // else
sigma=1.06*sqrt(sqrt(stat.var(dataVector[0]))*sqrt(stat.var(dataVector[0])))*pow(dataVector[0].size(),-0.2);
}
assert(nbin);
diff --git a/src/apps/pkstatogr.cc b/src/apps/pkstatogr.cc
index 11c34eb..c7b9b5c 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<double> kde_opt("kde","kde","bandwith of kernel density when producing histogram, use 0 for practical estimation based on Silverman's rule of thumb. Leave empty if no kernel density is required");
+ 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)
@@ -125,10 +125,10 @@ int main(int argc, char *argv[])
if(histogram_opt[0]){
double sigma=0;
- if(kde_opt.size()){
- if(kde_opt[0]>0)
- sigma=kde_opt[0];
- else
+ if(kde_opt[0]){
+ // if(kde_opt[0]>0)
+ // sigma=kde_opt[0];
+ // else
sigma=1.06*sqrt(stat.var(theData))*pow(theData.size(),-0.2);
}
if(nbin<1)
diff --git a/src/apps/pksvm.cc b/src/apps/pksvm.cc
index 148c0d6..19b83b8 100644
--- a/src/apps/pksvm.cc
+++ b/src/apps/pksvm.cc
@@ -53,7 +53,7 @@ int main(int argc, char *argv[])
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);
- Optionpk<bool> random_opt("random", "random", "in case of balance, randomize input data", true);
+ Optionpk<bool> random_opt("random", "random", "randomize training data for balancing and bagging", true, 2);
Optionpk<int> minSize_opt("min", "min", "if number of training pixels is less then min, do not take this class into account (0: consider all classes)", 0);
Optionpk<double> start_opt("s", "start", "start band sequence number",0);
Optionpk<double> end_opt("e", "end", "end band sequence number (set to 0 to include all bands)", 0);
@@ -98,52 +98,52 @@ int main(int argc, char *argv[])
bool doProcess;//stop process when program was invoked with help option (-h --help)
try{
- doProcess=input_opt.retrieveOption(argc,argv);
- training_opt.retrieveOption(argc,argv);
+ doProcess=training_opt.retrieveOption(argc,argv);
tlayer_opt.retrieveOption(argc,argv);
+ input_opt.retrieveOption(argc,argv);
+ output_opt.retrieveOption(argc,argv);
+ cv_opt.retrieveOption(argc,argv);
+ classname_opt.retrieveOption(argc,argv);
+ classvalue_opt.retrieveOption(argc,argv);
+ oformat_opt.retrieveOption(argc,argv);
+ ogrformat_opt.retrieveOption(argc,argv);
+ option_opt.retrieveOption(argc,argv);
+ colorTable_opt.retrieveOption(argc,argv);
label_opt.retrieveOption(argc,argv);
- balance_opt.retrieveOption(argc,argv);
- random_opt.retrieveOption(argc,argv);
- minSize_opt.retrieveOption(argc,argv);
+ priors_opt.retrieveOption(argc,argv);
+ gamma_opt.retrieveOption(argc,argv);
+ ccost_opt.retrieveOption(argc,argv);
+ mask_opt.retrieveOption(argc,argv);
+ msknodata_opt.retrieveOption(argc,argv);
+ nodata_opt.retrieveOption(argc,argv);
+ band_opt.retrieveOption(argc,argv);
start_opt.retrieveOption(argc,argv);
end_opt.retrieveOption(argc,argv);
- band_opt.retrieveOption(argc,argv);
+ balance_opt.retrieveOption(argc,argv);
+ minSize_opt.retrieveOption(argc,argv);
+ bag_opt.retrieveOption(argc,argv);
+ bagSize_opt.retrieveOption(argc,argv);
+ comb_opt.retrieveOption(argc,argv);
+ classBag_opt.retrieveOption(argc,argv);
+ prob_opt.retrieveOption(argc,argv);
+ priorimg_opt.retrieveOption(argc,argv);
offset_opt.retrieveOption(argc,argv);
scale_opt.retrieveOption(argc,argv);
- priors_opt.retrieveOption(argc,argv);
- priorimg_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);
- 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);
- msknodata_opt.retrieveOption(argc,argv);
- nodata_opt.retrieveOption(argc,argv);
- output_opt.retrieveOption(argc,argv);
- oformat_opt.retrieveOption(argc,argv);
- colorTable_opt.retrieveOption(argc,argv);
- option_opt.retrieveOption(argc,argv);
- prob_opt.retrieveOption(argc,argv);
entropy_opt.retrieveOption(argc,argv);
active_opt.retrieveOption(argc,argv);
- ogrformat_opt.retrieveOption(argc,argv);
nactive_opt.retrieveOption(argc,argv);
- classname_opt.retrieveOption(argc,argv);
- classvalue_opt.retrieveOption(argc,argv);
verbose_opt.retrieveOption(argc,argv);
+ random_opt.retrieveOption(argc,argv);
}
catch(string predefinedString){
std::cout << predefinedString << std::endl;
@@ -653,7 +653,7 @@ int main(int argc, char *argv[])
if(verbose_opt[0]>=1)
std::cout << "opening class image for writing output " << output_opt[0] << std::endl;
if(classBag_opt.size()){
- classImageBag.open(output_opt[0],ncol,nrow,nbag,GDT_Byte,imageType,option_opt);
+ classImageBag.open(classBag_opt[0],ncol,nrow,nbag,GDT_Byte,imageType,option_opt);
classImageBag.GDALSetNoDataValue(nodata_opt[0]);
classImageBag.copyGeoTransform(testImage);
classImageBag.setProjection(testImage.getProjection());
--
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