I have two different layers (Layer 1 and Layer 2) both made up of many thousands of polygons. Many of the polygons in Layer 1 overlap to differing degrees with Polygons in Layer 2. I need to calculate how much (percentage) each polygon in Layer 1 overlaps with the polygons in Layer 2.
1 Answer
- Add a new field to both layers to hold the original areas and call it Area
- Calculate the areas for all the polygons in each layer and put into the Area field
- Execute a union of layer 1 and layer 2 - make Layer 1 target layer and include FIDs
- Add two new fields to the union result - AreaCalc and PC_Overlap
- Calculate the areas for the resulting union layer polygons and put into the AreaCalc field
- The union layer now contains the original areas of both layers and the areas of the overlapping polygons - we now need to query them properly to prepare for the percentage calculation
- The Union layer will have two fields - FID_Layer1 and FID_Layer2 - where there is overlap, FID_layer1 <> -1 AND FID_Layer2 <> -1 - this is what we want -
- Add two fields to the union layer called PC_Overlap1 and PC_Overlap2, or whatever, to hold your percentage calculation
- Calculate the percentage of overlap in Layer1 - PC_Overlap1 = AreaCalc / Area * 100%
- To calculate the percentage of overlap in Layer2 - PC_Overlap2 = AreaCalc / Area_1 * 100%
- This will return a layer with attributes for each layer that is overlapped and how much overlap occurs. If you need to know how much a particular polygon is overlapped(if overlapped by multiple polygons), you can dissolve the union layer on either FID_Layer1 or FID_Layer2 and set the PC_Overlap statistic to SUM.
Here is a sample of the attribute table from the union layer
And here is the layer dissolved on my MR layer (layer 2 in example) You can see that the polygon with FID_Layer2(FID_MR in the pic) of 3 has 2 overlaps and a total percentage of 54.7, which is the sum of the two records in the first pic with the FID of 3 (31.8 + 22.9)