[GIS] Removing Slivers/Holes From Polygons using ArcGIS for Desktop

arcgis-desktopslivers

I have a village level shapefile. Using Dissolve_management, I collapse the villages to district level. I also use Multi_Part option to prevent multiple entries for same polygon and so the resulting file has one row for each district.

The issue is that the village file has very tiny gaps between villages. When I use Dissolve_management, these gaps/slivers/holes are appearing in the resulting District Polygons. Since there are hundreds of these districts and within each district there are multiple slivers, I want to automate the process of sliver removal from within the polygons.

Is there a way to remove these empty spaces/slivers from the larger district polygons?

I want these slivers to be part of the polygons they lie in.

Best Answer

This method I have used before to great success to remove all voids (holes) in polygons - requires an Advanced (ArcInfo) license:

Get your attributed points using Feature to Point with the INSIDE option (important) voids will not create a point (or at least should not) check for unattributed points just to be sure.

Export your bounding lines using Polygon to Line, be sure to specify IDENTIFY_NEIGHBORS in the tool.

ArcGis stores geometries with exterior rings clockwise and interior rings counter-clockwise we can use this to approximate which are voids, as lines travelling counter-clockwise around a void will have LEFT_FID values of -1.. select these by attributes and delete (in ArcMap) be sure to unselect the boundaries of exterior rings on the far outside, these also should have LEFT_FID values of -1, if the polygons are geometrically correct - but have a quick check just to make sure.

Rebuild your polygons using Feature to Polygon with the saved centroids from the first step to restore your attributes. If there are any segments missing between the lines the polygons will 'bleed' into an adjacent polygon so it's best to check for gaps using Feature Vertices to Point with the DANGLE option to look for free end points.

This method will have varying success if there are gaps between polygons.