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.

3
  • GeoJSON is crs:84. There is no EPSG code equivalent for this projection
    – nmtoken
    Sep 27 '19 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 '19 at 11:47
  • Bringing PostGis into an environment to solve a problem this trivial seems extremely heavy handed.
    – Jwely
    Oct 4 '19 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.