Im currently trying to convert my scripts from ArcGIS to QGIS but one aspect that is extremely slow is trying to intersect a polygon with a line feature. I feel as though there must be a better way to accomplish trying to clip the voronoi polylines with the original polygon itself i.e. :
by
These are some of the bench tests that i've done with these two layers.
ArcGIS 10.1 Intersect
2min 24sec
Grass 7 v.Overlay
quit after ~1hour (~70% Selecting lines…) – Currently not supported in processing (Sextante)
Grass 7 v.split + v.Overlay
~2min + 45min
QGIS 1.9
quit after ~3hours
ogr2ogr -clipsrc
quit after > 1hour
SAGA GIS Intersect Line-Polygon
~15min — acceptable but still 7x slower than ArcGIS and produces wrong results? The images below show SAGA GIS Intersect(with dangles removed) and same area with ArcGIS Intersect – Clearly SAGA did not intersect the line and polygon correctly as there should be no connection of the lines. These errors are scattered throughout the new output!!! In addition Line-Polygon does not retain the polygon intersect attributes to the line unlike the other methods mentioned above…
I have placed the original dataset in a GitHub repository here so hopefully others can make their own benchmarks and thereby provide suggestions?
I notice that ArcGIS Desktop splits (cracking) the featureclass so I do not know if that is another possibility to improve intersection speed within one of the opensource alternatives mentioned above?
***Note that the reason I mention QGIS here is that I have made some scripts within the processing toolbox (formally known as Sextante) and i'd like to remain in that environment if at all possible.
System – Intel Core i7-2760QM CPU @2.40GHz and 8GB ram
Best Answer
What I did to speed up this process was to load SHP files in PostgreSQL and do clipping there. Not a perfect solution but faster for me since I quite powerful server behind it. And yes, this operations are slow.