当我使用 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 0.10.0版本才加入的,所以根据报错,你的版本可能比较旧(可以查看geopandas.__version__
)。
在旧版本上,您可以使用函数代替:
grid = geopandas.overlay(grid, national_outline, ..)