清理 (Coverage)
摘要
生成具有正确面或弧结点拓扑的 coverage。为此,“清理”工具会编辑并纠正几何坐标错误、将弧组合成面并为每个面或弧创建要素属性信息(即,创建 PAT 或 AAT)。
插图
用法
-
在处理过程中,“清理”工具将:
- 查找弧之间的交点、分割弧并将交点编码为结点(弧端点)。
- 合并处于彼此模糊容差范围内的坐标。由于模糊容差实际上会移动弧折点,因此了解它与 coverage 分辨率的关系十分重要。
- 创建用于定义每个面边界的弧列表、为结点编号并确立每段弧的“起始结点”和“终止结点”及每段弧左侧和右侧的内部面编号。
- 删除短于指定悬挂长度的悬挂弧。
- 构建面属性表 (PAT) 或弧属性表 (AAT),具体取决于使用的选项。它会计算每个面的面积和周长并将此信息及面内部编号和用户 ID 存储在 PAT 中。如果输入 coverage 已具有 PAT,则使用面的原始内部编号将 PAT 中的任何其他项连接到输出 coverage PAT。
-
如果输入 Coverage 具有 PAT 或 AAT 要素属性表,则在使用 POLY 选项时,这些属性表将在输出 Coverage 中自动更新。使用 LINE 选项时,将只更新 AAT。每个“输入 Coverage”要素的内部编号均用于将“输入 Coverage”要素属性表中的属性信息与“输出 Coverage”相关联,以确保属性可以正确连接到输出要素属性表。要素用户 ID 即使不唯一,也能确保每个输入要素在“输出 Coverage”中保留其属性。
-
请勿对地理 coverage 运行“清理”。地理 coverage 使用十进制度、十进制秒和弧度等单位。这些单位用来测量角度而不测量距离。它们代表的是球面坐标系,不应与 2D 直线坐标系混淆,后者使用“清理”、缓冲、联合等命令及其他叠加处理过程。您必须先将地理 coverage 投影到合适的投影坐标系,才能将使用角度单位表示的经度和纬度角转换为使用像英尺、米、千米等直线单位的 2D 直线直角坐标系。
-
“清理”需要大小约为输入 coverage 13 倍的可用磁盘空间来创建临时文件。这些临时文件将默认创建在当前工作空间中。您可覆盖默认设置,并通过设置 ARCTMPDIR 变量使临时文件创建在另一个目录下。您必须对该目录具有写入权限。
-
“清理”命令不需要面标注点,但如果希望面用户 ID 为非零值,则必须使用面标注点。对于不包含标注点的面,在使用“清理”时,会将其用户 ID 指定为零。
-
“清理”之前,每个面中只放置一个标注点。如果面包含多个标注点,将随意选择面中的一个标注点来指定用户 ID。尽管在指定用户 ID 时只选择一个标注点,但“清理”过程中不会移除其他标注点。
-
清理时,如果使用 POLY 选项,则将创建一个称为背景多边形或外多边形的附加多边形。该多边形的面内部编号始终为 1,而面积为 converage 中所有其他面的面积之和。它在 PAT 中的面积值将显示为一个负数。
-
“清理”工具会使用模糊容差。它表示“清理”工具可在多大的范围内移动要素、消除重复结点、在线相交处创建结点,以及消除重复要素。模糊容差以 coverage 单位来度量。使用“清理”工具时,指定合适的模糊容差从而避免错误地消除必要的要素至关重要。
-
“清除”的 POLY 和 LINE 选项将使用针对分割和弧重新编号的调整内容来更新 SEC 和 RAT。然而,如果弧因“模糊容差”而在合并中被删除,则任何附加到这些弧的路径或弧段都将被删除。
-
只要每个路径具有唯一的用户 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”。
语法
参数 | 说明 | 数据类型 |
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)