使用GDAL / OGR从另一层差异或擦除层/ shp?

时间:2017-11-17 10:26:25

标签: python gdal

Gdal被认为是地理空间数据处理中最快的库,我在我的python脚本中使用它并且我在某个特定任务上遇到性能问题,即从另一个层擦除一个层这花了太多时间!我首先使用了这个预建功能:

inputLayer.Erase(maskLayer, ResultLayer)

这适用于具有大量对象的图层,但是当使用具有200 000个特征的图层运行它时,它将永远保留!

所以我设法编写了这段代码:

       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,

0 个答案:

没有答案