Cry*_*tie 7 python intersection arcgis polygons geopandas
我有两组带有多边形的 shapefile。一组 shapefile 只是我感兴趣的美国县,这因公司和年份而异。另一组 shapefile 是公司的业务领域,当然这因公司和年份而异。我需要每年为每个公司获得这两层的交集。到目前为止,函数 overlay(df1, df2, how = 'intersection') 实现了我的目标。但每个公司年需要大约 300 秒。鉴于我有很长的公司名单和很多年,这需要我几天才能完成。有什么办法可以提高这种性能吗?
我注意到,如果我在 ArcGIS 中做同样的事情,300 秒就会缩短到几秒钟。但是我是ArcGIS的新用户,还不熟悉里面的python。
小智 6
如果你查看当前的 geopandas 覆盖源代码,他们实际上已经更新了覆盖函数以利用 Rtree 空间索引!我认为此时手动执行 Rtree 不会更快(实际上可能会更慢)。
请参阅此处的源代码:https://github.com/geopandas/geopandas/blob/master/geopandas/tools/overlay.py
希望您现在已经明白了这一点,但解决方案是利用 Geopanda 的 R 树空间索引。通过适当实施,您可以实现数量级的改进。
GoeffBoeing 写了一篇很棒的教程。
http://geoffboeing.com/2016/10/r-tree-spatial-index-python/
归档时间: |
|
查看次数: |
2355 次 |
最近记录: |