2

I want to run the process "qgis:intersection" in a pyton-script and try it like this:

import processing a1 = QgsMapLayerRegistry.instance().mapLayersByName('Layer1')[0] a2 = QgsMapLayerRegistry.instance().mapLayersByName('Layer2')[0] processing.runandload("qgis:intersection", a1, a2, "memory:myCut") 

But there comes the "Problem executing algorithm" message: "GEOS geoprocessing error: One or more input features have invalid geometry."

If i do the same by the qgis-gui (Vector/Geoprocessing Tools/Intersect...) in QGIS 2.14.21 like this: enter image description here

then everything is ok and qgis do the intersection.

Doing the intersectin with QGIS 2.18.13 with the gui, I become also an error like above.

"Layer2" is a large layer with some hundredthousands polygons an if i use the "Topology Checker" i get about 600 invalid geometries.

Why does the intersection work only with the qgis-gui in 2.14.21 and not somewhere else?

3
  • 1
    I would assume the code used for most spatial analysis tools would have been improved between the two QGIS versions you mentioned. The earlier one probably didn't check for invalid geometries. In 2.18, there is the optional Ignore NULL geometries setting which you could use when you run your script and see if it works: processing.runandload("qgis:intersection", a1, a2, True, "memory:myCut") Commented Dec 18, 2017 at 10:02
  • In 2.18.13 I have already tried "processing.runandload("qgis:intersection", a1, a2, True, "memory:myCut")", but there is still the error. But why works the process with the gui in 2.14? Commented Dec 18, 2017 at 10:07
  • One way to get around this problem is using "saga:intersect" as it will not complain about the invalid geometries Commented Dec 18, 2017 at 11:18

1 Answer 1

0

@xlDias, "saga:intersect" solved the Problem!

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.