[GIS] How to intersect 2 polygon layers with a given tolerance for features in different layers only

arcgis-desktoparcmapgeoprocessing

I can intersect 2 layers with polygons using ArcMap. However I can specify only overall tolerance no matter what layer a feature is in (even same layer). So I either end up with lots of slivers if I don't tolerate snapping, or I end up collapsing small features from the first layer that I'd want to keep.

The problem is that I would like for features let's say less than 10 m apart in the first layer to stay as they are if they happen to be contained within some polygon of the second layer. However I'd like for edges of polygons of the 2nd layer to snap to those in the first layer if they are within 10 m.

I'm open to a solution using any tool be it ArcMap or some python library/script.

Here is the rough idea of what I want.

enter image description here

Best Answer

First run Integrate on both layers with your desired cluster tolerance and ranks.

After this just run the union tool.

Important usage tip (from ESRI help): Integrate permanently changes the input features. Integrate does not create new data, but, instead, modifies the original input features.

Related Question