从 DLG 导入 (Coverage)
摘要
将标准或可选格式的数字线划图 (DLG) 文件转换为 Coverage。
用法
-
忽略 DLG 文件包含的拓扑数据。运行“从 DLG 导入”之后,可使用构建工具在新创建的 coverage 上创建拓扑。有时 coverage 具有弧交点,需要使用清理工具进行清理。
要素属性表 NAT 会自动创建,不需要再为结点另外构建。
-
可能需要先对输出 Coverage 进行编辑,然后才能构建多边形或线以及创建要素属性表。例如,应检查输出 coverage 以确保标注点出现在多边形内部、弧在结点位置上匹配、多边形是闭合的以及弧不交叉等。
-
在输出 coverage 中,DLG 区域 (A) 记录中的要素编号将成为多边形的标注点 User-ID,线 (L) 记录中的要素编号将成为弧的 User-ID。相同的 User-ID 将写入 INFO 表的 output coverage.ACODE 和 output coverage.PCODE。
-
CODE 文件、output coverage.ACODE 和 output coverage.PCODE 存储线属性代码和多边形属性代码。
-
结点 (N) 记录的 DLG 要素编号在输出 coverage 中将成为结点的 User-ID。结点属性没有对应的 CODE 文件。结点 (N) 记录的 User-ID 和属性代码直接存储在 output coverage.NAT 要素属性表中。
-
对于输出点 Coverage,退化(零长度)线 (L) 记录中的 DLG 要素编号在“输出点 Coverage”中将成为点的 User-ID。将创建 Output Point Coverage.XCODE 以保存退化线 (L) 属性代码。
-
只有在 DLG 中找到要素属性时,才会创建特定要素类的 CODE 文件。
-
CODE 文件中的字段包括 Cover-ID、主要字段和次要字段。Cover-ID 是每个要素的唯一标识符。MAJOR1 是 DLG 中的第一个主要要素代码;MINOR1 是第一个次要代码。表中的主/次字段对的最大数与 DLG 中要素类中字段对的最大数相同。如果某一特定代码没有对应的值,则将使用 -99999 作为值。
-
“从 DLG 导入”将存储在 DLG 文件中的投影参数写入到存储在输出 coverage 子目录中的投影定义文件 (PRJ)。
-
DLG 文件头记录可包含用于将内部文件坐标转换为地面坐标系的变换参数。“从 DLG 导入”会将在文件头记录中找到的所有变换参数自动应用于要素坐标和控制点(除任何指定的平移之外)。
-
DLG 文件中的文件头记录可提供用于确定输出 coverage 的控制点位置的信息。
-
如果用于存储控制点信息的字段为空,“从 DLG 导入”将为输出 coverage 生成控制点。
-
DLG 文件通常提供四个表示地图区域四个角的控制点,这些控制点使用存储地图要素所使用的同一地图坐标系。应用于要素坐标的所有变换或 x,y 平移同样会应用于控制点。
-
DLG 类别相当于图层。
-
通常,一个 DLG 文件只包括一个类别;但某些 DLG 包含多个类别。
-
类别在 DLG 文件头记录中列出。使用该工具的“DLG 类别”参数可为 DLG 中包含的其他图层或类别创建一组 coverage。
-
输出 coverage 的坐标精度由当前的创建规则决定。如果在当前会话期间尚未完成精度设置,则创建规则为“单精度”。这意味着“从 DLG 导入”工具将以单精度创建输出 coverage。(DLG 文件中的坐标值具有 F12.2 的格式定义。)
-
连接 Info 表可用于将各 coverage 要素属性表与 DLG 代码文件合并 — INFO 表 PCODE 与 Output Coverage.PAT 合并、ACODE 与 Output Coverage.AAT 合并以及 XCODE 与 Output Point Coverage.PAT 合并。
语法
参数 | 说明 | 数据类型 |
in_dlg_file |
要转换为 coverage 的 DLG 文件。 | File |
out_cover |
要由 DLG 数据创建的 coverage 的名称。如果输入 DLG 文件包含美国地质勘探局 (USGS) 制作的数据,则输出 coverage 通常会包含以非退化线 (L) 记录、区域 (A) 记录和结点 (N) 记录创建的线、多边形和结点要素。将为结点要素创建 Output Coverage.NAT。 这是“从 DLG 导入”创建的唯一一张要素属性表。 将创建名为 Output Coverage.ACODE 的 INFO 表,其中包含所有线 (L) 记录的主/次字段对值。相似地,名为 Output Coverage.PCODE 的 INFO 表将存储区域 (A) 记录的主/次代码。 | Coverage |
out_point_cover (可选) |
要通过 DLG 中的退化线 (L) 记录创建的可选点 coverage 的名称。在 DLG 中,点以零长度弧(即退化线)形式存储。 可通过指定输出点 coverage 来将这些零长度弧转换为点。这将创建名为 Output Point Coverage.XCODE 的 INFO 表,其中包含退化线 (L) 记录的所有主要和次要代码对值。 除非指定“输出点 Coverage”,否则不会由退化线记录创建任何 coverage。 | Coverage |
area_calculation (可选) |
确定如何将区域 (A) 记录写入到输出 coverage。
| String |
x_shift (可选) |
要在 DLG 转换期间添加到所有 x 坐标的常量值。默认的 X 平移值为零。 | Double |
y_shift (可选) |
要在 DLG 转换期间添加到所有 y 坐标的常量值。默认的 Y 平移值为零。 | Double |
category (可选) |
要从 DLG 文件转换而成的特定 DLG 类别的可选名称。如果已给出一个名称,则只转换指定的类别。否则,只将 DLG 中的第一个类别写入输出 coverage:输出 coverage、点 coverage。 | String |
代码实例
以下独立脚本演示了如何从 DLG 格式导入 coverage。
# Name: DLGArc_Example.py
# Description: Imports from DLG format to a coverage
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inDlgFile = "509954.PL.opt.dlg"
outCover = "C:/output/954netcov"
outPointCover = "C:/output/954pointcov"
# Execute DLGArc
arcpy.DLGArc_arc(inDlgFile, outCover, outPointCover, "", "", "", "")