0

I'm wondering if there is somewhere to get an output shapefile based on the difference between two layers. This would basically be the opposite of the clipping tool. for example. I have a roads polyline layer and a conservation easement polygon layer. I want to generate a new layer for roads that only includes those roads that are outside the easement polygon.

Is there some way to do this in ArcGIS Desktop?

2

1 Answer 1

3

Yes there is an easy(ish) way. You did not include any software-specific knowledge, but I am arbitrarily going to infer ESRI ArcGIS as the toolset of choice (today).

Use a Spatial Overlay to UNION the roads with the easements. This will create a new roads featureclass that includes a new column containing the ObjectID of the easement which it falls in.

Once that is complete, edit that featureclass by deleting all roads where the new column value is not null -- ie all the roads that are within any easement.

What's left? the roads not contained within any easement.

If a road is overlapped by an easement -- it is partially inside but extends for a portion on either side, then you have a slightly different problem with at least 2 easy(ish) solutions:

A) Split (Intersect) all the roads where they cross into any easement, then only remove portions of the roads where they are internal to any easement, or B) Union the roads with the easements (as before) but choose 'overlap' rather than 'contains'; then roads which have even a portion of their geometry touching even a portion of any easement will get a new easement ObjectID value in that new column. -- then delete those in the editing step.

NOTE that many software packages implement this exact process as some tool like 'erase' as commented above. Also Note, of course, that this could be automated by Python, Modelbuilder, or other APIs if you need to do this over and over again, or need to do it in a Web context.

1
  • Yes, sorry, I am using ArcGIS by ESRI. Thank you for your response!
    – Trose3
    Commented Apr 26, 2017 at 16:56

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.