I'm working on a favourability mapping based on geologic inputs. One of those inputs is composed of fault zones which in my case are represented as one unique polygon layer with one attribute that represents the favorability of a certain fault to be open or not defined in my case by 5 "scores.

The problem I have is that the different polygons composing the layer overlap, meaning that I have two or more fault polygons with different favorability in some areas. You can see an example here:

enter image description here

Therefore, what I would achieve is to produce a new layer where the overlaps disappear and where the priority is given to the highest favorability.

I'm doing that by exporting each favorability class to a new layer and then sequentially use the "difference" tool to eventually produce what I need, but it is a tedious process and I'm sure that QGIS has some tools that could help but for the moment I did find nothing that really works ("SAGA Vector polygon tools", "v.clean", "Eliminate sliver polygons", "Check Geometries" do not provide results that can even partially help me).


1 Answer 1


I think you could have a look at the SAGA "Polygon Self-Intersection" treatment in the Processing Toolbox.

This treatment is handling all self-intersection in a layer and generates new polygons for every overlapping situation.

In the final result, you will have a field containing the concatenated ids of every polygon involved in a 'stack'.

Using a join you should be able to retrieve the right favorability class value that applies in any case (fitting your rules ... )

  • Perhaps this thread gis.stackexchange.com/questions/210959/… will also be relevant.
    – Taras
    May 16, 2021 at 11:10
  • 1
    @LuGuglie : Does this answer your question ? Thanks for follow-up
    – Snaileater
    May 17, 2021 at 5:43
  • Thank you! Snaileater. So I tried the SAGA "Polygon Self-Intersection" . It actually creates a new polygon layer where the ovelaps are created as individual polygons with concatenated id. Now I'm stuck in the Join process. I join what with what? I looked at the method proposed by Taras but It doesn't really fit as I don't want the overlaps to be the sum of the values but only get the highest value among the overlaps. I had a look at BERA and I think this is the best but I'm not familiar at all with any coding and I don't understand how to put inputs into that code. But I'll figure out
    – LuGuglie
    May 19, 2021 at 14:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.