I have a land map with three labels (sand, vegetation and water).

I wish to eliminate overlaps and gaps between these labels. There are tens of thousands of gaps and overlaps, so I need to automate this process. I know how to do this for overlaps using ArcGIS tools but not for gaps.

For overlaps, I detect the intersect between the 3 layers (sand, vegetation and water) using the intersect tool and then re-label the intersect using a simple calculation (the intersect is re-labeled to whichever layer has the highest value for that space).

However, for gaps, I'm struggling to figure out how to eliminate the slivers via an automated approach. I've tried to create a topology to identify gaps and then use the eliminate tool to remove these slivers. Although the topology identifies gaps, I can't run the eliminate tool to remove the gaps as it requires "a selection". I don't know how to select gaps as this data is non-existent.

How can I eliminate the gaps detected by my topology? I can't do this manually because it's tens of thousands of gaps. I also can't seem to do this using the eliminate tool as I can't "select" the gaps as there is literally no vector data due to it being a gap.

Data details:

A feature class with 3 polygon types (sand, vegetation and water).

  • 1
    Well, there is the eliminate tool. Tools > Data Management toolbox > Generalization toolset > Eliminate. This dates all the way back to Workstation Arc/Info and has always been a workhorse in cleaning polygon topology. pro.arcgis.com/en/pro-app/tool-reference/data-management/… – Jeffrey Evans Jul 8 '20 at 16:02
  • Yes, the issue is that the eliminate tool requires the gaps to be selected as detailed above. I've now converted those gaps to slivers using the union tool however eliminate tool can create gaps when eliminating slivers I've found. – EdyK Jul 8 '20 at 16:04
  • 1
    Results of eliminate are going to depend on the two arguments selection (length or area) and the SQL ex_where_clause. This provides considerable flexibility. There is also the possibility that certain data would require a two pass approach specifying area then length in the selection criteria. – Jeffrey Evans Jul 8 '20 at 16:09
  • One classic approach is to use a positive and then a negative buffer. – Aaron Aug 11 '20 at 20:18

In ArcMap, there is an option called Auto-Complete Polygon tool or the Auto-Complete Freehand tool on the Create Features window. Draw the new polygon. The new shape must cross the features in at least two places or the tool will fail. You can snap to an edge or overshoot the existing feature. With the Auto-Complete Freehand tool, click once where you want to start the line. You do not need to hold down the mouse button as you are creating the new polygon's shape. The new polygon's boundary follows the movements of your pointer. Hold down the SPACEBAR to snap to an existing polygon. Here, I have used the Auto-Complete Freehand tool to create new polygons in the existing gaps. Try this tool. See if it works with your data. enter image description here

  • I can see two potential reason why this would be not suitable.1) The gaps are extremely small, sparsely spaced and numerous, which means manually drawing over tens of thousands of gaps will not be feasible. 2) I would like each gap to be closed by either selecting the label of surrounding polygons (i.e, if a gap is surrounded by polygons with a sand label, then assign gap to the sand polygon) or by extending each polygon to fill in the gaps. I believe this approach will not be suitable for a featureclass composed of 3 different labels. – EdyK Jul 8 '20 at 12:17

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.