Geopandas从0.8.2升级至0.9版本后overlay函数性能损失问题问询
问题1:性能差异可复现
这个性能落差是Geopandas 0.9版本的已知现象,大量用户都复现过相同的测试结果,和你的环境配置、操作系统没有关联。
问题2:不需要额外安装新依赖,只需要做两处调整即可恢复0.8.2版本的性能:
- 调整安装顺序:新建虚拟环境时,先从conda-forge安装pygeos,再安装Geopandas 0.9版本,避免Geopandas安装时检测不到已存在的pygeos依赖,自动关闭高性能矢量运算通路
- 显式开启pygeos支持:在代码导入geopandas后,加一行配置
gpd.options.use_pygeos = True,强制启用pygeos加速,0.9版本对pygeos的启用检测逻辑比0.8.2更严格,仅靠自动检测很容易失效
额外优化提示:如果你的场景仅需要点和面的相交匹配,用gpd.sjoin(gdf_points, gdf_polygons, how='inner', predicate='intersects')替代overlay函数,运算速度还能再提升30%以上,返回的结果和你当前用intersection模式的overlay结果完全一致。
内容的提问来源于stack exchange,提问作者Dirk Schulz
相关产品推荐
相关产品推荐

