更新 (Coverage)
插图
用法
-
使用“更新”前,必须满足以下条件:
- 输入 coverage 和更新 coverage 中超出 User-ID 的项定义必须相同。这包括重新定义的项。
- 注记子类及其属性定义必须相同。空注记子类将被忽略。
- 弧段子类及其属性定义必须相同。
- 名称相同的区域子类必须具有相同的属性定义。
-
输入 coverage 与更新 coverage 必须具有面拓扑。
-
输入 coverage 和更新 coverage 要素属性表中超出 User-ID 的项的项定义必须完全一致,其中包括重新定义的项。输入 coverage 和更新 coverage 的项通过将原有面内部编号用作关联项来连接到输出 coverage 属性表。
-
仅在必要时才会生成输出 coverage 面的新标注点位置。每个面的 User-ID 都等于其原有输入 coverage 的 User-ID(经过更新的面的更新 coverage 的 User-ID)。因此,应尝试使输入 coverage 的 User-ID 值与更新 coverage 不同,以避免在输出 coverage 中存在重复的 User-ID。
-
“更新”会保留所有路线系统的子类。如果其中一个 coverage 中存在 Section (SEC) 子类,则该子类必须同时存在于两个 coverage 中而且必须具有相同的项定义。附加到更新弧的路线系统将被保留。附加到输入弧的路线系统将被保留(如果存在)。“更新”管理路线系统的方式类似于依次使用擦除、追加和清理进行操作。
-
如果使用 DROP_BORDER,则删除更新 coverage 外边缘的面边界。即使删除某些更新面的外边界,与输入 coverage 面重叠的更新面的项值也被会指定给输出 coverage 中的面。建议不要对区域 coverage 使用 DROP_BORDER 选项,因为某些输出区域可能不会被保留。
-
注记要素的更新方式为:识别左下起点落入更新 coverage 面的输入 coverage 注记的集合并将其删除。然后,为输出 coverage 中存在的所有注记子类追加更新 coverage 注记。两个 coverage 必须具有相同的注记子类集,但可存在也可缺失的空注记类除外。只要子类具有属性,它们就必须具有相同的属性定义。
-
如果更新 coverage 边界上包含的结点与输入 coverage 中的结点重合,则保留更新 coverage 的结点。唯一例外的情况是:输入 coverage 的结点包含 NAT 中的数据,而更新 coverage 的结点没有 NAT。
-
区域子类使用 POLY 和 NET 选项进行更新。只有使用 KEEP_BORDER 选项才会保留所有区域。DROP_BORDER 选项不会保留所有区域,因此,建议不要在更新区域 coverage 时使用该选项。
-
输入 coverage 和更新 coverage 的区域子类可能相同,也可能不同。子类相同时,必须具有相同的项定义。
-
输出 coverage 的坐标精度由派生 Coverage 的精度环境决定。
-
将使用比较投影环境所指定的比较等级对投影文件进行相似性比较。
-
输出 coverage 会从输入 coverage 继承点属性表、控制点和投影文件数据模型内容中的项。
-
如果输入 coverage 包含不同平面图表中的线性数据,则这些数据将保留在输出 coverage 中。例如,如果存在重合或共线的弧(表示不同高度的公用设施电缆的弧或表示沿着溪流的道路的弧等),那么重合与共线的线段将被保留。但是,可能会插入其他折点。对于诸如穿过溪流的道路之类的相交弧,将不会在视觉上的交点处插入结点。
语法
参数 | 说明 | 数据类型 |
in_cover |
包含要更新的面的 coverage。 | Coverage |
update_cover |
所含面将替换输入 coverage 区域的 coverage。 | Coverage |
out_cover |
要创建的 coverage。 | Coverage |
feature_type (可选) |
要更新的要素类集合。
| String |
fuzzy_tolerance (可选) |
输出 coverage 中坐标之间的最小距离。默认情况下,使用输入 coverage 和擦除 coverage 的最小模糊容差值。 | Double |
keep_border (可选) |
指定在将更新 coverage 插入到输入 coverage 中后是否保留该更新 coverage 的外边界。
| Boolean |
代码实例
以下独立脚本演示了如何使用“更新”工具。
# Name: Update_Example.py
# Description: Updates a coverage
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inCover = "c3zone4"
updateCover = "newsub"
outCover = "C:/output/newc3zone4"
featureType = "POLY"
# Execute Update
arcpy.Update_arc(inCover, updateCover, outCover, featureType, "", "")