在 Advanced 许可等级下可用。
摘要
生成具有正确面或弧结点拓扑的 coverage。为此,“清理”工具会编辑并纠正几何坐标错误、将弧组合成面并为每个面或弧创建要素属性信息(即,创建 PAT 或 AAT)。
插图
用法
在处理过程中,“清理”工具将:
- 查找弧之间的交点、分割弧并将交点编码为结点(弧端点)。
- 合并处于彼此模糊容差范围内的坐标。由于模糊容差实际上会移动弧折点,因此了解它与 coverage 分辨率的关系十分重要。
- 创建用于定义每个面边界的弧列表、为结点编号并确立每段弧的“起始结点”和“终止结点”及每段弧左侧和右侧的内部面编号。
- 删除短于指定悬挂长度的悬挂弧。
- 是构建面属性表 (PAT) 还是弧属性表 (AAT),具体取决于使用的选项。它会计算每个面的面积和周长并将此信息及面内部编号和 User-ID 存储在 PAT 中。如果输入 coverage 已具有 PAT,则使用面的原始内部编号将 PAT 中的任何其他项连接到输出 coverage PAT。
如果输入 Coverage 具有 PAT 或 AAT 要素属性表,则在使用 POLY 选项时,这些属性表将在输出 Coverage 中自动更新。使用 LINE 选项时,将只更新 AAT。每个“输入 Coverage”要素的内部编号均用于将“输入 Coverage”要素属性表中的属性信息与“输出 Coverage”相关联,以确保属性可以正确连接到输出要素属性表。要素 User-ID 即使不唯一,也能确保每个输入要素在“输出 Coverage”中保留其属性。
请勿对地理 coverage 运行“清理”操作。地理 coverage 使用十进制度、十进制秒和弧度等单位。这些单位用来测量角度而不测量距离。它们代表的是球面坐标系,不应与 2D 直线坐标系混淆,后者可使用“清理”、缓冲、联合等命令及其他叠加处理过程。您必须先将地理 coverage 投影到合适的投影坐标系,才能将使用角度单位表示的经度和纬度角转换为使用像英尺、米、千米等直线单位的 2D 直线直角坐标系。
“清理”操作需要大小约为输入 coverage 13 倍的可用磁盘空间来创建临时文件。这些临时文件将默认创建在当前工作空间中。您可覆盖默认设置,并通过设置 ARCTMPDIR 变量使临时文件创建在另一个目录下。您必须对该目录具有写入权限。
“清理”命令不需要面标注点,但如果希望面 User-ID 为非零值,则必须使用面标注点。对于不包含标注点的面,在使用“清理”时,会将其 User-ID 指定为零。
使用“清理”命令之前,每个面中只放置一个标注点。如果面包含多个标注点,将随意选择面中的一个标注点来指定 User-ID。尽管在指定 User-ID 时只选择一个标注点,但“清理”过程中不会移除其他标注点。
清理时,如果使用 POLY 选项,则将创建一个称为背景多边形或外多边形的附加多边形。该多边形的面内部编号始终为 1,而面积为 converage 中所有其他面的面积之和。它在 PAT 中的面积值将显示为一个负数。
“清理”工具会使用模糊容差。它表示“清理”工具可在多大的范围内移动要素、消除重复结点、在线相交处创建结点,以及消除重复要素。模糊容差以 coverage 单位来度量。使用“清理”工具时,指定合适的模糊容差从而避免错误地消除必要的要素至关重要。
“清理”的 POLY 和 LINE 选项将使用针对分割和弧重新编号的调整内容来更新 SEC 和 RAT。然而,如果弧因“模糊容差”而在合并中被删除,则任何附加到这些弧的路径或弧段都将被删除。
只要每个路径具有唯一的 User-ID,“输入 Coverage”中的路线系统就会保持在“输出 Coverage”中。
无法对包含未闭合区域的区域 coverage 执行“清理”命令。在检测到第一个未闭合的区域时,“清理”操作将停止执行。
使用 LINE 选项时,清理操作将不保留任何区域子类信息(拓扑或属性)。LINE 选项将删除 .PAT 和 .PAT 子类文件。
使用 POLY 选项时,清理操作将保留区域拓扑。如果存在初始区域拓扑,则“清理”将通过创建 .PAT 和 .PAT 子类来创建区域拓扑。
“清理”命令会将“输入 Coverage”注记复制到“输出 Coverage”。
执行“清理”命令后,不会保留连接。
如果“输入 Coverage”中存在 NAT,“清理”操作将会更新该 NAT。新结点的属性将设置为零。
如果“输入 Coverage”中存在 SEC,则“清理”命令将更新所有 SEC。被分割的弧上的弧段也将被分割,而这些弧上的测量值将被更新。
请勿对 COGO coverage 使用“清理”命令。对于通过“清理”命令分割的任何弧线,其 COGO 属性将不会更新。例如,如果“清理”命令分割 DISTANCE 项值为 100 的弧,则生成的两个新弧的 DISTANCE 值均为 100。这时可以改用构建工具,在 COGO 编辑环境中解决任何弧线叠置问题。
如果将双精度 coverage 复制到单精度 coverage 中,则必须清理“输出 Coverage”才能重新构建面拓扑。
在单精度 coverage 中,“清理”命令将基于 coverage 数学精度(BND 的宽度以及小数位数)来计算最小容差。如果计算出的最小容差大于在命令行中输入的“模糊容差”,则使用该最小容差。
“输出 Coverage”的坐标精度由派生 Coverage 的精度环境设置所设置的当前处理规则确定。如果在当前会话期间未建立处理规则,则该处理规则的优先级将最高。这意味着“清理”命令将以“输入 Coverage”的精度来创建“输出 Coverage”。
投影文件 (PRJ) 将复制到“输出 Coverage”。
语法
Clean_arc (in_cover, {out_cover}, {dangle_length}, {fuzzy_tolerance}, {feature_type})
参数 | 说明 | 数据类型 |
in_cover | 要清理的 coverage。 | Coverage |
out_cover (可选) | “清理”工具创建的 coverage。如果“输入 Coverage”和“输出 Coverage”的名称相同,则“输入 Coverage”将被替换。默认情况下,会替换“输入 Coverage”。 | Coverage |
dangle_length (可选) | “输出 Coverage”中悬挂弧允许的最小长度。悬挂弧是左右两侧的面内部编号相同且以悬挂结点结束的弧。使用 POLY 和 LINE 选项时,悬挂弧会被移除。如果未给出悬挂长度,则存在 TOL 文件时,将从 coverage TOL 文件中读取悬挂长度;否则,悬挂长度设置为零(默认设置)。 | Double |
fuzzy_tolerance (可选) | 每个 out_cover 中坐标之间的最小距离。 | Double |
feature_type (可选) | 指定是创建面拓扑和 PAT,还是创建弧结点拓扑和 AAT。POLY 为默认选项。如果对包含现有 AAT 的 coverage 使用 POLY,“清理”命令还将自动重新构建 AAT。
| String |
代码实例
清理示例(独立脚本)
以下独立脚本演示了如何针对面拓扑清理 coverage。
# Name: Clean_Example.py
# Description: Cleans a coverage for polygon topology.
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inCover = "zones"
outCover = "C:/output/zones"
fuzzyTolerance = 0.25
featureType = "POLY"
#Execute Clean
arcpy.Clean_arc(inCover, outCover, "", fuzzyTolerance, featureType)
环境
许可信息
- ArcGIS for Desktop Basic: 否
- ArcGIS for Desktop Standard: 否
- ArcGIS for Desktop Advanced: 需要 已安装 ArcInfo Workstation