[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