[GRASS-SVN] r36744 - grass/branches/releasebranch_6_4/vector/v.what

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Apr 16 05:28:59 EDT 2009


Author: hamish
Date: 2009-04-16 05:28:59 -0400 (Thu, 16 Apr 2009)
New Revision: 36744

Modified:
   grass/branches/releasebranch_6_4/vector/v.what/description.html
   grass/branches/releasebranch_6_4/vector/v.what/what.c
Log:
cleanup conversion to acres (merge from devbr6)

Modified: grass/branches/releasebranch_6_4/vector/v.what/description.html
===================================================================
--- grass/branches/releasebranch_6_4/vector/v.what/description.html	2009-04-16 09:20:12 UTC (rev 36743)
+++ grass/branches/releasebranch_6_4/vector/v.what/description.html	2009-04-16 09:28:59 UTC (rev 36744)
@@ -5,7 +5,11 @@
 in user-specified vector map layer(s).  This module was derived from the
 <em>d.what.vect</em> module by removing all interactive code and
 modification of the output for easy parsing.
+<P>
+This module always reports standard acres, even when the location uses
+US Survey feet as the map unit.
 
+
 <h2>EXAMPLE</h2>
 
 Spearfish example:
@@ -13,13 +17,18 @@
 v.what fields east_north=599121.75,4922981.125
 </pre></div>
 
+
 <h2>SEE ALSO</h2>
 
-<em><a HREF="d.what.vect.html">d.what.vect</a></em>
+<em>
+<a HREF="d.what.vect.html">d.what.vect</a>
+</em>
 
+
 <h2>AUTHOR</h2>
 
 Trevor Wiens<br>
 Edmonton, Alberta, Canada
 
-<p><i>Last changed: $Date$</i>
+<p>
+<i>Last changed: $Date$</i>

Modified: grass/branches/releasebranch_6_4/vector/v.what/what.c
===================================================================
--- grass/branches/releasebranch_6_4/vector/v.what/what.c	2009-04-16 09:20:12 UTC (rev 36743)
+++ grass/branches/releasebranch_6_4/vector/v.what/what.c	2009-04-16 09:28:59 UTC (rev 36744)
@@ -19,7 +19,7 @@
 {
     int type;
     char east_buf[40], north_buf[40];
-    double sq_meters;
+    double sq_meters, sqm_to_sqft, acres, hectares, sq_miles;
     double z = 0, l = 0;
     int notty = 0;
     int getz = 0;
@@ -36,6 +36,12 @@
     Cats = Vect_new_cats_struct();
     db_init_string(&html);
 
+    /* always use plain feet not US survey ft */
+    /*  if you really want USfeet, try G_database_units_to_meters_factor()
+	here, but then watch that sq_miles is not affected too */
+    sqm_to_sqft = 1 / ( 0.0254 * 0.0254 * 12 * 12 );
+
+
     for (i = 0; i < nvects; i++) {
 
 	Vect_reset_cats(Cats);
@@ -209,7 +215,16 @@
 	    else {
 		fprintf(stdout, _("Type: Area\n"));
 	    }
+
+
 	    sq_meters = Vect_get_area_area(&Map[i], area);
+	    hectares  = sq_meters / 10000.;
+	    /* 1 acre = 1 chain(66') * 1 furlong(10 chains),
+		or if you prefer ( 5280 ft/mi ^2 / 640 acre/sq mi ) */
+	    acres = (sq_meters * sqm_to_sqft) / (66 * 660);
+	    sq_miles = acres / 640.;
+
+
 	    if (topo) {
 		int nisles, isleidx, isle, isle_area;
 
@@ -232,18 +247,16 @@
 	    }
 	    else {
 		fprintf(stdout, _("Sq Meters: %.3f\nHectares: %.3f\n"),
-			sq_meters, (sq_meters / 10000.));
+			sq_meters, hectares);
 		fprintf(stdout, _("Acres: %.3f\nSq Miles: %.4f\n"),
-			((sq_meters * 10.763649) / 43560.),
-			((sq_meters * 10.763649) / 43560.) / 640.);
+			acres, sq_miles);
 		if (notty) {
 		    fprintf(stderr,
 			    _("Sq Meters: %.3f\nHectares: %.3f\n"),
-			    sq_meters, (sq_meters / 10000.));
+			    sq_meters, hectares);
 		    fprintf(stderr,
 			    _("Acres: %.3f\nSq Miles: %.4f\n"),
-			    ((sq_meters * 10.763649) / 43560.),
-			    ((sq_meters * 10.763649) / 43560.) / 640.);
+			    acres, sq_miles);
 		}
 		nlines += 3;
 	    }



More information about the grass-commit mailing list