Need to create a model or script for a boundary overlap problem

03-24-2021 02:53 PM
New Contributor II

I have 8 polygon feature classes. Lets call them Polygon A and the rest. 

What I would like to do is find all the features in Polygon A that have any portion of its boundary not overlapping with one of the other layers. In essence, the rule that I am trying to apply is that, every edge in the Polygon A layer has to follow one of the other polygon boundaries. 

Any ideas on how I might go about this?

0 Kudos
2 Replies
MVP Esteemed Contributor

Select Layer By Location (Data Management)—ArcGIS Pro | Documentation

with Boundary Touches perhaps

Select By Location graphic examples—ArcGIS Pro | Documentation

But I suppose applying that rule to "the rest" is going to work for some and not for others.


What if it works for one, but overlaps another or a couple

What if it works for two but not the rest


The rule set will probably dictate whether it is possible in a reasonable length of time, or whether some compromises have to be made.

... sort of retired...
0 Kudos
Occasional Contributor III

Are you trying to find if they match exactly to one of the other layers (ie vertices are the same) or are they close enough within a tolerance? Would be good to see a screenshot of the data as well.

I would start with the following:

Polygon To Line tool - Convert Polygon A to lines. Use the IDENTIFY_NEIGHBORS option so that you don't get multiple overlapping lines.

Split Line At Vertices tool - convert the lines from above into individual segments.

Add a field to hold the results from the next section (Text length 2 for example)

For each polygon boundary layer:

  • Convert it to lines with the Polygon To Line tool.
  • Buffer the lines by your tolerance distance.
  • Use the Select By Location tool to select all the individual Polygon A segments that are COMPLETELY_WITHIN the buffer.
  • Use the Calculate Field tool to set the result field for all the selected records to 'OK'

When you have finished, all the individual segments that were not within the buffers (and therefore did not overlap with any other polygon boundaries) should have NULL in the result field - Select by <field> IS NULL.

0 Kudos