8

After generalizing or simplifying polygons, you often get legitimate holes in polygons, which are separate parts and can be filled. But what is the correct term for this triangular shape? It is an artifact along the polygon edge. I can run a Clean Gaps function and then edit attributes and merge/dissolve. But I would prefer to eliminate these as a distinct step in an ArcGIS model/script.

enter image description here

  • 2
    A self intersecting polygon. Topology will find these or you can fix them with Repair Geometry, which will turn them into holes. Do you want them totally got rid of? – Michael Stimson Mar 2 '15 at 23:16
  • Cool. Thanks for the quick reply. I want to remove them completely, yes, so I'll use Repair + Fill Holes and see if that works. I'm working with someone who understand linking tools, but is baffled by topology. Much appreciated, Stephen! – Steph Mar 2 '15 at 23:38
  • If you've got an advanced license using the 'feature to polygon' tool will create little polygons with no attributes in the gaps which you can go and find and fix accordingly by dissolve. If you're not too concerned about the integrity of the data then integrate tool with a tolerance larger than the triangle will destroy them but may also ruin other parts of the data - make sure you have a backup. – Michael Stimson Mar 2 '15 at 23:46
  • @MichaelMiles-Stimson Answer. Answer! :P Also, doesn't Repair Geometry just fill them in rather than turn them into holes? The help file states that it 'dissolves' them, but then it's also assuming a self overlap rather than a hole. I'm assuming there isn't a different term, so are you saying it creates an inner ring for the hole and then both rings have a vertex at the same point? – Chris W Mar 3 '15 at 0:04
  • 3
    See this recent post for details on inversions. They are valid; desirability requires context. – Vince Mar 3 '15 at 0:22
7

The name for this kink in a geometry is an "inversion". It is not a topology error per se (as explained in this answer), but it can be an indication of coordinate collapse (such as at the mouth of a harbor, etc.).

I can't think of any elegant way to identify inversions. One possible solution (that I haven't tried) would convert the polygon rings to polylines, then test if any of the lines are simple (non self-intersecting). You may need to break down and look for duplicate vertices in rings (which should work without needing to integerize the comparisons), but I'm not sure what you would do with this information, or a generic way to fill these pseudo-holes (remember, the geometry could start inside the inversion, so a loop might straddle the ends of the coordinate array).

Another issue may be whether filling inversions is "data repair" or "data corruption". I once encouraged a co-worker to assign population to the TIN facet containing the Staten Island Dump, only to have this caught by my bosses' boss, who wandered in by see the pretty plots, and wondered why his family's home was listed as unpopulated. Since then I've been much more careful with figure/ground relationships...

  • Depending if the boundary loops or kinks Simplify Polygon may help; Feature Vertices to points and then Collect Events will help find duplicates (just remember every polygon has a duplicate at the start/end). You raised a good point on Data Repair vs Corruption, an informed decision is required on whether to maintain or remove these anomalies - a well informed answer Vince. – Michael Stimson Mar 3 '15 at 3:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.