How Clean works

This topic applies to ArcInfo only.

Clean creates topology for polygon or line coverages.

When creating polygon topology:

When creating line topology:

Clean builds polygon and arc-node topology by performing a geometric analysis on the coverage arcs and label points to identify coverage nodes and polygons. The specific geometric analysis operations performed by Clean are described below.

Clean finds intersections between arcs, splits the arcs, and codes the intersections as nodes (that is, arc endpoints).

Clean (Coverage) example 1

During Clean, two or more arc coordinates within the Fuzzy Tolerance of each other are snapped together (for example, become the same coordinate point). No distinction is made between interior arc coordinates and nodes or between arcs. Because the Fuzzy Tolerance actually moves arc vertices, understanding its relationship to coverage resolution is important. Refer to Setting tolerances for Clean below.

Clean (Coverage) example 2

Clean builds polygon and arc-node topology by identifying areas enclosed by arcs and creates the list of arcs that define each polygon boundary. Clean also numbers nodes and establishes the from-node and to-node for each arc as well as the internal polygon numbers to the left and right of each arc. Internal polygon numbers are set to 0 for the LINE option.

Clean (Coverage) example 3
Set of arcs enclosing each polygon
Polygon number  Number of Arcs  Arc numbers
1               4               1,2,9,4
2               4               1,3,5,4
3               4               2,8,6,3
4               4               6,8,9,5
Polygons to the left and right of each arc
Arc number  From-node  To-node  Left Poly  Right Poly
1           1          2        1          2
2           2          7        1          3
3           2          3        3          2
4           4          1        1          2
5           4          3        2          4
6           5          3        4          3
7           5          6        3          3
8           7          5        4          3
9           7          4        1          4

Clean compares the length of dangling arcs against the Dangle Length and deletes those that are shorter than that length. A dangling arc is an arc that has the same polygon internal number on both its left and right sides and ends in a dangling node.

Clean (Coverage) example 4
Polygons to the left and right of each arc
Arc number  Left poly  Right poly  Length
1           1          2           5.0
2*          1          1           0.2
3           1          3           8.8
4           2          3           1.2
5*          2          2           0.2
6           2          4           1.3
7*          1          1           0.2
8           4          3           1.9
9*          3          3           1.5
10          4          3           1.9
11*         1          1           0.2
12          4          1           3.1

* Dangling arcs 
+ Arc length is longer than dangle length = 1.0

Based on the specified Dangle Length, arc 9 was kept in the coverage, whereas arcs 2, 5, 7 and 11 were removed.

For the POLY option, Clean finds a label point within each polygon that can be used to assign a User-ID to each polygon. Polygons that do not have label points are assigned User-IDs of zero. If a polygon contains more than one label point, one of the labels is chosen arbitrarily to assign a User-ID to the polygon.

Clean (Coverage) example 5
Polygon Internal no.  Polygon User-ID
1                     0
2                     101
3                     102
4                     0

Clean builds a PAT or AAT depending on the option used. Clean calculates the area and perimeter for each polygon and stores this information along with the polygon internal number and User-ID in the PAT. If the Input Coverage has a PAT, the polygon's original internal number is used to join any additional items in the PAT to the Output Coverage PAT.

Clean (Coverage) example 6
EXCOV.PAT before Clean
AREA   PERIMETER  EXCOV#  EXCOV-ID  COVER-TYPE
-25.0  20.0       1       0
2.0    7.5        2       0         Shrub
3.0    9.0        3       13        Trees
9.0    11.0       4       10        Grass
3.5    8.0        5       13        Forest
1.0    2.5        6       0         Water
4.5    9.0        7       14        Shrub
2.0    5.0        8       0         Forest
EXCOV.PAT after Clean
AREA   PERIMETER  EXCOV#  EXCOV-ID  COVER-TYPE
-25.0  20.0       1       0
2.0    7.5        2       0
3.0    9.0        3       13        Trees
9.0    11.0       4       10        Grass
3.5    8.0        5       13        Forest
1.0    2.5        6       0         Water
4.5    9.0        7       14        Shrub
2.0    5.0        8       0

When using Clean with the POLY option, polygon label points are recommended but not required. Polygon labels are used to retain attributes throughout Clean. Although not required, it is also recommended that these label points have unique IDs.

After building this coverage, the COVER-TYPE attribute values have been maintained for all polygons having label points-attributes in polygons without labels were not maintained.

For the LINE option, Clean automatically builds line attributes (for example, an AAT) for a coverage. Also, when using the POLY option on an Input Coverage that has an AAT, Clean will automatically recreate the AAT in the Output Coverage. Additional items in the input AAT will be joined to the output AAT using the arc's old internal number as the relate item. The LPOLY# and RPOLY# items in the AAT will equal the new polygon internal numbers.

The following examples illustrate using Clean with the LINE option to create the AAT. The first example is a coverage that contains polygon topology. The second example does not, so the LPOLY and RPOLY numbers were recorded as zeros.

Clean (Coverage) example 7
Items from VEG.AAT after Clean 
FNODE  TNODE  LPOLY  RPOLY  LENGTH  VEG#  VEG-ID
1      3      2      1      5.0     1     1
1      2      3      2      2.0     2     2
1      4      1      3      10.0    3     3
2      3      4      2      1.9     4     4
4      2      4      3      3.9     5     5
3      4      4      1      5.1     6     6
Clean (Coverage) example 8
Items from ROADS.AAT after CLEAN 
FNODE  TNODE  LPOLY  RPOLY  LENGTH  ROADS#  ROADS-ID
1      2      0      0      1.0     1       1
2      3      0      0      1.2     2       2
3      5      0      0      0.8     3       3
4      4      0      0      0.9     4       4
5      6      0      0      1.0     5       5

Setting tolerances for Clean

The choice of a Fuzzy Tolerance is important for CLEAN. Since no two coordinates in the Output Coverage will be within this distance of each other, the Fuzzy Tolerance determines the resolution of the Output Coverage. A Fuzzy Tolerance that is too small may cause two kinds of problems.

Conversely, a Fuzzy Tolerance that is too large may collapse polygons or merge arcs that should not merge.

Take special care in choosing a Dangle Length. All dangling arcs that are shorter than the specified Dangle Length are deleted.

Clean can be used to process LINE coverages in which intersecting arcs must be split or to recreate arc-node topology after editing.

The Build tool performs similar processing operations. Build with the POLY option creates polygon topology and attributes (for example, a PAT). Build with LINE will create an AAT or rebuild one if it exists. Build does not, however, perform coordinate editing as does Clean. For example, it cannot split arcs where they intersect with other arcs. Another Coverage command, Renumber Nodes, will renumber the node numbers for each arc by resetting their internal numbers and automatically updating the internal number of the from-nodes and to-nodes of each arc in the coverage AAT.


Published 6/8/2010