0

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.

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

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.