[ 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 is for writing down some ideas. We probably need to read the abovecited article
and other internet resources more carefully. In particular we need some more analytical analysis
for determining how [rhumb lineshttp://en.wikipedia.org/wiki/Rhumb_line] are handled in the
abovecited resources. This would affect polygon segments of more than 100 km.
was:
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.
> 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 is for writing down some ideas. We probably need to read the abovecited article
and other internet resources more carefully. In particular we need some more analytical analysis
for determining how [rhumb lineshttp://en.wikipedia.org/wiki/Rhumb_line] are handled in the
abovecited resources. This would affect polygon segments of more than 100 km.

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