1

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.

PolyGeo
  • 65,136
  • 29
  • 109
  • 338
user52932
  • 315
  • 2
  • 5
  • 16
  • 2
    I think this may be a duplicate of http://gis.stackexchange.com/questions/11004/removing-small-spaces-slivers-between-polygons - if you think not, then can you edit your question to clarify why you think your question is different and no answer there applies. – PolyGeo Apr 27 '15 at 22:47
  • Okay let me check the comments there and I will update here shortly. Thanks for the link, I don't know why I did not find it earlier. – user52932 Apr 27 '15 at 22:53
  • As well as Eliminate you can also use Integrate (or a combination of both).. be sure to keep a backup of your data as integrate modifies the existing data and can, if you use too high a tolerance value, destroy data. Use as small a value for cluster tolerance as you can get your results with; you might want to have a few tries at it before you're happy that all the linework is good. – Michael Stimson Apr 27 '15 at 23:18
  • @MichaelMiles-Stimson, I am trying to use eliminate but it just gives an error. So in the Results panel, it says Output Feature Class: and has a cross next to the task. I think the issue is that there are spaces inside a polygon as opposed to spaces b/w polygons. So I have holes within a polygon and I just want to fill these up so that they are part of the polygon. – user52932 Apr 27 '15 at 23:32
  • You need to specify an output feature class for eliminate, see the help on the link Eliminate_management (in_features, out_feature_class, however Integrate http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000002s000000 does not Integrate_management (in_features, cluster_tolerance) modifies your existing data. – Michael Stimson Apr 27 '15 at 23:41
  • @MichaelMiles-Stimson, Yeah I am specifying the output class. I think I located the error. It states "Input must have a selection". I have just been selecting the input shapefile in the eliminate tool. What does it mean by this error? – user52932 Apr 27 '15 at 23:44
  • Open in ArcMap and Select All (right click on layer, go to selection in context and select all) then run the tool from ArcMap. If you need to fill gaps inside then use Feature to Polygon to create polygons in the gaps http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000003n000000 the fun part is dissolving the unattributed polygons into the surrounding polygon. – Michael Stimson Apr 27 '15 at 23:45
  • @MichaelMiles-Stimson Thanks. So the tool ran but it is not removing the holes within the district polygons. In fact, what it ended up doing was that it merged two different district polygons into one. I just want the holes inside each polygon to disappear. – user52932 Apr 27 '15 at 23:50
  • You will need to select only the polygons needing merging (it's in the help file), those that are unattributed and one attributed polygon. This tool should do nothing to disjoint unattributed polygons.. use Feature to Polygon first to create unattributed polygons but you will need to iterate this once for each district polygon.. sounds like some python is in order. How many districts are there? Is it worth scripting? – Michael Stimson Apr 27 '15 at 23:54
  • @MichaelMiles-Stimson There are 500 districts. Do you think the Eliminate Polygon Part tool might help? Or does it do something else entirely? My situtation is similar to what is given in the link, except that my polygons do not contain parts in the middle. Just empty holes. Link: http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000005q000000 – user52932 Apr 27 '15 at 23:59
  • Give it a try and see what happens, I've not used that tool before. I haven't used Eliminate since ArcGis 8.3 and either my memory isn't so good or it did something different on coverages. Normally I would do the Feature to Polygon to fill the holes with something and then dissolve in ArcMap but I would only have 1 (max 6) unique values to dissolve - not 500. For that I wrote a C# program! – Michael Stimson Apr 28 '15 at 00:09
  • @MichaelMiles-Stimson It also seems to be having the same issue as Eliminate. Polygons which originally are different (for example with identify tool I can see they are different), end up merging with some neighboring polygon and lose their identity. – user52932 Apr 28 '15 at 00:09

3 Answers3

3

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.

Michael Stimson
  • 25,566
  • 2
  • 35
  • 74
  • Hmm. So I am working through this but it my RIGHT_FID does not have any -1 values. It ranges from 0-499. What does that mean? Also a selection of Left_Fid=-1, is selecting the boundary of the entire country and some interior districts. Is this a problem? – user52932 Apr 28 '15 at 00:25
  • That's right, even the outside is LEFT_FID 'cos they're clockwise, it's been a while, in ArcInfo they were 0 for the world polygon. I'll change that. Just make sure that the far exterior boundary isn't deleted or those polygons will disappear. You could intersect with a large box so that the box gets deleted and not the boundaries. – Michael Stimson Apr 28 '15 at 00:28
  • What do you mean by the far exterior boundary? Like the district boundaries which form the boundary of the country? – user52932 Apr 28 '15 at 00:33
  • The outside of all the polygons, anything that is supposed to be there but doesn't touch another polygon on the other side.. the ephemera of the data. Of course you can dissolve everything to get the bounding line then copy it back in. – Michael Stimson Apr 28 '15 at 00:37
0

Try using the "clip" tool.

Simply put the problem polygons in the input features and clip it by itself.

Be sure xy tolerance is zero.

PolyGeo
  • 65,136
  • 29
  • 109
  • 338
naylin
  • 1
0

I had an issue where I reclassed a raster to all ones and did a convert to polygon and wound up with tons on internal no data pixels as holes. I basically just wanted the overall boundary so I did a Union with itself and that made all the holes into polygons. Then I just dissolved it and voila, just what I wanted.

kpierce8
  • 151
  • 6