我有两组带有多边形的 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/