3

Input : I have my original data in 4326. This data spans across the globe. This data is collected from DGPS so its accurate to 1 inch. The data is in geometry as geography is costly and functions are limited and in 2D. I am using postgis.

Need: I need to calculate accurate area, length of each geometry.

My conclusion so far : while calculating area either i can dynamically convert the 4326 to respective UTM zones and then calculate area or i can convert it to EPSG:54009 projection to calculate area.

Major question : so which of above method is better ? is there any third better method you can suggest ?

Supportive/minor/Dependent question : how can i cross check the accuracy of both without going to ground ? which one will be accurate. pros and cons if any for each of above methods ?

References:

https://en.wikipedia.org/wiki/Mollweide_projection

https://blogs.esri.com/esri/arcgis/2010/03/05/measuring-distances-and-areas-when-your-map-uses-the-mercator-projection/

Calculating area of an EPSG:4326 Polygon

Abhijit Gujar
  • 2,750
  • 3
  • 29
  • 43
  • If accuracy is your key motivator consider Geodesic Distance https://community.esri.com/groups/coordinate-reference-systems/blog/2014/09/01/geodetic-distances-how-long-is-that-line-again (link is Esri but the concept isn't).. very well researched question. Is 'area' the 2d area or the 3d sum of faces? – Michael Stimson Nov 17 '17 at 04:11
  • You can also let the job for PostGIS by using the geography data type instead of geometry http://postgis.net/docs/manual-2.4/geography.html. But if you really have global data with 1 inch accuracy I believe that some special methods are needed, formulas used by PostGIS and other standard software are rather accurate to 1 meter. On the other hand, if you have only DGPS corrected data the accuracy as best is about 1-3 meters, You need RTK for centimeter level accuracy. – user30184 Nov 17 '17 at 08:02

1 Answers1

3

The simplest and most accurate approach would be to just use the geography type. You can keep your source data as geometry, and just cast them when needed (i.e. ST_Area(geom::geography)).

Make sure you have PostGIS >= 2.2 with Proj >= 4.9.0, to take advantage of a few geodesic-based functions based on GeographicLib, such as ST_Area and ST_Distance. (Older versions were not as robust or accurate, specifically for ST_Area, so be sure to check your versions).

These GeographicLib-based functions have a high accuracy on an ellipsoid of revolution (i.e. WGS84), for instance ST_Distance between two points has an accuracy of 15 nanometers, and ST_Area on a quadrilateral has an accuracy of 0.1 m² (Karney 2013).

The problem with calculations on projections (e.g. UTM zones) is that they are typically distorted towards the edges. One geometry will have a wide range of area calculations, depending on the chosen projection. Unless you need to project and make sense of the data on a map, I'd avoid flat projections.

Mike T
  • 42,095
  • 10
  • 126
  • 187