Python 使用GDAL/OGR将层/shp与另一层区别或擦除?
Gdal是众所周知的用于地理空间数据处理的最快的库,我在python脚本中使用它,我在一项特定任务中遇到了性能问题,这项任务是从另一层中删除一层,这需要花费太多的时间!我首先使用了这个预构建函数:Python 使用GDAL/OGR将层/shp与另一层区别或擦除?,python,gdal,Python,Gdal,Gdal是众所周知的用于地理空间数据处理的最快的库,我在python脚本中使用它,我在一项特定任务中遇到了性能问题,这项任务是从另一层中删除一层,这需要花费太多的时间!我首先使用了这个预构建函数: inputLayer.Erase(maskLayer, ResultLayer) 这适用于对象数量较大的图层,但当使用具有200000个功能的图层运行时,它将永远保持不变 因此,我成功地编写了以下代码: for featureI in inputLayer: geomI
inputLayer.Erase(maskLayer, ResultLayer)
这适用于对象数量较大的图层,但当使用具有200000个功能的图层运行时,它将永远保持不变
因此,我成功地编写了以下代码:
for featureI in inputLayer:
geomI = featureI.GetGeometryRef()
maskLayer.SetSpatialFilter(geomI)
for featureM in maskLayer:
geomM = featureM.GetGeometryRef()
featureI.SetGeometry(geomI.Difference(geomM))
selfLayer.SetFeature(featureI)
但这将持续1200分钟,对我来说太长了
有没有办法加快速度?你有什么建议给我吗
我用python3.5和GDAL2