描述
在保持建筑物基本形状和大小不变的前提下简化建筑物面的边界或轮廓。
插图
使用方法
最小面积参数仅适用于简化的建筑物。 任何在简化过程完成后小于最小面积的建筑物都将从输出要素类中移除。
使用输入障碍图层参数来标识不得被简化建筑物越过的要素。 障碍要素可以是点、线或面。
输出要素类将包含 BLD_STATUS 字段来指示简化状态,如下所示:
- 1 - 已简化单个建筑物
- 2 - 已将单个建筑物简化为自身的最小外接矩形
- 3 - 已将小于平方容差的建筑物简化为自身的最小外接矩形
- 5 - 尚未简化建筑物
如果使用了检查空间冲突参数,则该工具将检测空间冲突并将 SimBldFlag 字段添加到输出中以存储冲突标记。 值为 0 意味着无冲突;值为 1 意味着存在冲突。
该工具无法在编辑会话中执行。
如果在“环境”设置中指定了输入 z 值,则输入 z 值可保留。 如果输出折点与输入要素折点重合,z 值将传递到输出折点。 否则,将从现有 z 值或通过插值获得 z 值。
在简化的过程中,可能创建无效(自相交)的几何,并将对无效的几何进行修复,但不会将其改进。 例如,如果一个面与自身交叉,则该面将成为多部分面,但显示效果依然是自相交。
处理大型数据集可能会超出内存限制。 在这类情况下,考虑通过在制图分区环境设置中确定一个相关的面要素类来通过分区处理输入数据。 将按顺序处理分区边界定义的数据部分。 生成的要素类无缝,而且在分区边界一致。 有关详细信息,请参阅使用分区概化大型数据集。
语法
arcpy.cartography.SimplifyBuilding(in_features, out_feature_class, simplification_tolerance, {minimum_area}, {conflict_option}, {in_barriers})
参数 | 说明 | 数据类型 |
in_features | 要简化的建筑物面。 | Feature Layer |
out_feature_class | 要创建的输出要素类。 | Feature Class |
simplification_tolerance | 建筑物简化的容差。 必须指定一个容差,且值必须大于零。 可以选择首选单位;默认为要素单位。 | Linear Unit |
minimum_area (可选) | 要以要素单位保留的简化建筑物的最小面积。 默认值为零,即保留所有建筑物。 可以指定首选单位;默认为要素单位。 | Areal Unit |
conflict_option (可选) | 指定是否识别空间冲突,即建筑物之间是否重叠或接触。 将向输出添加 SimBldFlag 字段,以存储冲突标记。 值为 0 意味着无冲突;值为 1 意味着存在冲突。
| Boolean |
in_barriers [in_barriers,...] (可选) | 包含充当简化中障碍的要素的输入图层。 生成简化建筑物不会接触障碍要素或与其交叉。 例如,当简化建筑物时,生成的简化建筑物区域不会穿过被定义为障碍的道路要素。 | Feature Layer |
派生输出
名称 | 说明 | 数据类型 |
out_point_feature_class | 输出点要素类,用于存储表示因小于最小面积参数值(Python 中的 minimum_area)而遭到移除的建筑物的点。 仅在选中保留折叠点参数(Python 中的 collapsed_point_option = "KEEP_COLLAPSED_POINTS")时,才使用此参数。 | Feature Class |
代码示例
简化建筑物 (SimplifyBuilding( 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下使用 SimplifyBuilding 函数。
import arcpy
import arcpy.cartography as CA
arcpy.env.workspace = "C:/data"
CA.SimplifyBuilding("buildings.shp", "C:/output/output.gdb/simplified_buildings", 10)
简化建筑物 (SimplifyBuilding) 示例 2(独立脚本)
以下独立脚本演示了如何使用 SimplifyBuilding 函数。
# Name: SimplifyBuilding_Example2.py
# Description: Aggregate building features and then simplify them
# Import system modules
import arcpy
import arcpy.cartography as CA
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Buildings"
# Set local variables
inBuildingFeatures = "houses"
aggregatedFeatures = "C:/data/PortlandOutput.gdb/residential_areas"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/residential_simplified"
# Aggregate house polygons.
CA.AggregatePolygons(inBuildingFeatures, aggregatedFeatures, 10, 100, 100,
"ORTHOGONAL")
# Simplify residential building polygons.
CA.SimplifyBuilding(aggregatedFeatures, simplifiedFeatures, 10, 100,
"CHECK_CONFLICTS")
环境
许可信息
- Basic: 否
- Standard: 否
- Advanced: 是