GRASS GIS 8 Programmer's Manual
8.5.0dev(2024)a2d9ad8523

GIS Library  Polygon area calculation routines. More...
Go to the source code of this file.
Macros  
#define  TWOPI M_PI + M_PI 
Functions  
void  G_begin_ellipsoid_polygon_area (double a, double e2) 
Begin area calculations. More...  
double  G_ellipsoid_polygon_area (const double *lon, const double *lat, int n) 
Area of latlong polygon. More...  
GIS Library  Polygon area calculation routines.
(C) 20012013 by the GRASS Development Team
This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.
Definition in file area_poly1.c.
Definition at line 18 of file area_poly1.c.
void G_begin_ellipsoid_polygon_area  (  double  a, 
double  e2  
) 
Begin area calculations.
This initializes the polygon area calculations for the ellipsoid with semimajor axis a (in meters) and ellipsoid eccentricity squared e2.
a  semimajor axis 
e2  ellipsoid eccentricity squared 
Definition at line 66 of file area_poly1.c.
double G_ellipsoid_polygon_area  (  const double *  lon, 
const double *  lat,  
int  n  
) 
Area of latlong polygon.
Returns the area in square meters of the polygon described by the n pairs of lat,long vertices for latitudelongitude grids.
Note: This routine computes the area of a polygon on the ellipsoid. The sides of the polygon are rhumb lines and, in general, not geodesics. Each side is actually defined by a linear relationship between latitude and longitude, i.e., on a rectangular/equidistant cylindrical/Plate Carr{'e}e grid, the side would appear as a straight line. For two consecutive vertices of the polygon, (lat_1, long1) and (lat_2,long_2), the line joining them (i.e., the polygon's side) is defined by:
lat_2  lat_1 lat = lat_1 + (long  long_1) *  long_2  long_1
where long_1 < long < long_2. The values of QbarA, etc., are determined by the integration of the Q function. Into www.integralcalculator.com, paste this expression :
sin(x)+ (2/3)e^2(sin(x))^3 + (3/5)e^4(sin(x))^5 + (4/7)e^6(sin(x))^7
and you'll get their values. (Last checked 30 Oct 2013).
This function correctly computes (within the limits of the series approximation) the area of a quadrilateral on the ellipsoid when two of its sides run along meridians and the other two sides run along parallels of latitude.
lon  array of longitudes 
lat  array of latitudes 
n  number of lat,lon pairs 
Definition at line 134 of file area_poly1.c.
Referenced by G_area_of_polygon().