[GIS] Calculating multiple polygon areas coverage within multiple polygons in QGIS

qgis

I have shapefiles for school attendance zones (SAZs) and Census Tracts (CTs), where the red lines below are CTs and the lighter lines are SAZs. I would like to calculate the proportion (%) of each CT covered by each SAZ. For example, if one CT was covered by two SAZs (SAZ1 and SAZ2), I want to be able to estimate that 28% of the CT is covered by SAZ1 and 72% of it is covered by SAZ2.

I have not tried anything yet, since I am fairly new at this and cannot think of a solution. I think I would start out by calculating the areas of each polygon in sq. miles, ft, meters, etc., then do a join of some sort (union? intersect?), but I am stuck.

enter image description here

Best Answer

You are right.

In a simple example, if you have 3 different polygons:

enter image description here

You can make a union or an intersect, in this case, a union:

enter image description here

After this, calculate area with Field calculator. The output unit, in this case, is in meters, because I'm working with UTM projection:

enter image description here

You can make dynamic tables with GroupStats plugin:

enter image description here

Or, you can save shapefile as .csv file or copy/paste observations to a spreadsheet and create a pivot table to determine percent of one area over other:

enter image description here

If "layer_1" is your objective layer, you can save pivot table as .csv file, open it in QGis and join it to the layer in Properties window / Joins.

Related Question