构建 (Coverage)
用法
-
“构建”和清理是相似的命令,因为它们都用于定义 coverage 拓扑。它们的根本区别在于,“清理”可以检测和创建交点,而“构建”则不能。但是,由于“构建”不使用模糊容差,因此在构建拓扑时,将不会对坐标进行校正。
-
如果存在 coverage 要素属性表,则将使用指定为关联项的各要素的原有内部编号对要素属性表中的附加项进行更新。
-
现有要素属性表中的用户定义项将始终保留。
-
无论何时更新 NAT,“构建”都将使用重新编号结点例程。然而,与常规的“重新编号结点”操作不同,在该例程中,不会对重合结点进行融合,它们将被保留。结点将被重新编号,以提供从 1 开始的一系列连续的结点编号。
-
如果存在 NAT,则将 POLY 或 NODE 选项随“构建”一同使用时,将对 NAT 进行更新。
-
执行构建后,将不会保留连接。
-
将“构建”工具与 POLY 选项一同使用时,面必须具有标注点以保留其属性。如果没有属性,则标注点无需生成 PAT。不包含标注点的面的用户 ID 将被指定为零。
“构建”工具不会创建面标注。
-
如果您要指定特定的用户 ID,请在每个面中只放置一个标注点,然后再运行“构建”工具。如果面包含多个标注点,将随机选择一个点来指定用户 ID。
-
如果想要自动指定用户 ID,请使用创建标注工具,然后添加面属性。
-
请勿使用 POLY(默认)选项构建点 coverage。用户定义的点属性可能会丢失。
-
请勿使用 POINT 选项构建面 coverage。用户定义的面属性可能会丢失。
-
使用 POLY 选项进行构建将创建一个称为背景面的附加面。该面的内部编号始终指定为 1,其面积是 coverage 中其他所有面的面积之和。该面在 PAT 中显示为负值面积。
-
使用 POLY 选项进行构建将保留和更新 coverage 中所有现有路线系统的 SEC 和 RAT 文件。
-
创建注记属性表 (TAT) 后,它将不再需要使用“构建”工具进行更新。使用“构建”工具创建的 TAT 可用于存储属性和建立与其他要素的关联。
-
面构建将对包含正确 ARCLINK# 值的 SEC 进行更新。
-
使用 NODE 构建线 coverage 后,将为各结点指定内部 FNODE# 和 TNODE#。弧端点将按 y 坐标以从上至下的顺序进行排序,当 y 坐标相等时,按 x 坐标以从左至右的顺序进行排序。将按照该顺序指定内部结点 ID。
-
有多种 coverage 工具可生成具有相同弧 ID 的相连接的弧,这些弧按等于零的结点编号进行分隔(例如,生成)。当运行“构建”工具时,它将取消对这些弧的分割,同时将结点转换为折点。如果要将这些弧保留为分隔的弧,请先运行重新编号结点,然后执行构建。
-
“构建”需要大小为输入 coverage 大小若干倍的可用磁盘空间来创建临时文件。默认情况下,这些临时文件将创建在当前工作空间中。您可通过设置 ARCTMPDIR 变量覆盖默认设置并在其他目录下创建临时文件。您必须具有对该目录的写入权限。
-
无法对包含未闭合区域的区域 coverage 执行“构建”。
-
在检测到第一个未闭合的区域时,“构建”将停止执行。
-
通过线 coverage 创建区域时,每段弧都必须形成一个闭合环以定义一个区域。在使用线 Coverage 转区域工具创建区域拓扑之前,必须使用 LINE 选项进行构建。
-
使用 POLY 选项进行构建将会通过创建 .PAT 和 .PATsubclass 向初级区域添加拓扑。必须首先使用先前执行的工具(例如,线 Coverage 转区域)创建区域子类。
-
您可以向已具有区域子类的 coverage 中添加用于定义区域(以及闭合环)的新弧。必须使用先前执行的工具(例如,线 Coverage 转区域)对新弧进行分组以形成新的区域子类。必须以适当方式对这些新弧的 ID 进行编号,使它们的编号大于所有现有的弧。使用新子类名称和新弧构建它们,将会创建新的区域子类。
-
如果某个 coverage 中包含坐标错误,则不应对其执行“构建”。可能导致使用 POLY 选项的“构建”工具出现问题的错误包括:相交的弧线(交点处未定义任何结点)、未闭合的面或者不匹配的结点和狭长面。
语法
参数 | 说明 | 数据类型 |
in_cover |
要构建的 coverage。 | Coverage |
feature_type |
要构建的要素类。
| String |
anno_subclass (可选) |
要构建的注记子类的名称。 | String |
代码示例
以下独立脚本演示了如何为道路 coverage 构建线拓扑。
# Name: Build_Example.py # Description: Builds line topology for a road coverage. # Requirements: ArcInfo Workstation # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data" # Set local variables inCover = "road" featureType = "LINE" # Execute Build arcpy.Build_arc(inCover, featureType)