Summary
Normalizes the footprint of building polygons by eliminating undesirable artifacts in their geometry.
Illustration
Usage
This tool utilizes a polyline compression algorithm to correct distortions in building footprint polygons created through feature extraction workflows that may produce undesirable artifacts.
The tolerance is used to define the region surrounding the polygon's boundary that the regularized polygon must fit into. This region can best be visualized by converting the polygon's boundary to a line feature, then buffering the line by the desired tolerance to get a sense for how it is applied by the tool.
When the specified parameters cannot produce a regularized solution for a given input, the original feature is copied to the output.
The output will have a field named STATUS whose values indicate the following:
- 0—Original feature
- 1—Regularized feature
Syntax
RegularizeBuildingFootprint_3d (in_features, out_feature_class, method, tolerance, densification, precision, diagonal_penalty, min_radius, max_radius)
Parameter | Explanation | Data Type |
in_features | The polygons that represent the building footprints to be regularized. | Feature Layer |
out_feature_class | The feature class that will be produced by this tool. | Feature Class |
method | The regularization method to be used in processing the input features.
| String |
tolerance | The maximum distance that the regularized footprint can deviate from the boundary of its originating feature. The specified value will be based on the linear units of the input feature's coordinate system. | Double |
densification | The sampling interval that will be used to evaluate whether the regularized feature will be straight or bent. The densification must be equal to or less than the tolerance value. This parameter is only used with methods that support right angle identification. | Double |
precision | The precision used by the spatial grid employed in the regularization process. Valid values range from 0.05 to 0.25. | Double |
diagonal_penalty | Controls the distance bias for creating right-angle connections. Distances smaller than the diagonal penalty will be used to create right angles. This parameter is only used with the Right Angles and Diagonals method. | Double |
min_radius | The smallest radius that a regularized circle can have. A value of 0 implies there is no minimum size limit. This option is only available with the circle method. | Double |
max_radius | The largest radius that a regularized circular can have. This option is only available with the circle method. | Double |
Code sample
RegularizeBuildingFootprint example 1 (Python window)
The following sample demonstrates the use of this tool in the Python window.
arcpy.env.workspace = 'c:/data'
arcpy.ddd.RegularizeBuildingFootprint('rough_footprints.shp',
'regularized_footprints.shp',
method='Circle', tolerance=1.5, min_radius=10,
max_radius=20)
RegularizeBuildingFootprint example 2 (stand-alone script)
The following sample demonstrates the use of this tool in a stand-alone Python script.
'''****************************************************************************
Name: Regularize Building Footprints
Description: Extract footprint from lidar points classified as buildings and
regularize its geometry.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
footprint = arcpy.GetParameterAsText(1)
try:
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=6)
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Environments
Licensing information
- ArcGIS for Desktop Basic: Requires 3D Analyst
- ArcGIS for Desktop Standard: Requires 3D Analyst
- ArcGIS for Desktop Advanced: Requires 3D Analyst