logo_web1.jpg (5049 bytes)
HOME ET Solution Center index HOME

Cleaning topology problems in a polygon dataset - the coverage approach

As discussed in the Topology article, the polygon features in a coverage are represented as set of Arcs recorded explicitly in the Polygon Arc List. If some editing is needed it is performed on the Arcs and when the dataset is finalized the polygon topology is rebuilt. In this fashion there is no duplication of geometries - the common boundary between two polygons is represented by a single Arc - no overlaps or gaps exist between the polygons.

In this article we are proposing a method to clean polygon datasets stored in Shapefiles or Geodatabases by emulating the Coverage approach. Instead of trying to find gaps and overlaps between the polygons and clean them we are going to use a different route:

  • Convert the polygons to polylines.

  • Clean the polylines.

  • Build back the polygons.

  • Eliminate the "gap" and "overlap" polygons.

Original dataset

Source dataset sent from a customer. Visually looks good, but has several topology problems.
Polygon boundaries as polylines

STEP1: Polygon To Polyline function will create polyline dataset from the polygon boundaries. At this stage each polygon is represented by a single polyline and the polylines overlap on the boundaries between the adjacent polygons.
Cleaned polylines


STEP 2: Clean Polylines function will do the following:
  • Create intersections in all locations where two polylines intersect.
  • Resolve self intersecting polylines
  • Clean duplicate polylines
  • Move the vertices that are closer to each other than the fuzzy tolerance to the same location

If we Analyze Nodes of the resulting dataset we'll see only Regular and Pseudo nodes. Dangles will not be present because the source of the polylines are closed polygons.

In this case however some of the regular nodes will indicate topology problems (gaps or overlaps) in the original polygon data. If we have a regular node on the boundary between two polygons, the reason might be only a gap or overlap present.

Such problems can be easily fixed on the polylines dataset (much easier than if we are dealing with polygons)

New Polygons

STEP 3: Build Polygons function will create polygons back from the cleaned polylines.

At this stage there will be no gaps and overlaps in the data. All gaps and overlaps will be represented by new polygons and we have to clean them

The new polygons are still lacking the attributes of the original polygons 

Label points of the original polygons

STEP 4: Polygon To Point with the "Label" option on the original dataset will create a point dataset in which
  • Each polygon will be represented by a point that is inside the polygon
  • Each point will carry all the attributes of the corresponding original polygon

Using the label points we can

  • Transfer the original attributes to the newly built polygons.
  • Identify all new sliver polygons (former gaps and overlaps in the original data).
STEP 4: Use Spatial Join from the toolbox implementation of ET GeoWizards or the standard ArcMap tool to join the points identifying overlaps to the newly created polygons. To make sure that we will be able to easily identify the slivers, a couple of tasks are needed
  • Create in the label point dataset new field (named for example "Original")
  • Populate the field with the same value for all the points (for example "Yes")
  • Use Spatial Join to join the label points to the new polygon dataset created in STEP 3 above. All original polygons will have [Original] = "Yes"  and the new polygons (former gaps and overlaps) will not have value in the "Original" field

STEP 5: Eliminate function will join the sliver polygons to the adjacent polygons depending on the user selected method.

As a result we will have a topologically clean polygon dataset

Sample Model of the entire process

See ET GeoWizards User Guide for more information

For any comments and enquiries contact: webmaster@ian-ko.com
Esri and all Esri products mentioned are trademarks of Environmental Systems Research Institute, Inc.
Copyright: Ianko Tchoukanski