I have an input vector polygon layer which has different areas. Now I want to join a different vector polygon layer which contains over 1 million 100x100 meter squares with information about the population.

As a result I want to see which part of the squares belongs to which area of the other polygon and also have the sum of the population of each area.

Everything is working correctly, except the sum-function: The layer with the squares has a combined population of little more than 80 million. But after the join the result has either 76 million or 84 million depending which kind of geometric predicate im using. But never the correct 80 million.

Both have the same CRS and I'm using QGIS 3.4.3 Madeira.


The most likely problem is that you are either counting squares that overlap two (or more) polygons twice (or more) so that you end up with an overcount. Or you are ignoring squares that don't fall wholey in the polygon so that you have an undercount.

There is no easy solution to this, you can either try to partition the squares into polygons depending on the amount of overlap or allocate the squares population to the polygon with the largest overlap. There is no automatic way to achieve either of these outcomes though.

  • Thanks already. I tried to identify overlapping polygons with this: gis.stackexchange.com/questions/119625/… But the result was, there is no overlapping. – Frank Feb 15 at 13:03
  • but a square can fall in to 2 polygons with no overlap – Ian Turton Feb 15 at 13:38
  • Ah. No they are all squares made out of a point feature with the buffer function. Thanks in advance – Frank Feb 15 at 14:57

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.