[Edu-sig] Calculating area of a surface plane on a spherical body

Jaap Spies jaapspies@home.nl
Tue, 25 Sep 2001 21:45:22 +0100


> Given > 3 points on a plane, how would one use Python to calculate the
> surface area of that plane. I'm assuming numpy would be used because
> it's going to run quite frequently.
> 
> To give more of an explaination, I'm trying to develop an educational
> program that is adding mathematics to my existing attempt to merge
> science(geology) and programming. Students will take coordinate data
> (either in lat/lon or UTM format) and enter the data into their
> programs to manipulate it, so the points will probably be in lat/lon
> format.
> 
> If a program already exisits with such a solution, I wouldn't mind
> reading the code. Otherwise, I'd like a math guru's opinion on
> well-formed solutions.
> 

Sorry, my reaction is a little bit late.

When the area is small compared with R*R (R = 6000 km, radius or the
earth),
you may consider a polygon in a plane (maps are based on this concept).

The area of a polygon P0, P1, P2, ..., Pn with P0 = Pn, can be
calculated
with a simple algorithm:

    A = ( sum from i=0 to n-1 (y[i+1] - y[i])*(x[i+1] + x[i]) ) / 2

where (x[i], y[i]) represents the coordinates of point P with index i.
All you have to do is translate lat/lon in rectangular coordinates.


Girard's theorem:
    A = sum from i=1 to n (theta[i]) - (n-2) * pi, (R=1)
is for relative small area's rather sensitive for errors in the theta's.


Jaap Spies,

Institute of Technology
Hogeschool Drenthe