This question already has an answer here:
I have two multipolygons layers:
Layer A: Census blocks with data from 2010 (last census).
Layer B: A study about poor neighborhoods with data from 2016 (POOR NH).
Both layers have a "population" attribute.
Aim: to update the CENSUS data with the POOR NH information (more updated and accurate).
I want to merge and replace the data from layer B to A, but assigning the "population" value proportionally (and only in cases where census blocks contains "poor places").
As you will see, being two different data matrices (pointing to different objectives), the sizes of the polygons do not match (the POOR NH are generally larger). Therefore, what I want is to assign the values from Layer B to Layer A, but respecting the proportions in which they overlap, simultaneously. That is, if a 30% (example: 1000) of Layer B is within 50% (2000) of Layer A, that '300' replaces the '1000' from the other layer. The new "population" value of layer A, instead of being '2000', must be '1300'. Of course, assuming a homogeneous distribution of the population throughout the census blocks.
I've tried with intersection, split with lines (converting the polygon Census layer to polylines) and spatial join, but all generates multiples duplicated rows, because each combination creates a new polygon with all the features from the previous ones.
I assume that what I want to achieve requires several steps, but I'm stuck.
I've already checked: