Geopandas 溶解错误:GEOSException:IllegalArgumentException:参数必须是 Polygonal 或 LinearRing

ema*_*max 5 python geopandas

我有一个 geopandas 数据框,如下所示

gdf.head()
    geometry                                            raster_val  diss
0   POLYGON ((2.50553 49.10338, 2.50553 49.09506, ...   33.299999   1
1   POLYGON ((2.50553 49.09506, 2.50553 49.08673, ...   33.790001   1
2   POLYGON ((2.52218 49.09506, 2.52218 49.08673, ...   34.000000   1
3   POLYGON ((2.14760 49.07009, 2.14760 49.06176, ...   33.180000   1
4   POLYGON ((2.02274 49.06176, 2.02274 49.05344, ...   33.459999   1
Run Code Online (Sandbox Code Playgroud)

POLYGONS我正在尝试根据专栏解散diss

gdf_diss = gdf.dissolve(by='diss')
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

GEOSException: IllegalArgumentException: Argument must be Polygonal or LinearRing
Run Code Online (Sandbox Code Playgroud)

Bre*_*dan 5

我通过卸载pygeos并安装解决了这个问题Rtree

兼容性说明:Rtree 对于空间索引查询有不同的接口.nearest(),因此如果更改依赖项并使用该方法,则必须修改签名。(来源)


pat*_*rds 2

TL;DR - 创建一个新环境,您可能安装了一些导致 GEOS 崩溃的版本的东西。

当我安装 PyGEOS 以利用 sjoin_nearest 时,就发生了这种情况,要求 PyGEOS>0.10。我我是用 pip 这样做的,这是一个坏主意。我还在 conda 环境中安装了 Cython,然后使用 pip 安装了 networkx-metis。我在 Stack Overflow 之外看到了一些关于 GEOS 安装问题的帖子。创建一个新的 conda 环境 - 包括 Cycthon 和 networkx-metis - 对我有用。

至于根本原因,我不知道。