简化建筑物 (制图)

摘要

在保持建筑物基本形状和大小不变的前提下简化建筑物面的边界或轮廓。

插图

简化建筑物工具选项图示
使用简化容差,通过移除较小细节、狭窄走廊和最小面积以下的要素来简化建筑物。

使用情况

  • 最小面积参数仅适用于简化的建筑物。 任何在简化过程完成后小于最小面积的建筑物都将从输出要素类中移除。

  • 使用输入障碍图层参数来标识不得被简化建筑物越过的要素。 障碍要素可以是点、线或面。

  • 使用保留折叠点参数(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 值。

  • 在简化的过程中,可能创建无效(自相交)的几何,并将对无效的几何进行修复,但不会将其改进。 例如,如果一个面与自身交叉,则该面将成为多部分面,但显示效果依然是自相交。

  • 即使未选中传送地理数据库字段属性环境,属性域和子类型也会被复制到输出。

  • 处理大型数据集可能会超出内存限制。 在这类情况下,考虑通过在制图分区环境设置中确定一个相关的面要素类来通过分区处理输入数据。 将按顺序处理分区边界定义的数据部分。 生成的要素类无缝,而且在分区边界一致。 有关详细信息,请参阅使用分区概化大型数据集

参数

标注说明数据类型
输入要素

要简化的建筑物面。

Feature Layer
输出要素类

要创建的输出要素类。

Feature Class
简化容差

建筑物简化的容差。 必须指定一个容差,且值必须大于零。 可以选择首选单位;默认为要素单位。

Linear Unit
最小面积
(可选)

要以要素单位保留的简化建筑物的最小面积。 默认值为零,即保留所有建筑物。 可以指定首选单位;默认为要素单位。

Areal Unit
检查空间冲突
(可选)

指定是否识别空间冲突,即建筑物之间是否重叠或接触。 将向输出添加 SimBldFlag 字段,以存储冲突标记。 值为 0 意味着无冲突;值为 1 意味着存在冲突。

  • 未选中 - 不识别空间冲突;生成的建筑物可能重叠。 这是默认设置。
  • 选中 - 将识别空间冲突并标记冲突建筑物。

Boolean
输入障碍图层
(可选)

包含充当简化中障碍的要素的输入图层。 生成简化建筑物不会接触障碍要素或与其交叉。 例如,当简化建筑物时,生成的简化建筑物区域不会穿过被定义为障碍的道路要素。

Feature Layer
保留折叠的点
(可选)

指定是否创建输出点要素类,以存储因小于最小面积参数值而遭到移除的所有建筑物的中心。 点输出的派生和命名与在输出要素类参数中指定的输出要素类相同,但带有 _Pnt 后缀,并且位于同一文件夹中。

  • 选中 - 将创建派生的输出点要素类,以存储已移除建筑物的中心。
  • 未选中 - 不会创建输出点类。 这是默认设置。
Boolean

派生输出

标注说明数据类型
折叠的面积为零的面

输出点要素类,用于存储表示因小于最小面积参数值(Python 中的 minimum_area)而遭到移除的建筑物的点。 仅在选中保留折叠点参数(Python 中的 collapsed_point_option = "KEEP_COLLAPSED_POINTS")时,才使用此参数。

Feature Class

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 意味着存在冲突。

  • NO_CHECK不识别空间冲突;生成的建筑物可能重叠。 这是默认设置。
  • CHECK_CONFLICTS将识别空间冲突并标记冲突建筑物。
Boolean
in_barriers
[in_barriers,...]
(可选)

包含充当简化中障碍的要素的输入图层。 生成简化建筑物不会接触障碍要素或与其交叉。 例如,当简化建筑物时,生成的简化建筑物区域不会穿过被定义为障碍的道路要素。

Feature Layer
collapsed_point_option
(可选)

指定是否创建输出点要素类,以存储因小于 minimum_area 参数值而遭到移除的所有建筑物的中心。 点输出的派生和命名与在 out_feature_class 参数中指定的输出要素类相同,但带有 _Pnt 后缀,并且位于同一文件夹中。

  • KEEP_COLLAPSED_POINTS将创建派生的输出点要素类,以存储已移除建筑物的中心。
  • NO_KEEP不会创建输出点要素类。 这是默认设置。
Boolean

派生输出

名称说明数据类型
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"
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: 是

相关主题