[GIS] Speeding up the vector clip in QGIS

clipperformanceqgisvector

I'm trying to clip a large polygon shapefile (nearly 440,000 features, 0.5 GB) to a shapefile containing a single polygon. Both shapefiles use the same CRS (EPSG:27700).

With QGIS, using Vector > Geoprocessing Tools > Clip, I left it running for nearly 24 hours and it was still at only 7% complete.

I tried the same clip using ArcMap and it finished in 4 minutes.

I tried it again in QGIS, and also tried GDAL/OGR > Geoprocessing > Clip vectors to polygons, but it's been running for an hour and is clearly going to take an eternity.

I'm new to QGIS and am wondering if this typical of its performance when clipping large vector datasets? Or is there a trick to get it perform somewhere close to ArcMap's speed?

Best Answer

You could:

  • Simplify the geometries of your large polygon shapefile:

    Vector > Geometry Tools > Simplify Geometries...
    
  • Select only those features from the large polygon shapefile which intersects the single polygon:

    Processing Toolbox > QGIS geoalgorithms > Vector selection tools > Select by location
    

    Then use these selected features for clipping by enabling the Use only selected features in the Clip tool.

Related Question