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 1

  • 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 enter image description here

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) enter image description here


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.