AttributeError: 'GeoDataFrame' 对象没有属性 'overlay'

问题描述 投票:0回答:1

当我使用 geopandas 运行这个重叠交集时,我得到一个奇怪的错误:

grid = grid.overlay(national_outline, how='intersection')

尽管

grid
national_outline
正在运行 geopandas 数据帧,但错误状态没有属性“覆盖”可用:

Traceback (most recent call last):
  File "C:\Users\eoughton\Desktop\Github\ccdr-basic\scripts\wealth.py", line 238, in <module>
    create_regional_grid(country)
  File "C:\Users\eoughton\Desktop\Github\ccdr-basic\scripts\wealth.py", line 62, in create_regional_grid
    grid = grid.overlay(national_outline, how='intersection')
  File "C:\Users\eoughton\Anaconda3\envs\ga\lib\site-packages\pandas\core\generic.py", line 5575, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'GeoDataFrame' object has no attribute 'overlay'

我只发现了另一个类似的问题here,它将 libspatialindex 和 rtree 确定为潜在的罪魁祸首。

但是,我已经从另一台工作正常的计算机导出了我的 conda 环境,并在产生此错误的新机器上创建了它。 libspatialindex 和 rtree 都已安装。包含所有包版本的 .yml 环境文件在here.

知道为什么会这样吗?

overlay geopandas r-tree libspatialindex
1个回答
0
投票

overlay
方法是在GeoPandas 0.10.0版本才加入的,所以根据报错,你的版本可能比较旧(可以查看
geopandas.__version__
)。

在旧版本上,您可以使用函数代替:

grid = geopandas.overlay(grid, national_outline, ..)
© www.soinside.com 2019 - 2024. All rights reserved.