[ https://issues.apache.org/jira/browse/SIS155?page=com.atlassian.jira.plugin.system.issuetabpanels:alltabpanel
]
Martin Desruisseaux updated SIS155:

Description:
We need a method for calculating the area inside a polygon on the ellipsoid. Some useful references:
* [Algorithm to find the area of a polygonhttp://www.mathopenref.com/coordpolygonarea2.html]
in Cartesian coordinate system.
* [Ellipsoidal area computations of large terrestrial objectshttp://www.geodyssey.com/papers/ggelare.html]
* [Some algorithms for polygons on a spherehttp://trsnew.jpl.nasa.gov/dspace/bitstream/2014/40409/3/JPL%20Pub%20073%20%20w%20Errata.pdf]
This algorithm for Cartesian coordinate system can be adapted to spherical coordinate systems
by replacing the area sum by (note that this replacement uses vertical strips instead than
horizontal ones):
{code:java}
s += (λ2  λ1) * (2 + sin(φ1) + sin(φ2));
{code}
and the final answer by:
{code:java}
area = abs(s * r² / 2);
{code}
The _r_ value could be approximated to the authalic radius (the radius of a hypothetical sphere
having the same surface than the ellipsoid). However the _Ellipsoidal Area Computations of
Large Terrestrial Objects_ article seems to use a more local approximation, where _a_ and
_b_ are semimajor and semiminor axis lengths:
{code:java}
s = sin(φ)
c = cos(φ)
r = (a²b) / (a²c² + b²s²)
{code}
This task just write down some ideas. We probably need to read the abovecited article and
other internet resources more carefully.
was:
We need a method for calculating the area inside a polygon on the ellipsoid. An algorithm
working in Cartesian coordinate system is available there:
* http://www.mathopenref.com/coordpolygonarea2.html
This algorithm can be adapted to spherical coordinate systems by replacing the area sum by
(note that this replacement uses vertical strips instead than horizontal ones):
{code:java}
s += (λ2  λ1) * (2 + sin(φ1) + sin(φ2));
{code}
and the final answer by:
{code:java}
area = abs(s * r² / 2);
{code}
The _r_ value could be approximated to the authalic radius (the radius of a hypothetical sphere
having the same surface than the ellipsoid). However an article on http://www.geodyssey.com/papers/ggelare.html
seems to use a more local approximation, where _a_ and _b_ are semimajor and semiminor axis
lengths:
{code:java}
s = sin(φ)
c = cos(φ)
r = (a²b) / (a²c² + b²s²)
{code}
This task just write down some ideas. We probably need to read the abovecited article and
other internet resources more carefully.
> Area calculation on ellipsoid
> 
>
> Key: SIS155
> URL: https://issues.apache.org/jira/browse/SIS155
> Project: Spatial Information Systems
> Issue Type: New Feature
> Components: Referencing
> Affects Versions: 0.3
> Reporter: Martin Desruisseaux
>
> We need a method for calculating the area inside a polygon on the ellipsoid. Some useful
references:
> * [Algorithm to find the area of a polygonhttp://www.mathopenref.com/coordpolygonarea2.html]
in Cartesian coordinate system.
> * [Ellipsoidal area computations of large terrestrial objectshttp://www.geodyssey.com/papers/ggelare.html]
> * [Some algorithms for polygons on a spherehttp://trsnew.jpl.nasa.gov/dspace/bitstream/2014/40409/3/JPL%20Pub%20073%20%20w%20Errata.pdf]
> This algorithm for Cartesian coordinate system can be adapted to spherical coordinate
systems by replacing the area sum by (note that this replacement uses vertical strips instead
than horizontal ones):
> {code:java}
> s += (λ2  λ1) * (2 + sin(φ1) + sin(φ2));
> {code}
> and the final answer by:
> {code:java}
> area = abs(s * r² / 2);
> {code}
> The _r_ value could be approximated to the authalic radius (the radius of a hypothetical
sphere having the same surface than the ellipsoid). However the _Ellipsoidal Area Computations
of Large Terrestrial Objects_ article seems to use a more local approximation, where _a_ and
_b_ are semimajor and semiminor axis lengths:
> {code:java}
> s = sin(φ)
> c = cos(φ)
> r = (a²b) / (a²c² + b²s²)
> {code}
> This task just write down some ideas. We probably need to read the abovecited article
and other internet resources more carefully.

This message was sent by Atlassian JIRA
(v6.1.4#6159)
