Identifying polygons that share a common boundary

8292
8
Jump to solution
05-23-2012 07:18 AM
JamesBuckland
New Contributor
Does anyone know if there is a way to identify or select polygons that touch one another? I have looked at the topolgy rules, and the rule for overlapping polygons doesn't work, the polygons just share a boundary rather than overlapping. Ideally I would like to be able to do this without having to convert to polygons to lines, so if there is a clever way this can be done, please let me know!

In the attached jpg you can see the two polygons that touch are selected, but this was done manually. Is there an automated method of doing this?
0 Kudos
1 Solution

Accepted Solutions
DanLee
by Esri Regular Contributor
Esri Regular Contributor
You can run the Near tool using the same features as the Input Features and Near Features. It adds a field NEAR_DIST, storing distances to the nearest features.

Run Select Layer By Attribute to select polygons with the NEAR_DIST = 0. Does that give you what you want?

View solution in original post

0 Kudos
8 Replies
PawanVuppala
Occasional Contributor
This might help with what you're looking for
http://forums.arcgis.com/threads/31092-NEIGHBOR-POLYGONS-SUM-LENGTH-OF-LINES-IN-A-POLYGON-AND-ITS-NE...

Does anyone know if there is a way to identify or select polygons that touch one another? I have looked at the topolgy rules, and the rule for overlapping polygons doesn't work, the polygons just share a boundary rather than overlapping. Ideally I would like to be able to do this without having to convert to polygons to lines, so if there is a clever way this can be done, please let me know!

In the attached jpg you can see the two polygons that touch are selected, but this was done manually. Is there an automated method of doing this?
0 Kudos
DanLee
by Esri Regular Contributor
Esri Regular Contributor
You can run the Near tool using the same features as the Input Features and Near Features. It adds a field NEAR_DIST, storing distances to the nearest features.

Run Select Layer By Attribute to select polygons with the NEAR_DIST = 0. Does that give you what you want?
0 Kudos
NobbirAhmed
Esri Regular Contributor
Selection by Location (from ArcMap's Selection menu) and Spatial Join has relationships to select touching features.

Select by Location: Target layer features share a line segment with source layer
Both Spatial Join and Select Layer by Location geoprocessing tools have: SHARE_A_LINE_SEGMENT_WITH

To get a clear idea of the relationships use this graphic examples:

Select By Location: graphic examples
0 Kudos
JamesBuckland
New Contributor
You can run the Near tool using the same features as the Input Features and Near Features. It adds a field NEAR_DIST, storing distances to the nearest features.

Run Select Layer By Attribute to select polygons with the NEAR_DIST = 0. Does that give you what you want?


Thanks Dan, this works a treat! I wasn't aware of the Near tool before, so that is really useful to know.

Best regards,
James
0 Kudos
DanLee
by Esri Regular Contributor
Esri Regular Contributor
James,

I am glad it worked for you. That's a good start of using Near tool.  :)
0 Kudos
TheresaPiovesan
New Contributor
Hi there... just searching the threads for something to help.... maybe I should start a new one, I am not sure... but I have a similar problem.
I have 2 polygon features (parcels) and I want to find where the graphics in one (myparcels) do not quite match up with the other (provparcel).   Sometimes the shift is very small and I am OK with that (I can put a buffer on the selection), but I would like the selection set to result in a list of polygons where the polygons do not exactly match up within about 1 meter we'll say.... (see attachment where the red represents myparcel and the thick grey is provparcel.  You can see where there is a shift between myparcel 13948 and provparcel 230).

The additional problem with this, is that sometimes it is more than just a shift in the two layers where the polygons don't match, sometimes there has been a subdivision of land and therefore I may have one polygon in myparcels layer, and the outer boundaries match with the provparcel, but the provparcel has an additional polygon "within" myparcel.  (see attachment where the red is myparcel layer and in this example, it has one big polygon (14784) where the provparcel (grey) has two within it (383 and 27). 
The opposite can occur as well where provparcel 329 is one larger parcel where the outer boundaries fall within myparcels 14524 and 14782.

It is all three of these examples that I want to see these parcels all in the resulting error table (or layer... doesn't matter)........

Eventually I want to write this in model builder, but I would be happy with just how to do it manually first!  Thanks all!
0 Kudos
NobbirAhmed
Esri Regular Contributor
Use Complete Contains and Contains relationships (for Select by Location or Spatial Join) - one after another.

If two polygons are exactly superimposed then neither completely contains the other.

So, your workflow would be:

First, use Select by Location with myparcels as target and provparcels as source. All provparcels that are on top or inside myparcels will be selected.

Next, use Select by Location again but this time change the relationship to Completely Contains. Parcels that have not been changed between the two sets won't be selected.

The difference between the two selection sets is the set of parcels that have been changed.

Now, follow the same steps but this time switching the source and target layer.

I have tested with a few polygon created instantly. If you want me to test with your data you can send me a subset (remove metadata if private data) containing 10-15 parcels from each layer.

Thanks.
0 Kudos
NobbirAhmed
Esri Regular Contributor
this works a treat! I wasn't aware of the Near tool before, so that is really useful to know.


James, True that Near returns a distance of zero if two polygon touches but Near also gives a distance of zero if one polygon is completely inside the other without touching. Just take the precaution.
0 Kudos