Eliminate Polygon Part... What have they done to you

10-03-2013 06:51 AM
by Anonymous User
Not applicable
Original User: DJB

I am using the Eliminate Polygon Part tool from the Data Management Toolbox (under generalization) to remove polygons of under a given number of acres from my input feature. It appears as though the output feature gives me what I want but when looked at closer, the polygons that should have been removed or deleted are still there.I thought that maybe I mis-read ESRI's help on this tool.

Word for word from ESRI...


Creates a new output feature class containing the features from the input polygons with some parts or holes of a specified size deleted.


I'm having a really hard time trying to wrap my head around why anyone would create a tool that actually introduces or creates topology errors.  I've tried using this tool directly from ArcToolbox, I have it running in a Python script, I've even ran it using the Python window in ArcMap.  All give me the exact same results.


Related Thread...http://forums.arcgis.com/threads/79788-Eliminate-Polygon-Part-tool-does-not-delete-the-polygons-I-wa...

If this is how the tool actually works then could someone assist me in figuring out how to locate overlapping polygons.  I know how to fix the problem manually but I am running this tool in a script and would have to solve this using Python.

I'd really appreciate it if someone could let me know if I misunderstood the help for this tool and that this is how the tool is supposed to work or is this in fact a bug.  I've also included some test data that I used in case you'd like to try it for yourself.

Thank you for your help.
0 Kudos
3 Replies
by Anonymous User
Not applicable
Original User: dmhoneycutt

I ran Eliminate Polygon Part on New_Shapefile.shp and it worked just fine, giving me the results you expected.

Eliminate.shp is a corrupt shapefile -- I was unable to open it, add it to map, etc.
0 Kudos
Regular Contributor
The issue is that Eliminate Polygon Part is looking for "donuts".  You have both donuts and polygons of the donuts.  Sorry, that doesn't make a lot of sense.  Perhaps the best way to think of it is that you have polygons that are completely surrounded by a single polygon and you want to delete these, leaving holes that you can then eliminate with Eliminate Polygon Part.  (I was hoping that Spatial Join could be used, but my attempts didn't pan out)

I have a methodology and would be glad to post data and a model. What version are you on? Hopefully 10.2.

Here's a brief high-level description of the method.  I first copied your New_Shapefile.shp to a file geodatabase and renamed it "orig_data". 

  1. Run Eliminate Polygon Part on orig_data using 25 acres. Output = orig_data_eliminate

  2. Run Identity with orig_data and orig_data_eliminate as the two inputs. Output = overlay

  3. Run Summary Statistics on overlay.  Parameters: Statistics Field = FID_orig_data with statistics type of COUNT.  Case Field = FID_orig_data.  Output table = overlay_statistics

  4. Run Join FieldInput table = overlay, Input Join Field = FID_orig_data, Join Table = overlay_statistics, Output Join Field = FID_orig_data, Join Fields = FREQUENCY

  5. Run Select on overlay feature class. Output = overlay_select.  Expression = "FREQUENCY = 1"

  6. Finally, run Eliminate Polygon Part again with overlay_select as input and 25 acres.

This is the unoptimized basic method-improvements could be made.  The key, however, is to run Eliminate Polygon Part then overlay (using Intersect) the original feature class with the output of Eliminate Polygon Part to yield a feature class with duplicate polygons (FREQUENCY = 2) that can then be deleted/selected/etc.
0 Kudos
by Anonymous User
Not applicable
Original User: DJB

Hey Dale,

Thank you for your response.  I didn't really do a good job of explaining what it is I'm trying to do and my example data was just meant to illustrate what was happening with the Eliminate Polygon Part tool.

What I've been working on is translating an AML script to Python.  The script is based on the SOTER Terrain Analysis (http://eusoils.jrc.ec.europa.eu/esdb_archive/eusoils_docs/other/soter/SOTER_endre.pdf).

Essentially what the script does is take four topographic characteristics and combines them into a single layer.  We are using this to tool to align our soil polygons more accurately.  The problem is we need to aggregate polygons to match the original soils survey map scale.  The script assign a likeness value to each polyline and merges polygons based on this value.  Where the Eliminate Polygon Part comes in is right at the beginning.  I want to dissolve all the polygons that are below the area threshold and are completely contained by a larger polygon.  Essentially removing island polygons.  These polygons will eventually be merged into the larger polygons that surrounds them anyways so I thought why not do it right off the bat and minimize the number of polys that I'll have to run the script on.

I've attached my script if your interested in looking at it.  I'm new to Python so apologize if my script seems a bit clunky.

0 Kudos