4

The general answer to this question is "Use any equal area projection in units of meters that covers the world". Python code needed to make use of this is short and sweet:

import geopandas as gpd

gdf = gpd.read_file("my.geojson")
equal_area_crs = "EPSG:????"
areas = gdf.to_crs(equal_area_crs).area

I found myself very frustrated however that googling this phrase (and many variants of it) produced zero useful results on the first page. There are MANY introductions to the basics of projections but no quick answers I could use to quickly fix a bug that used an improper area distorting projection.

Searching on epsg.io is somewhat inflexible, seeming only to search in names. A search for "equal area" or "lambert azimuthal equal area" and a variety of other equal area searches produce results with specific regional applicability and mixed units.

I'm posting here because it took me a full hour to find a satisfactory answer, and this may be useful to others.

Jwely
  • 211
  • 2
  • 10
  • GeoJSON is crs:84. There is no EPSG code equivalent for this projection – nmtoken Sep 27 '19 at 02:17
  • Save your data into PostGIS and you can compute areas and lenghts worldwide with ST_Area by using "geography" type geometries https://postgis.net/docs/ST_Area.html. – user30184 Sep 27 '19 at 11:47
  • Bringing PostGis into an environment to solve a problem this trivial seems extremely heavy handed. – Jwely Oct 04 '19 at 16:18

3 Answers3

3

The answer I arrived at is EPSG:6933.

There might be others, but this appears to be appropriate for area computation for any arbitrary polygon on the earth, except for near the poles.

Taras
  • 32,823
  • 4
  • 66
  • 137
Jwely
  • 211
  • 2
  • 10
2

For anyone coming to this question there is a better method here for calculating areas Calculating area of lat/lon polygons without transformation using GeoPandas

Shawn
  • 1,817
  • 9
  • 21
-1

Take a look at ArcGis Quick Notes on Map Projections: quick-notes-on-map-projections

RiGonz
  • 179
  • 1
  • 3