NAME

Planimeter -- compute the area of geodesic polygons


SYNOPSIS

Planimeter [ -s ] [ -r ] [ -e a r ] [ --version | -h | --help ]


DESCRIPTION

Measure the area of a geodesic polygon. Reads polygon vertices from standard input, one per line. Vertices may be given as latitude and longitude, UTM/UPS, or MGRS coordinates, interpreted in the same way as GeoConvert(1). (MGRS coordinates signify the center of the corresponing MGRS square.) The end of input, a blank line, or a line which can't be interpreted as a vertex signals the end of one polygon and the start of the next. For each polygon print a summary line with the number of points, the perimeter (in meters), and the area (in meters^2).

By default, areas are traversed in a counter-clockwise sense (in other words, the included area is to the left of the perimeter) and a positive area is returned. By this rule, a polygon tranversed in a clockwise sense will return the area of ellipsoid excluded by the polygon; however, if the -s option is given, the signed area will be returned. If the -r option is given, the included area is to the right of the perimeter. Only simple polygons are supported for the area computation. Polygons may include one or both poles.


OPTIONS

-s

return a signed result for the area. (This is a toggle; repeating the option undoes this setting.)

-r

reverse the traversal rule so that clockwise traversal yields a positive result. (This is a toggle; repeating the option undoes this setting.)

-e

specify the ellipsoid via a r; the equatorial radius is a and the reciprocal flattening is r. Setting r = 0 results in a sphere. Specify r < 0 for a prolate ellipsoid. By default, the WGS84 ellipsoid is used, a = 6378137m, r = 298.257223563.

--version

print version.

-h

print usage.

--help

print full documentation.


EXAMPLES

Example (the area of the 100km MGRS square 18SWK)

   Planimeter <<EOF
   18N 500000 4400000
   18N 600000 4400000
   18N 600000 4500000
   18N 500000 4500000
   EOF
   => 4 400139.53295860 10007388597.1913

The following code takes the output from gdalinfo and reports the area covered by the data (assuming the edges of the image are geodesics).

   #! /bin/sh
   egrep '^((Upper|Lower) (Left|Right)|Center) ' |
   sed -e 's/d /d/g' -e "s/' /'/g" | tr -s '(),\r\t' ' ' | awk '{
       if ($1 $2 == "UpperLeft")
           ul = $6 " "  $5;
       else if ($1 $2 == "LowerLeft")
           ll = $6 " "  $5;
       else if ($1 $2 == "UpperRight")
           ur = $6 " "  $5;
       else if ($1 $2 == "LowerRight")
           lr = $6 " "  $5;
       else if ($1 == "Center") {
           printf "%s\n%s\n%s\n%s\n\n", ul, ll, lr, ur;
           ul = ll = ur = lr = "";
       }
   }
   ' | Planimeter | cut -f3 -d' '


SEE ALSO

GeoConvert(1). Planimeter is a part of GeographicLib, http://geographiclib.sf.net. The algorithm for the area of geodesic polygon is given in Section 15 of C. F. F. Karney, Geodesics on an ellipsoid of revolution, Feb. 2011; preprint http://arxiv.org/abs/1102.1215.


AUTHOR

Planimeter was written by Charles Karney.