使用 geopandas 计算多边形的正确面积

Gae*_*iko 6 python area geopandas

我最近尝试使用 geopandas 和包含的世界文件计算国家大小;我无法计算所选国家/地区的正确大小。也许有人可以给我一个提示,我在哪里犯了错误?

尝试了各种形状文件(以及 geopandas 附带的世界文件);epsg 中的所有 afaik: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)
Run Code Online (Sandbox Code Playgroud)

预期结果是:

  • 奥地利:83,879 平方公里
  • 瑞典:450,295 平方公里
  • 肯尼亚:580,367 平方公里

我得到的实际结果:

  • 奥地利:187163
  • 奥地利:186592
  • 瑞典:2190160
  • 瑞典:2187138
  • 肯尼亚:595731
  • 肯尼亚:591749

那么肯尼亚非常接近(也靠近赤道)?重投影不对吗?

swa*_*hai 5

要获得正确的面积,您必须使用“等面积”投影。最适合您的代码的是epsg 6933. 它是圆柱等积投影。