python - 增强 geopandas 覆盖(交叉)的性能

标签 python arcgis intersection polygons geopandas

我有两组带有多边形的 shapefile。一组 shapefile 只是我感兴趣的美国县,这因公司和年份而异。另一组 shapefile 是公司的业务领域,当然这因公司和年份而异。我需要每年为每家公司获取这两层的交集。到目前为止,函数 overlay(df1, df2, how = 'intersection') 完成了我的目标。但是每个公司年大约需要 300 秒。考虑到我有一长串公司和多年的名单,这将需要几天时间才能完成。有什么办法可以提高这种性能吗?

我注意到,如果我在 ArcGIS 中执行相同的操作,300 秒会缩短到几秒钟。但是我是ArcGIS的新用户,还不熟悉里面的python。

最佳答案

如果您查看当前的 geopandas 覆盖源代码,他们实际上已经更新了覆盖功能以利用 Rtree 空间索引!我不认为此时手动执行 Rtree 会更快(实际上可能会更慢)。

请在此处查看源代码:https://github.com/geopandas/geopandas/blob/master/geopandas/tools/overlay.py

关于python - 增强 geopandas 覆盖(交叉)的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40750194/

相关文章:

python - 属性错误 : 'numpy.ndarray' object has no attribute 'median'

python - 在 Cartopy、Robinson 投影中绘制直线

python - Python 类型方法和 Maya 变换节点上的类型函数有什么区别?

r - ArcGIS 类似于 R for Rasters 中的拉伸(stretch)配色方案

python - nD线与Python中凸包的交点

c++ - 从鼠标坐标到 3d 的点-三角形相交?

python - 根据值合并行( Pandas 到 excel - xlsxwriter)

gis - 在 PostGIS/Netezza/任何其他开源中寻找 ArcGIS 等效函数

javascript - 如何使用 arcgis javascript 顶点 undoManager

ruby - 如何检查一个多维 Ruby 数组中的元素是否存在于另一个数组中?