How to subtract (erase) polygons from polygon?

by David Giacomin   Last Updated February 24, 2016 06:09 AM

I have two polygon layers, one is green that represents all non-public right-of-way land. I have another polygon that is just a circle with a specified radius.

I would like my output to be a polygon layer that represents all the white space (the gaps) in the private land polygon layer that is also within the black circle.

enter image description here

How does one do this (In ArcGIS 10.2)?

Answers 3

It depends on your license. If you have an advanced license you should have a tool called Erase. Use this tool with both of your datasets and you will get the correct result.

If you do not have that tool, please let me know, and I will edit my answer to explain a workaround!

For those who do not have access to the Erase tool with their license, here is a workaround:

Step 1: Use Union with both of your files as the input

Step 2: Do Select by Location, selecting all the features from your original dataset (the green one in your screenshot) that are within the bigger dataset (the output from union, that is). Now, this will select all of your features in the union dataset that have been originally there, and it leaves out the parts that have been newly added through union.*

Step 3: Start an Edit Session and delete all of the selected features. This will leave you with the "white parts" that you were looking for.

*I said within but the terminology in the selection tool might differ slightly. I cannot check right now as my license has expired. So you might have to try some of the many keywords in the unnecessarily confusing tool! Should you do this in ArcPy it would definitely be "within" though!

February 05, 2015 16:47 PM

I'd say clip the parcels to the Circle, then:

In both ArcGIS and QGIS you can use the Symmetrical Difference tool.

The ArcGIS tool will require an Advanced/ArcInfo license.

The QGIS tool is free!

February 05, 2015 16:50 PM

Edit: originally misread problem. Basic license workaround (Advanced license alternative: Erase) below:

  1. Union both layers
  2. Edit, select (those where FID_circleLayer <> -1 and FID_parcelLayer = -1, using selection type "are within (Clementini) the source layer feature") and delete.

enter image description here enter image description here

February 05, 2015 16:51 PM

Related Questions

Erase tool doesn't erase all inputs

Updated January 12, 2018 18:22 PM

PAEK smoothing tolerance

Updated January 07, 2019 17:22 PM