QGIS Polygon – Project Attribute from One Polygon Layer to Another

polygonqgis

I have 2 polygon layers which can be found here.
The two layers are overlapping. The first contains a map of the German counties in 1928 and the second the counties how they are in 2014.

The 2014 layer contains information about the population (called Bev in the dataset). Is it possible to project the population attribute from the one polygon layer to the other?

To be a bit more specific:

Consider the situation where I have 2 counties in the layer with the population attribute but in the same area on the other layer there is only 1 county. Can QGIS aggregate the population of the two counties and write this information into the other layer?

If this works, is there also a way to do it when the layer with the information has in a specific area only 1 county but there are 2 counties in the other layer? In this case I would like to split the population proportional to the size of the county.

Best Answer

Disclaimer:

  1. I believe in this particular case it would be way more accurate to use population data from 2014 as a point layer with as much detail as possible (centroid of suburbs, towns, villages...)

  2. If BEV_ is really population then there are some really strange values like GEN = Uelzen, BEV_ = 92553 where this polygon is compared to Google satelite image area of mud size of maximum few football fields.

If you really want to get number values based on ratio of polygon area overlap between layers (L1 = counties_2014, L2 = german empire 1928):

  1. Before any calculations I suggest to use projected coordinate systems in meter units, respectively square meter units for area. In this case I used EPSG:3857
  2. In L1 use Field Calculator, create column "Area" and fill with $area
  3. Intersect layers - Vector / Geoprocessing Tools / Intersect... - Input=L1, Intersect=L2
  4. In the Intersected layer use Field Calculator, create column for population adjusted by new area "PopArea", and fill with "Population" * $area / "Area"
  5. Dissolve the Intersected layer with Processing Toolbox - find Dissolve Polygons
    • choose some unique polygon values column like "Name" from L2
    • check Compute min/max/sum... and compute it on "PopArea"
    • the final layer will have column sum_diss which is what you are after (in this particular case adjusted population for 1928 counties from 2014)

If you done all well you should get about 77 million people distributed based on L2 counties area out of 81 million in L1.

enter image description here

Related Question