HOME ET Solution Center index HOME
 Cleaning topology problems in a polygon dataset - the overlay approach

Three main tasks are involved in the cleaning process:

• Identify overlaps and convert them to polygons

• Identify gaps and convert them to polygons

• Identify slivers and clean them

 Original dataset Source dataset sent from a customer. Visually looks good, but has several topology problems. Clean Polygons STEP1: Clean Polygons function will Fix all coordinate inaccuracies within the Fuzzy (Cluster) tolerance used. Create a separate polygon from the overlapping area of polygons. The result will not have any overlaps. The polygon will have the attributes of one of the overlapping polygons. Indicate with a point dataset the areas of overlaps in the original dataset (optional) Note: The use of very large Fuzzy tolerance might result in unwanted approximation of the original shapes. Overlap polygon - Sliver. If zoomed in the area of a point that indicates an overlap we'll see something like this. In some cases the overlap polygons might be real polygons, but in most of the cases they will be slivers and have to be cleaned by joining them to the neighboring real polygons. A Sliver polygon is a small polygon feature commonly occurring along the borders of polygons following a overlay of two or more polygon datasets or as a result of inaccurate digitizing. There a several ways of identifying and cleaning the sliver polygons, but in this case the best option is  Create in the point dataset identifying overlaps a new field (named for example "Sliver") Populate the field with the same value for all the points (for example "Yes") Use Spatial Join from the toolbox implementation of ET GeoWizards or the standard ArcMap tool to join the points identifying overlaps to the clean polygon dataset created in STEP1. All the new polygons (overlaps) that have been created in STEP1 will have now [Sliver] = "Yes" The purpose of the above is to add to the attribute table of the polygons an attribute identifying the slivers. This attribute will be used in STEP 2 below. Identified Sliver Polygons Before Eliminate After Eliminate STEP 2: Eliminate function has several options to identify sliver polygons: Attribute query Thickness ratio Circularity ratio After the preparation made above we can use "Attribute query" option with [Sliver] = "Yes". The highlighted polygons will be selected for eliminating. The Eliminate function has four methods for eliminating slivers. For this task you can use two of the options: Join (Largest Area) Join (Longest boundary The images on the left show the result of the Eliminate function. After Clean Gaps STEP 3: Clean Gaps function will identify the gaps between the polygons and create new polygons from them. The attribute table of the resulting feature class will have a new field - "ET_Gaps". The gap polygons will be indicated in this field as "Gap", the original polygons will be indicated as "Original" Notes: Only the gaps that are completely enclosed by polygons will be converted to new polygons. Gaps that are not completely enclosed - "leak" towards the "Universal" polygon will remain Some of the gaps might represent "True" gaps in the data. They will be filled by new polygons and indicated as "Gap" in the attribute table. Since we do not want to join them to the real polygons we can just select :(for example "ET_Gaps" = 'Gap' AND "ET_Area" > 300 ) and delete them. STEP 4: The rest of the "Gap" polygons can be joined to the adjacent polygons using the Eliminate function with attribute query  "ET_Gaps" = 'Gap' Example from another location in the same dataset: 1. Original 2. After Clean Polygon function - a sliver polygon (former overlap) can be seen 3. After Eliminate function - the sliver polygon merged to the original neighboring polygon 4. After Clean Gaps function - the gap filled with a new polygon 5. After Eliminate function -  The sliver (former gap) polygon merged to the neighbor.