Simplify Building (Coverage)
Summary
Simplifies the boundary or footprint of building polygons while maintaining their essential shape and size.
Learn more about how Simplify Building (Coverage Tools) works
Illustration
Usage
-
The input coverage must have a polygon topology.
-
Due to the possibility of creating overlapping boundaries, preliminary regions are used as the resulting features. To create fully built regions from the preliminary regions, use Clean with the POLY option on the out_cover.
-
This tool can run for quite a long time if the in_cover is large. To make it run faster, use the Arc command INDEX (see ArcInfo Workstation Help for command reference) on the input coverage to create a spatial index.
-
The following info tables will be created: output_coverage.bnd, output_coverage.tic, output_coverage.aat, and output_coverage.patbldgsim.
-
The out_cover.aat will store the new arcs and not carry any information from the input_coverage.aat.
-
All route and region attributes and topology from the in_cover will be lost.
-
All attributes in the input_coverage.pat, except AREA and PERIMETER, will be copied to the output_coverage.patbldgsim. The tool will not compute the AREA values of the preliminary regions, but set the AREA values in the output_coverage.PATBLDGSIM to zero and compute the PERIMETER. The Clean tool with the POLY option will calculate the AREA values.
-
The output_coverage.patbldgsim will also contain two new items: BDS-STATUS and BDS-GROUP. The item BDS-STATUS records the following simplification status:
- Simplified separate building
- Separate building partially simplified due to spatial conflict
- A short side found in the resulting building
- Simplified or partially simplified buildings connected with straight lines
- Not simplified
The item BDS-GROUP stores a unique positive value for each group of connected buildings. A single building will receive a BDS-GROUP value of 0. A single building with a hole will receive a unique negative value for both outer and inner boundaries.
-
If a selection file is not specified or if it contains no polygons, all polygons in the input coverage are selected for simplification. If the selection file does not contain the polygon feature class or if it does not match the input coverage (that is, the selection file was not derived from the input coverage), the program will stop.
-
If more than 500 adjacent polygons in a group are detected, the tool will stop and a message will be returned: "More than 500 adjacent polygons detected. The process has stopped."
Syntax
Parameter | Explanation | Data Type |
in_cover |
The input coverage containing building polygons. | Coverage |
out_cover |
The output coverage containing simplified buildings as preliminary regions with a subclass BLDGSIM. The output coverage name must be different from the input coverage name. | Coverage |
simplification_tolerance |
Sets the simplification tolerance in coverage units. A tolerance must be specified and must be greater than zero. | Double |
minimum_area (Optional) |
Sets the minimum area to be retained in coverage units. The default is the square of the simplification tolerance. Enter 0 to include all buildings. | Double |
selection_file (Optional) |
A special file created using the ArcPlot command WRITESELECT (see ArcInfo Workstation Help for command reference). It identifies coverage features selected in ArcPlot. This option allows you to simplify selected buildings in the input coverage. | File |
CheckConflict (Optional) |
Specifies whether or not to check for potential conflicts, that is, overlapping or touching, among buildings.
| Boolean |
Code Sample
The following stand-alone script demonstrates how to simplify a building coverage.
# Name: SimplifyBuilding_Example.py
# Description: Simplifies a building coverage
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inCover = "campus"
outCover = "C:/output/cartocampus"
simplificationTolerance = 6
minimumArea = 55
checkConflict = "CHECK_CONFLICT"
# Execute SimplifyBuilding
arcpy.SimplifyBuilding_arc(inCover, outCover, simplificationTolerance,
minimumArea, "", checkConflict)
arcpy.Clean_arc(outCover)