描述
在保持建筑物基本形状和大小不变的前提下简化建筑物面的边界或轮廓。
插图
使用方法
最小面积参数仅适用于简化的建筑物。任何在简化过程完成后小于最小面积的建筑物都将从输出要素类中移除。
使用输入障碍图层参数来标识不得被简化建筑物越过的要素。障碍要素可以是点、线或面。
使用保留折叠点参数(Python 中的 collapsed_point_option)可创建输出点要素类,以存储表示因小于最小面积而遭到移除的所有建筑物的点。已派生点输出;将使用与输出要素类参数(Python 中的 out_feature_class)相同的名称和位置,但带有 _Pnt 后缀。输出面要素类包含输入要素类中的所有字段。输出点要素类不包含任何这些字段。
输出要素类将包含 BLD_STATUS 字段来指示简化状态,如下所示:
- 1 - 已简化单个建筑物
- 2 - 已将单个建筑物简化为自身的最小外接矩形
- 3 - 已将小于平方容差的建筑物简化为自身的最小外接矩形
- 5 - 尚未简化建筑物
旧版本:
在 ArcGIS 10 之前的版本中,BLD_STATUS = 4 表示已简化或部分简化以直线连接的建筑物。BLD_STATUS = 4 不再使用。
警告:
如果输入要素类中存在 BLD_STATUS 字段,则该字段将出现在填充新值的输出要素类中。现有值将被覆盖。要保留现有值,在输入要素类中创建一个新字段,然后将 BLD_STATUS 字段的现有值复制到该新字段中。
如果使用了检查空间冲突参数,则该工具将检测空间冲突并将 SimBldFlag 字段添加到输出中以存储冲突标记。值为 0 意味着无冲突;值为 1 意味着存在冲突。
警告:
如果输入要素类中存在 SimBldFlag 字段,则该字段将出现在填充新值的输出要素类中。即使未选中(Python 中的 conflict_option = "NO_CHECK")该参数,现有值也将被覆盖。如果未选中空间冲突,该现有字段将被空值覆盖。要保留现有值,在输入要素类中创建一个新字段,然后将 SimBldFlag 字段的现有值复制到该新字段中。
该工具无法在编辑会话中执行。
如果在“环境设置”中指定了输入 z 值,则输入 z 值可保留。如果输出折点与输入要素折点重合,z 值将传递到输出折点。否则,将从现有 z 值或通过插值获得 z 值。
在简化的过程中,可能创建无效(自相交)的几何,并将对无效的几何进行修复,但不会将其改进。例如,如果一个面与自身交叉,则该面将成为多部分面,但显示效果依然是自相交。
即使未选中传送地理数据库字段属性环境,属性域和子类型也会被复制到输出。
处理大型数据集可能会超出内存限制。在这类情况下,考虑通过在制图分区环境设置中确定一个相关的面要素类来通过分区处理输入数据。将按顺序处理分区边界定义的数据部分。生成的要素类无缝,而且在分区边界一致。有关详细信息,请参阅使用分区概化大型数据集。
语法
arcpy.cartography.SimplifyBuilding(in_features, out_feature_class, simplification_tolerance, {minimum_area}, {conflict_option}, {in_barriers}, {collapsed_point_option})
参数 | 说明 | 数据类型 |
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 |
collapsed_point_option (可选) | 指定是否创建输出点要素类,以存储因小于 minimum_area 参数值而遭到移除的所有建筑物的中心。点输出的派生和命名与在 out_feature_class 参数中指定的输出要素类相同,但带有 _Pnt 后缀,并且位于同一文件夹中。
| Boolean |
派生输出
名称 | 说明 | 数据类型 |
out_point_feature_class | 输出点要素类,用于存储表示因小于最小面积参数值(Python 中的 minimum_area)而遭到移除的建筑物的点。仅在选中保留折叠点参数(Python 中的 collapsed_point_option = "KEEP_COLLAPSED_POINTS")时,才使用此参数。 | 要素类 |
代码示例
以下 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 函数。
# 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"
inBarrierFeatures = "roads"
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", inBarrierFeatures, "KEEP_COLLAPSED_POINTS")
许可信息
- Basic: 否
- Standard: 否
- Advanced: 是