简化建筑物 (制图)
摘要
在保持建筑物基本形状和大小不变的前提下简化建筑物面的边界或轮廓。
插图
用法
最小面积参数仅适用于简化的建筑物。任何在简化过程完成后小于最小面积的建筑物都将从输出要素类中移除。
-
输出要素类将包含一个名为 BLD_STATUS 的字段来指明简化状态,如下所示:
- 1 = 已简化单个建筑物
- 2 = 已将单个建筑物简化为自身的最小外接矩形
- 3 = 已将小于平方容差的建筑物简化为自身的最小外接矩形
- 5 = 尚未简化建筑物
法律声明:在 ArcGIS 10 之前的版本中,BLD_STATUS = 4 表示已简化或部分简化以直线连接的建筑物。BLD_STATUS = 4 不再使用。
警告:如果输入要素类中存在名为 BLD_STATUS 的字段,则该字段将出现在填充新值的输出要素类中。现有值将被覆盖。如果想保留现有值,请在输入要素类中创建一个新字段,并将 BLD_STATUS 字段的现有值复制到这一新字段中。
-
如果使用了检查空间冲突参数,则该工具将检测空间冲突并将名为 SimBldFlag 的新字段添加到输出中以存储冲突标记。值为 0 意味着无冲突;值为 1 意味着存在冲突。
警告:如果输入要素类中存在名为 SimBldFlag 的字段,那么该字段出现在输出要素集时将填充新值。即使未选中(Python 中的 NO_CHECK)该参数,现有值也将被覆盖。如果未选中空间冲突,该现有字段将被空值覆盖。如果想保留现有值,请在输入要素集中创建一个新字段,并将现有 SimBldFlag 字段值复制到该新字段中。
-
该工具不能在编辑会话下执行。
-
如果在“环境设置”中指定了输入 Z 值,则输入 Z 值可保留。在输出折点与输入要素折点的重合处,Z 值将传递到输出折点。在其他位置,将从现有的 Z 值或通过插值得到 Z 值。
-
在简化的过程中,可能创建无效(自相交)的几何,并将对无效的几何进行修复,但不会将其改进。例如,如果一个面与自身交叉,则该面将成为多部分面,但显示效果依然是自相交。
语法
参数 | 说明 | 数据类型 |
in_features |
要简化的建筑物面。 | Feature Layer |
out_feature_class |
要创建的输出要素类。 | Feature Class |
simplification_tolerance |
设置建筑物的简化容差。必须指定一个容差,且值必须大于零。可以选择首选单位;默认为要素单位。 | Linear unit |
minimum_area (可选) |
使用要素单位来设置要保留的简化建筑物的最小面积。默认值为零,即保留所有建筑物。可以指定首选单位;默认为要素单位。 | Areal unit |
conflict_option (可选) |
指定是否检查建筑物之间的潜在冲突,即叠置或接触。将名为 SimBldFlag 的字段添加到输出,以存储冲突标记。值为 0 意味着无冲突;值为 1 意味着存在冲突。
| Boolean |
代码实例
以下 Python 窗口脚本演示了如何在即时模式下使用 SimplifyBuilding 功能。
import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SimplifyBuilding("buildings.shp", "C:/output/output.gdb/simplified_buildings", 10)
以下独立脚本演示了如何使用 SimplifyBuilding 功能。
# Name: SimplifyBuilding_Example2.py
# Description: Aggregate building features and then simplify them
# Import system modules
import arcpy
from arcpy import env
import arcpy.cartography as CA
# Set environment settings
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)