I recently tried to calculate country sizes with geopandas and the included world file; and I am not capable to calculate the correct size for the chosen countries. Maybe someone can give me a hint where I made a mistake?
Tried various shapefiles (and the included world file shipped with geopandas); all of the afaik in epsg:4326
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
cnames = ['Austria','Sweden','Kenya']
epsgs = ['3857','3395']
for c in cnames:
carea = world[world['name'] == c]
for e in epsgs:
carea = carea.to_crs(epsg=e)
area = int(pd.to_numeric(carea['geometry'].area)/10**6)
print(area)
Expected results are:
Actual results I get:
So Kenya is quite close (also to the equator)? Is the reprojection not right?
To get correct area, you must use 'equal-area' projection. The one that works well with your code is epsg 6933
. It is cylindrical equal-area projection.