摘要
在保持建筑物基本形状和大小不变的前提下简化建筑物面的边界或轮廓。
插图
用法
输入 Coverage 必须有多边形拓扑。
由于存在创建叠置边界的可能性,因此初始区域可用作生成的要素。要从初始区域创建完全构建的区域,请在 out_cover 上使用清理和 POLY 选项。
如果 in_cover 非常大,此工具的运行时间将会相当长。要使其运行得更快,请在输入 Coverage 上使用 Arc 命令 INDEX(关于命令参考,请参见 ArcInfo Workstation 帮助)创建空间索引。
将创建以下信息表:output_coverage.bnd、output_coverage.tic、output_coverage.aat 和 output_coverage.patbldgsim。
out_cover.aat 将存储新弧线,且不含有来自 input_coverage.aat 的任何信息。
in_cover 中的所有路径和区域属性以及拓扑都会丢失。
将 input_coverage.pat 中的所有属性(AREA 和 PERIMETER 除外)复制到 output_coverage.patbldgsim。此工具不会计算初始区域的 AREA 值,但在 output_coverage.PATBLDGSIM 中将 AREA 值设置为零并计算 PERIMETER。具有 POLY 选项的清理工具将计算 AREA 值。
output_coverage.patbldgsim 也将包含两个新项目:BDS-STATUS 和 BDS-GROUP。项目 BDS-STATUS 记录以下简化状态:
- 已简化独立建筑物
- 由于空间冲突,部分简化独立建筑物
- 生成的建筑物中出现短侧
- 与直线相连接的建筑物已简化或部分简化
- 未简化
项目 BDS-GROUP 存储每组已连接建筑物的唯一正值。单座建筑物接收的 BDS-GROUP 值为 0。带有孔洞的单座建筑物的外边界和内边界接收唯一负值。
如果未指定选择文件,或者选择文件不包含多边形,则选择输入 Coverage 中的所有多边形进行简化处理。如果选择文件不包含多边形要素类,或者选择文件与输入 Coverage 不匹配(即,选择文件不是源自输入 Coverage),则程序将停止。
如果检测到组中有 500 多个相邻多边形,工具将停止并返回以下消息:“检测到 500 多个相邻多边形。进程已停止。”
语法
SimplifyBuilding_arc (in_cover, out_cover, simplification_tolerance, {minimum_area}, {selection_file}, {CheckConflict})
参数 | 说明 | 数据类型 |
in_cover | 包含建筑物多边形的输入 Coverage。 | Coverage |
out_cover | 包含作为初始区域的已简化建筑物和子类 BLDGSIM 的输出 Coverage。输出 Coverage 的名称必须不同于输入 Coverage 的名称。 | Coverage |
simplification_tolerance | 以 Coverage 单位为单位设置简化容差。必须指定容差,且容差必须大于零。 | Double |
minimum_area (可选) | 以 Coverage 单位为单位设置要保留的最小面积。默认值是简化容差的平方。输入 0 以包括所有建筑物。 | Double |
selection_file (可选) | 使用 ArcPlot 命令 WRITESELECT(有关命令参考,请参见 ArcInfo Workstation 帮助)创建的特殊文件。此文件用于确定在 ArcPlot 中选择的 Coverage 要素。此选项允许您简化输入 Coverage 中的选定建筑物。 | File |
CheckConflict (可选) | 指定是否检查建筑物之间的潜在冲突,即叠置或接触。
| Boolean |
代码示例
缓冲区 (Buffer) 示例(独立脚本)
以下独立脚本演示如何简化建筑物 Coverage。
# Name: SimplifyBuilding_Example.py
# Description: Simplifies a building coverage
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inCover = "campus"
outCover = "C:/output/cartocampus"
simplificationTolerance = 6
minimumArea = 55
checkConflict = "CHECK_CONFLICT"
# Execute SimplifyBuilding
arcpy.SimplifyBuilding_arc(inCover, outCover, simplificationTolerance,
minimumArea, "", checkConflict)
arcpy.Clean_arc(outCover)
环境
许可信息
- ArcGIS Desktop Basic: 否
- ArcGIS Desktop Standard: 否
- ArcGIS Desktop Advanced: 需要 已安装 ArcInfo Workstation