1

Let me try to explain my problem:

  1. I have a layer of polygons
  2. A layer of overlapping buffers
  3. I want to calculate the area per buffer of the containing polygons.

The problem is that the buffers are overlapping so the clip function does not understand that one polygon can belong to multiple buffers and at the same type each buffer should only have the area of the polygon within itself.

So far, I have tried to clip the polygons within the buffers, and then summarize within the areas, but somehow it does not get the correct answer.

I have also tried the weighted summarize within, but is not able to finish successfully (error writing output file)

I am thinking the only way is in notebook to write a for loop that takes buffer per buffer and summarizes the part of the polygon within. But I am not sure how to write the code for this.

Any pointers?

layers together, light green: polygons, dark green: buffers

Explanation of the problem

3
  • 2
    To do this I would use Union.
    – PolyGeo
    Commented Jun 24, 2020 at 17:47
  • What do you mean? the union will join the polygons right? I need to only consider the areas within the buffers, but the problem is that many polygons intersect with more than one buffer :( Commented Jun 24, 2020 at 18:50
  • 3
    The Union tool results in features representing all overlaps between all of its input feature classes. Try it on subsets of your feature classes.
    – PolyGeo
    Commented Jun 24, 2020 at 19:09

1 Answer 1

4

As @PolyGeo has commented, the tool you want to use is Union (in the Analysis > Proximity Toolbox). If you use it as follows you can determine the area of the overlapping polygons for each buffer. Here I have some polygons (in green) overlapped by the buffer polygons (in blue).

enter image description here

I run the Union tool, with the two polygon layers as input features. It doesn't matter what order you use here.

enter image description here

The new output Union layer includes the shapes of all polygons from my two inputs.

enter image description here

Since you only want the parts that are overlapping, we can remove all the features that aren't part of overlapping polygons. You can identify these from the two "FID" fields in the Union layer's attribute table. Anything with a -1 value in either column are features that weren't overlapping, and so can be deleted from your Union dataset.

enter image description here

I just selected by attributes and deleted

enter image description here

enter image description here

Now you can run a Dissolve to dissolve the polygons for each buffer. Use the Dissolve tool (under Data Management > Generalization), add your Union layer as input features and for Dissolve Field check the FID field that references your Buffers.

enter image description here

Now you can select the unioned & dissolved polygons under each buffer and get the total area from each feature.

enter image description here

enter image description here

You can leave out the dissolve steps if you prefer and just select the polygons based on the FID Buffer field, but if you are working with a large dataset it may be easier to manage if you do the extra step. This could all be put into Model Builder or into an arcpy tool to automate the process.

1
  • It works very well!! Thank you both!! Commented Jun 25, 2020 at 8:53

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.