[GRASS-SVN] r61526 - grass/trunk/vector/v.outlier

svn_grass at osgeo.org svn_grass at osgeo.org
Mon Aug 4 23:59:29 PDT 2014


Author: neteler
Date: 2014-08-04 23:59:29 -0700 (Mon, 04 Aug 2014)
New Revision: 61526

Modified:
   grass/trunk/vector/v.outlier/main.c
   grass/trunk/vector/v.outlier/v.outlier.html
Log:
v.outlier: standardized soe/son parameters to ew_step/ns_step (trac #2299); minor code/msg style sync with v.surf.bspline

Modified: grass/trunk/vector/v.outlier/main.c
===================================================================
--- grass/trunk/vector/v.outlier/main.c	2014-08-05 00:14:17 UTC (rev 61525)
+++ grass/trunk/vector/v.outlier/main.c	2014-08-05 06:59:29 UTC (rev 61526)
@@ -1,36 +1,36 @@
 
-/************************************************************************
- *									*
- * MODULE:       v.outlier						*
- * 									*
- * AUTHOR(S):    Roberto Antolin					*
- *               							*
- * PURPOSE:      Removal of data outliers				*
- *               							*
- * COPYRIGHT:    (C) 2006 by Politecnico di Milano - 			*
- *			     Polo Regionale di Como			*
- *									*
- *               This program is free software under the 		*
- *               GNU General Public License (>=v2). 			*
- *               Read the file COPYING that comes with GRASS		*
- *               for details.						*
- *									*
- ************************************************************************/
+/**********************************************************************
+ *
+ * MODULE:       v.outlier
+ *
+ * AUTHOR(S):    Roberto Antolin
+ *               
+ * PURPOSE:      Removal of data outliers
+ *
+ * COPYRIGHT:    (C) 2006 by Politecnico di Milano -
+ *			     Polo Regionale di Como
+ *
+ *               This program is free software under the
+ *               GNU General Public License (>=v2).
+ *               Read the file COPYING that comes with GRASS
+ *               for details.
+ *
+ **********************************************************************/
 
- /*INCLUDES*/
+/* INCLUDES */
 #include <stdlib.h>
 #include <string.h>
 #include <math.h>
 #include "outlier.h"
 
-    /* GLOBAL VARIABLES DEFINITIONS */
+/* GLOBAL VARIABLES */
 int nsply, nsplx;
 double stepN, stepE, Thres_Outlier;
 
-/*--------------------------------------------------------------------------------------*/
+/*--------------------------------------------------------------------*/
 int main(int argc, char *argv[])
 {
-    /* Variables' declarations */
+    /* Variables declarations */
     int nsplx_adj, nsply_adj;
     int nsubregion_col, nsubregion_row;
     int subregion = 0, nsubregions = 0;
@@ -48,23 +48,23 @@
     double *TN, *Q, *parVect;	/* Interpolating and least-square vectors */
     double **N, **obsVect;	/* Interpolation and least-square matrix */
 
-    /* Structs' declarations */
+    /* Structs declarations */
     struct Map_info In, Out, Outlier, Qgis;
     struct Option *in_opt, *out_opt, *outlier_opt, *qgis_opt, *stepE_opt,
 	*stepN_opt, *lambda_f_opt, *Thres_O_opt, *filter_opt;
     struct Flag *spline_step_flag;
     struct GModule *module;
 
+    struct Reg_dimens dims;
     struct Cell_head elaboration_reg, original_reg;
-    struct Reg_dimens dims;
     struct bound_box general_box, overlap_box;
 
     struct Point *observ;
 
     dbDriver *driver;
 
-    /*------------------------------------------------------------------------------------------*/
-    /* Options' declaration */
+    /*----------------------------------------------------------------*/
+    /* Options declaration */
     module = G_define_module();
     G_add_keyword(_("vector"));
     G_add_keyword(_("statistics"));
@@ -97,20 +97,22 @@
     qgis_opt->description = _("Name of vector map for visualization in QGIS");
 
     stepE_opt = G_define_option();
-    stepE_opt->key = "soe";
+    stepE_opt->key = "ew_step";
     stepE_opt->type = TYPE_DOUBLE;
     stepE_opt->required = NO;
     stepE_opt->answer = "10";
     stepE_opt->description =
-	_("Interpolation spline step value in east direction");
+	_("Length of each spline step in the east-west direction");
+    stepE_opt->guisection = _("Settings");
 
     stepN_opt = G_define_option();
-    stepN_opt->key = "son";
+    stepN_opt->key = "ns_step";
     stepN_opt->type = TYPE_DOUBLE;
     stepN_opt->required = NO;
     stepN_opt->answer = "10";
     stepN_opt->description =
-	_("Interpolation spline step value in north direction");
+	_("Length of each spline step in the north-south direction");
+    stepN_opt->guisection = _("Settings");
 
     lambda_f_opt = G_define_option();
     lambda_f_opt->key = "lambda_i";
@@ -118,6 +120,7 @@
     lambda_f_opt->required = NO;
     lambda_f_opt->description = _("Tykhonov regularization weight");
     lambda_f_opt->answer = "0.1";
+    lambda_f_opt->guisection = _("Settings");
 
     Thres_O_opt = G_define_option();
     Thres_O_opt->key = "thres_o";
@@ -136,7 +139,6 @@
 
     /* Parsing */
     G_gisinit(argv[0]);
-
     if (G_parser(argc, argv))
 	exit(EXIT_FAILURE);
 
@@ -187,8 +189,8 @@
 	db_close_database_shutdown_driver(driver);
     }
 
-    Vect_set_open_level(1);
     /* Open input vector */
+    Vect_set_open_level(1);	/* WITHOUT TOPOLOGY */
     if (1 > Vect_open_old(&In, in_opt->answer, mapset))
 	G_fatal_error(_("Unable to open vector map <%s> at the topological level"),
 		      in_opt->answer);
@@ -243,7 +245,7 @@
 	Vect_hist_command(&Qgis);
     }
 
