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

Buffer group of neighboring polygons preserving attributes and topology.

This article presents an approach for buffering a group of neighboring polygon and preserving the common internal boundaries, topology and attributes of the input.

Input polyligon dataset Original


Source dataset  - We have a topologically correct polygon dataset.  We would like to buffer these polygons just outwards - preserve the internal boundaries of the polygons and their attributes


Standard Buffer applied

standard buffer


The standard "Buffer" tool (if Dissolve Type = "NONE" is used) will create correct outline for the polygons, but will create also overlapping areas where each polygon is buffered towards its neighbors.

Standard buffer with dissolve "ALL" used.


STEP 1: If we use the standard "Buffer" tool with Dissolve Type = "ALL", we will lose all the internal boundaries and will get the correct outline of the polygons after the buffer is aplied


Polygon To Polyline on the original data.

Original Boundaries

STEP 2: Use the Polygon To Polyline function on the Buffered - Dissolved polygon to convert the external boundary to polyline.

Now we need a way to add the internal boundaries.

STEP 3: Use the Polygon To Polyline  function on the original polygons. This will give us all the outlines. We need only the internal ones.

Clean Polylines with "Duplicates" option  
Internal Boundaries STEP 4: Use the Clean Polylines function on the polyline dataset created in STEP 3. Use the "Export Duplicates" option because the duplicates indicate the common boundaries between two adjacent polygons. So the duplicates (red in the picture) are our internal boundaries.
Merged Buffered Outline and Original internal boundaries  
new_original STEP 5: Use the Merge Datasets function on the polyline datasets created in STEP 2 (buffered outline) and STEP 4. (internal boundaries).
Analyzed nodes of the merged dataset  
new_boundaries If we analyze the nodes of the merged polyline dataset (Use the Export Nodes function of ET GeoWizards or Draw Nodes tool of ET GeoTools), we'll see many dangling nodes and this is normal because the outline of the original polygon was buffered.
Result from the Clean Dangling Nodes function. Nodes Analyzed

Dangles Cleaned

STEP 6: Use the Clean Dangling Nodes function to extend the original internal boundaries to the new outline.

Now we have polyline data and can build polygons from it.

Data to be used in Build Polygons function
 Dangles cleaned plus labels
STEP 7: Use the Polygon To Point function to get the labels from the original polygons. We'll need the labels to be able to transfer the attributes from the original polygons to the new ones
Build Polygons result
Resulting polygons overlaid with the original ones.
Result overlaid
STEP 8: Use Build Polygons function on the polylines created in STEP 6. and label points created in STEP 7.
A model of the entire process.
Model Buffer Polygons

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