连接 Info 表 (Coverage)
摘要
基于共享项连接两个表的项定义和值。连接将涉及通过两个表的公共属性或项将一个表的项(字段)追加到另一个表中项。连接通常用于将更多的属性附加到地理图层的属性表中。
当“关联项”的值和“起始项”的值相等时,“连接 Info 表”中的记录会与“输入 Info 表”中的各条记录匹配。两条记录中的项目值随后会被复制到输出表。
插图
用法
-
要保持要素 INFO 表的完整性,请不要在“输入 INFO 表 ID”前插入项(当“输出 INFO 表”等于“输入 INFO 表”时)。
-
建议您使用要连接的两个表中定义相同的“关联项”。
-
如果在两个表中遇到相同的项名称,则将保留“输入 INFO 表”中的项并排除“连接 INFO 表”中的项。
-
为避免信息和冗余存储数据丢失,请确保两个表中的项一对一匹配。如果不存在一对一的对应关系,则会出现以下某种情况:
- 如果一条“输入 Info 表”记录匹配多条“连接 Info 表”记录,则只会将一个匹配保存到“输出 Info 表”中。保存的记录可能是也可能不是文件的第一条匹配记录,具体取决于此项是否已建立索引。
- 如果“输入 Info 表”记录与“连接 Info 表”中的任何记录都不匹配,则相应“输出 Info 表”记录中的“连接 Info 表”的项目值将被设置为零或留空。
- 如果一条“连接 Info 表”记录匹配多条“输入 Info 表”记录,则“连接 Info 表”记录将与每条匹配的“输入 Info 表”记录合并。
- 如果“连接 Info 表”记录与“输入 Info 表”中的任何记录都不匹配,则“输出 Info 表”将不含此记录。
-
指定“起始项”时,请不要在任何要素 INFO 表中的“输入 Info 表 ID”之前插入要连接的项。
-
如果“输入 Info 表”和“连接 Info 表”具有相同的字段,则“连接 Info 表”将返回“连接文件中没有非重复项”消息。这表示没有新项要连接。
-
执行速度取决于所连接文件的组织结构。一般来说,最快的匹配操作是 LINK,其次是具有索引“关联项”的 LINEAR,最后是 ORDERED。尽管 LINK 是最快的选项,但在大多数情况下均不适用。
-
如果“关联项”已建立索引,则 LINEAR 选项将得到优化。
-
“输入 Info 表”和“连接 Info 表”可以包含重新定义的项。大多数情况下,重新定义的项可以用作“关联项”。当重新定义的项包含不同类型的数值项时,不推荐将其用作“关联项”。此类重新定义项可能会产生不合理或不可转换的编号。
-
如果“连接 Info 表”针对每个“关联项”值包含多条记录,则将使用“连接 Info 表”遇到的第一条记录。这仅适用于 LINEAR 选项。
-
“关联项”的替代项名称不必相同,“连接 Info 表”也能生效。
-
只要值相同,即可将整型项与数值项进行匹配。例如,值为 123 的整型项可以与值为 123.00 的数值项进行匹配,但不能与值为 123.01 或 122.99 的数值项进行匹配。
-
只要值匹配,即可将数值项与另一个具有不同小数位数的数值项进行匹配。例如,具有两个小数位的值为 123.45 的数值项可以与具有四个小数位的值为 123.4500 的数值项进行匹配。但是,不能与值为 123.4501 或 123.4499 的数值项进行匹配。“输出 INFO 表”的“关联项”中的小数位数应与“输入 INFO 表”的“关联项”中的小数位数相同。
-
要保留输入表,请为输出表指定其他名称。
语法
参数 | 说明 | 数据类型 |
in_info_table |
要添加项目及项目值的 INFO 数据文件。 | INFO Table |
join_info_table |
包含要添加的项目和值的 INFO 数据文件。 | INFO Table |
out_info_table |
“连接 Info 表”生成的 INFO 数据文件。如果“输出 Info 表”已存在,则它将被替换。 | INFO Table |
relate_item |
“输入 Info 表”中包含的项,此项被用作“连接 Info 表”中记录的索引。此项可以是重新定义的项。 | String |
start_item (可选) |
“输入 Info 表”列表中的项,将在此项之后插入“连接 Info 表”。默认的“起始项”是“输入 Info 表”中的最后一项。 | String |
relate_type (可选) |
“连接 Info 表”记录与“输入 Info 表”记录的匹配方式。
| String |
代码实例
以下独立脚本演示了如何连接两个 INFO 表。
# Name: JoinItem_Example.py
# Description: Joins two INFO tables
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inInfoTable = "maritime1/us5tx51m_p/point"
joinInfoTable = "maritime1/us5tx51m.lights_ncode"
outInfoTable = "C:/output/lightpoints"
relateItem = "RCID"
# Execute JoinItem
arcpy.JoinItem_arc(inInfoTable, joinInfoTable, outInfoTable,
relateItem, "", "")