-    /* Start driver and open db */
+    /* Open driver and database */
     driver = db_start_driver_open_database(dvr, db);
     if (driver == NULL)
 	G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
@@ -274,7 +276,7 @@
       ----------------------------------------------------------------*/
 
     /* Fixing parameters of the elaboration region */
-    P_zero_dim(&dims);
+    P_zero_dim(&dims);		/* Set dim struct to zero */
 
     nsplx_adj = NSPLX_MAX;
     nsply_adj = NSPLY_MAX;
@@ -285,8 +287,8 @@
     P_get_edge(P_BILINEAR, &dims, stepE, stepN);
     P_set_dim(&dims, stepE, stepN, &nsplx_adj, &nsply_adj);
 
-    G_verbose_message(_("adjusted EW splines %d"), nsplx_adj);
-    G_verbose_message(_("adjusted NS splines %d"), nsply_adj);
+    G_verbose_message(_("Adjusted EW splines %d"), nsplx_adj);
+    G_verbose_message(_("Adjusted NS splines %d"), nsply_adj);
 
     /* calculate number of subregions */
     edgeE = dims.ew_size - dims.overlap - 2 * dims.edge_v;
@@ -314,23 +316,24 @@
 		      GENERAL_ROW);
 
 	if (elaboration_reg.north > original_reg.north) {	/* First row */
+
 	    P_set_regions(&elaboration_reg, &general_box, &overlap_box, dims,
 			  FIRST_ROW);
 	}
 
 	if (elaboration_reg.south <= original_reg.south) {	/* Last row */
+
 	    P_set_regions(&elaboration_reg, &general_box, &overlap_box, dims,
 			  LAST_ROW);
 	    last_row = TRUE;
 	}
 
 	nsply =
-	    ceil((elaboration_reg.north - elaboration_reg.south) / stepN) +
-	    0.5;
+	    ceil((elaboration_reg.north -
+		  elaboration_reg.south) / stepN) + 0.5;
 	/*
-	if (nsply > NSPLY_MAX) {
+	if (nsply > NSPLY_MAX)
 	    nsply = NSPLY_MAX;
-	}
 	*/
 	G_debug(1, "nsply = %d", nsply);
 
