For the sake of simplicity, suppose I have only 2 points on one layer. Point A have population of 100, and point B have population of 150. I do find buffer of these 2 points and it is intersect. I want the intersect buffer (polygon C) to have number of people from A and B, according to the area of intersection. While polygon L and R, which is not intersect, have number of people minus amount of people they sent to the intersect buffer, like this

venn diagram of

My real data using polygon instead of point, and there is about 10 of them. How do I simulate this efficiently in QGIS?

Idea #1

Random filling each buffer with points according to the number of its population. Then create heatmap from these points (why can't we create heatmap from polygon, by the way?) This method might not good enough since I want result as vector data, to let me able to use it in calculations furthermore.

Idea #2

  1. Find area of each buffer polygon. Calculate population / area and store to column pop_ratio.
  2. Split buffer layer (now it is polygon L, R).
  3. Intersect polygon L and R to get polygon C. Calculate summation of pop_ratio then calculate sum_pop_ratio * area to retrieve population of polygon C.
  4. Difference polygon L/R with polygon C. Calculate pop_ratio * area to retrieve population for each polygon as well.

But my data might form ups to 20 intersect polygon, which obviously not so much enjoy to do this by hand.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.