[Proj] Area of a spherical polygon
Charles Karney
ckarney at sarnoff.com
Sun Sep 19 08:37:31 EST 2010
The area of a polygon on a (unit) sphere is given by the spherical
excess
A = 2*pi - sum(exterior angles)
However this is badly conditioned if the polygon is small. In this
case, use
A = sum S_{i,i+1} over the edges of the polygon
where S12 is the area of the quadrilateral bounded by an edge of the
polygon, two meridians, and the equator, i.e., with vertices
(phi1,lambda1); (phi2,lambda2);
(0, lambda1); (0, lambda2);
S12 is given by
tan(S12/2) = tan(lambda12/2) * ( tan(phi1/2) + tan(phi2/2) )
/ ( 1 + tan(phi1/2) * tan(phi2/2) )
= tan(lambda12/2) * tanh( (lam(phi1) + lam(phi2))/2 )
where lambda12 = lambda2 - lambda1 and lam(x) is the lambertian (or
inverse gudermannian) function
lam(x) = asinh(tan(x)) = atanh(sin(x)) = 2*atanh(tan(x/2))
Notes:
* the formula for S12 is exact, except that...
* it is indeterminate if an edge is a semi-circle;
* the formula for A applies only if the polygon does not include a pole
(if it does, then add +/- pi to the result);
* in the limit of small phi and lambda, S12 reduces to the trapezoidal
formula, S12 = (lambda2 - lambda1) * (phi1 + phi2)/2;
* I derived this result from the equation for the area of a spherical
triangle in terms of two edges and the included angle given by, e.g.,
Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2). See
http://books.google.com/books?id=3uBHAAAAIAAJ&pg=PA71
* I would be interested to know if this formula for S12 is already
known.
--Charles
--
Charles Karney <ckarney at sarnoff.com>
Sarnoff Corporation, Princeton, NJ 08543-5300
Tel: +1 609 734 2312
Fax: +1 609 734 2662
More information about the Proj
mailing list