# Grouping all polygons that are highly overlapped with each other in one shapefile using ArcMap

I have one shapefile layer containing thousands of polygons, each represents either a historic or current reclamation project (*Note: Overlapped does not equal to repetitive). I now intend to identify and group all polygons that are highly overlapped with one another (for instance, if two or three polygons are spatially overlapped and their areas are quite similar or the same), then assign a common "family" value in a new field/ column indicating which highly overlapped polygons belong to which groups.

How may I implement this operation in ArcMap?

Below is an example: there is one selected polygon while two other polygons that are almost the same are beneath the selected one. The selected one is the land's most recent project, the other two's are historic projects (so the land has been used for total 3 times) . And I want to assign these three polygons a common value indicating such relationship.

• In the case of ArcGIS, you could use Python to compare the geometries (loop through all features, and for each feature's geometry, loop through all the other features, to compare all geometries against each other). You can use the geometry class' intersect() method to get a geometry representing the intersection of the two geometries being compared, and then compare the original geometry's area property with the area property of the intersection geometry. See: desktop.arcgis.com/en/arcmap/latest/analyze/arcpy-classes/… Commented Apr 14, 2023 at 4:03
• 90% applies for one or both? Commented Apr 14, 2023 at 4:04
• if two polygons are mostly overlapped with each other, then their intersected area is about 90% for both Commented Apr 14, 2023 at 4:51
• If small polygon sits inside much bigger, fraction for 1st is 100% and can be way smaller for 2nd. Commented Apr 14, 2023 at 5:27
• Then why I need to set 90% for both to make sure that they are overlapped and their shapes/ geographic ranges are similar. Commented Apr 14, 2023 at 6:10

I think your definition is flawed. According to it these 2 polygons:

are not highly overlapped, because for large one overlap percentage is too small.

I suggest ratio of intersect area to area of smallest in a pair. To implement this you might run polygon neighbours tool and populate new field using this expression:

aDict = {fid:shp for fid,shp in arcpy.da.SearchCursor("NODES",("OID@","Shape@"))}