Add "Vincenty" formulas to the Python getArea method

844
9
01-24-2017 06:43 PM
Status: Open
GregHollard
New Contributor II

We use extensions by Jeff Jenness to help create accurate and consistent area values for some pretty large features, but it would solve some integration issues if the Vincenty distance and area formulas could be added to the list of options to the python methods for area and distance.

 

The differences for an example polygon are shown below.  The differences is small, but significant enough to make a difference.

Currently the options for the getArea method are :

  • PLANAR 
  • GEODESIC 
  • GREAT_ELLIPTIC 
  • LOXODROME 
  • PRESERVE_SHAPE

It would be great if we could do this:

!Shape!.getArea("VINCENTY","HECTARES")!

Thanks also to Dan Mahr‌ for a great article about Calculating Geodesic Areas 

9 Comments
DanPatterson_Retired

hmmm /blogs/dan_patterson/2017/01/24/vincenty ... distance done, shouldn't be to hard to extend

MelitaKennedy

When I see spherical as part of the name, I assume that a sphere is being used as the model of the Earth. If that's the case, I would expect different results. According to the help document for his Tools for Graphics and Shapes, the tool converts a spheroid/ellipsoid to a sphere of equal volume (p73). To calculate areas, I would expect a conversion to an authalic sphere instead--same surface area.

GregHollard

I can see your point, but I'm not in a position to argue with either the legal process that requires these functions to be used or with the research done to produce the functions in the first place. I'm just looking for the best way to include these functions in the ArcGIS Platform so we can streamline our processes.

DanPatterson_Retired

Maybe Melita Kennedy‌ could comment on this link to see if it would be the proper implementation or a variant

Algorithms for geodesics | SpringerLink 

or it you could provide the link to Jeff's implementation, translating from Avenue if they were from ArcView 3.x wouldn't be a problem

BruceHarold

I have used Vincenty distance from a Python module, see this sample for Pro:

http://www.arcgis.com/home/item.html?id=da9efbe1232f426ead182213f53c8cd8 

DanPatterson_Retired

I have yours linked on my blog, there are several incarnations for distance... the implementation I used was nice since students could follow along with the formula and the code and see how they related.  The only problem with that one, is it uses an iterative solution, which is ok.  The reference link I posted is supposed to be non-iterative, but the equations would make a mathematicians head bleed, so I was curious to see what esri used for area which is less well documented

MelitaKennedy

It's fine. I'm not up on the math, but there's a mention of an authalic sphere, so my guess is that Karney is doing a similar solve-triangles but on a equal surface area sphere. I think it's probably more accurate than Jenness. When my colleague was looking at doing direct area calculation on an ellipsoid, he couldn't get a stable implementation. We're using a mix of geodesic calculations and ellipsoid-based equal area projections.

Greg Hollard‌ Was the data in a pcs when you ran the planar getArea calculation? If so, what was it? If it wasn't equal area, could you run it again for me? Could you explain further about the legal ramifications? Is there legislation that Jenness's method must be used? Or that the same method used previously must be used? Or? Thank you!

Melita

GregHollard

Hi Melita,

The data is projected in the New Zealand Transverse Mercator Projection.

The legal ramifications have to do with the calculation of fees for permits.  A lot of work was done to select a process that would give a consistent value for areas within the 5.7 million square kilometres of our Exclusive Economic Zone and extended continental shelf.

Greg

BruceHarold

Greg, Melita is out until the 27th.