@@ -341,31 +344,31 @@
 
 	    subregion++;
 	    if (nsubregions > 1)
-		G_message(_("subregion %d of %d"), subregion, nsubregions);
+		G_message(_("Processing subregion %d of %d..."), subregion, nsubregions);
 	    else /* v.outlier -e will report mean point distance: */
-		G_warning(_("No subregions found! Check values for 'soe' and 'son' parameters"));
+		G_warning(_("No subregions found! Check values for 'ew_step' and 'ns_step' parameters"));
 
 	    P_set_regions(&elaboration_reg, &general_box, &overlap_box, dims,
 			  GENERAL_COLUMN);
 
 	    if (elaboration_reg.west < original_reg.west) {	/* First column */
+
 		P_set_regions(&elaboration_reg, &general_box, &overlap_box,
 			      dims, FIRST_COLUMN);
 	    }
 
 	    if (elaboration_reg.east >= original_reg.east) {	/* Last column */
+
 		P_set_regions(&elaboration_reg, &general_box, &overlap_box,
 			      dims, LAST_COLUMN);
 		last_column = TRUE;
 	    }
-
 	    nsplx =
-		ceil((elaboration_reg.east - elaboration_reg.west) / stepE) +
-		0.5;
+		ceil((elaboration_reg.east -
+		      elaboration_reg.west) / stepE) + 0.5;
 	    /*
-	    if (nsplx > NSPLX_MAX) {
+	    if (nsplx > NSPLX_MAX)
 		nsplx = NSPLX_MAX;
-	    }
 	    */
 	    G_debug(1, "nsplx = %d", nsplx);
 
@@ -380,7 +383,7 @@
 
 		nparameters = nsplx * nsply;
 
-		/* Mean's calculation */
+		/* Mean calculation */
 		mean = P_Mean_Calc(&elaboration_reg, observ, npoints);
 
 		/* Least Squares system */
@@ -437,16 +440,16 @@
 	    else {
 		G_free(observ);
 		G_warning(_("No data within this subregion. "
-			    "Consider changing the spline step."));
+			    "Consider increasing spline step values."));
 	    }
 	}			/*! END WHILE; last_column = TRUE */
     }				/*! END WHILE; last_row = TRUE */
 
-    /* Dropping auxiliar table */
+    /* Drop auxiliar table */
     if (npoints > 0) {
-	G_debug(1, "Dropping <%s>", table_name);
+	G_debug(1, "%s: Dropping <%s>", argv[0], table_name);
 	if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
-	    G_fatal_error(_("Auxiliar table could not be dropped"));
+	    G_fatal_error(_("Auxiliary table could not be dropped"));
     }
 
     db_close_database_shutdown_driver(driver);
@@ -462,4 +465,4 @@
     G_done_msg(" ");
 
     exit(EXIT_SUCCESS);
-}				/*!END MAIN */
+}				/*END MAIN */

Modified: grass/trunk/vector/v.outlier/v.outlier.html
===================================================================
--- grass/trunk/vector/v.outlier/v.outlier.html	2014-08-05 00:14:17 UTC (rev 61525)
+++ grass/trunk/vector/v.outlier/v.outlier.html	2014-08-05 06:59:29 UTC (rev 61526)
@@ -44,7 +44,8 @@
 <h3>North carolina location example</h3>
 
 <div class="code"><pre>
-v.outlier --o --v input=elev_lid792_bepts at PERMANENT output=elev_lid792_bepts_nooutliers outlier=elev_lid792_bepts_outliers soe=5 son=5 thres_o=0.1
+v.outlier input=elev_lid792_bepts output=elev_lid792_bepts_nooutliers \
+  outlier=elev_lid792_bepts_outliers ew_step=5 ns_step=5 thres_o=0.1
 </pre></div>
 
 



More information about the grass-commit mailing list