I have population data matched with polygons and a set of points that I have drawn buffers around. Assuming that the population within each geographical area, i.e. the polygons, is evenly distributed, how do I calculate the population within each buffer? I need to do this in QGIS.

(1KM is the buffer and befolkning_i grkrets is the polygon.)

enter image description here

  • 5
    I would probably use the Intersect tool for the buffer and your polygon layer. Then with the resulting layer, create a new attribute and calculate the area for each of the polygon using the expression $area. Then you can calculate the population based on the area of the intersected polygon and your population distribution.
    – Joseph
    Feb 10, 2015 at 15:58
  • 2
    What you're trying to do is known as apportionment - you can get the area of overlap, but you need the portion of the population attribute that goes with that area assuming even distribution. ArcGIS has some tools/settings that can handle this internally, but I don't know if QGIS does. The manual method @Joseph suggests may be the only way to do it (and in either event I'd suggest turning that comment into an actual answer - I'd vote for it).
    – Chris W
    Feb 10, 2015 at 21:41
  • Excellent! it worked perfect for me.
    – lekan
    Apr 27, 2018 at 18:12

2 Answers 2

  1. Ensure that your polygons have an area attribute separate from the one that is/may be automatically updated by the software when the shape is edited.
  2. Intersect your buffer and polygon layer.
  3. In the resulting layer, open the attribute table. If there is a new/correct area field in the same units as the original area field from step 1 you can use that - otherwise you must create one. Add a new field to hold the percentage value and calculate it by dividing the new area by the old area.
  4. Add another field to hold the modified population value, then calculate it by multiplying the original population by the percentage field.
  5. The intersect should have incorporated a buffer ID attribute. You can use this to Dissolve the polygons on that attribute while summing the modified population values, or use something like the GroupStats plugin to sum the values sharing that common ID in a table. If desired that can then be joined back to the original buffers to create a population attribute.
  • +1, I wasn't completely sure if my suggestion was correct but you have provided detailed steps which makes a lot of sense!
    – Joseph
    Feb 13, 2015 at 10:09

You can use Area Weighted Average Plugin to do this job for you.

Your Answer

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

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