INFO テーブルの結合(Join Info Tables) (カバレッジ)
サマリ
2 つのテーブルのアイテム定義と値を、共有アイテムに基づいて結合します。結合は、2 つのテーブルに共通な属性またはアイテムを通して、一方のテーブルのアイテム(フィールド)を他方のテーブルに追加します。通常は、レイヤの属性テーブルに新たな属性を追加する目的で使用されます。
結合 INFO テーブル内のレコードは、リレート アイテムとスタート アイテムの値が同じときに、入力 INFO テーブルの各レコードと一致します。2 つのレコードからのアイテム値が、出力テーブルにコピーされます。
図
使用法
-
フィーチャ INFO テーブルの整合性を維持するために、(出力 INFO テーブルが入力 INFO テーブルと同じ場合は)入力 INFO テーブル ID の前にアイテムを挿入しないでください。
-
2 つのテーブルで同じ定義のリレート アイテムを使用して結合することをお勧めします。
-
同じアイテム名が 2 つのテーブルで見つかった場合、入力 INFO テーブルのアイテムが維持され、結合 INFO テーブルのアイテムは除外されます。
-
情報の損失と冗長なデータ格納を避けるため、2 つのテーブル内のアイテムが 1 対 1 に対応していることを確認してください。1 対 1 に対応していない場合、次のいずれかが起こります。
- 入力 INFO テーブルのレコードが結合 INFO テーブルの複数のレコードと一致する場合、一致した 1 つのレコードのみが出力 INFO テーブルに保存されます。保存されるレコードは、アイテムにインデックスが付いているかどうかに応じて、ファイルで最初に一致したレコードになる場合と、そうでない場合があります。
- 入力 INFO テーブルのレコードが結合 INFO テーブルのレコードと一致しない場合、対応する出力 INFO テーブルのレコード内における結合 INFO テーブルのアイテム値は、ゼロに設定されるか、空白のままになります。
- 結合 INFO テーブルのレコードが入力 INFO テーブルの複数のレコードと一致する場合、結合 INFO テーブルのレコードが、入力 INFO テーブルで一致したすべてのレコードとマージされます。
- 結合 INFO テーブルのレコードが入力 INFO テーブルのレコードと一致しない場合、そのレコードは出力 INFO テーブルには表示されません。
-
スタート アイテムを指定するときは、フィーチャ INFO テーブル内にある入力 INFO テーブル ID の前に、結合するアイテムを挿入しないでください。
-
入力 INFO テーブルと結合 INFO テーブルが同じフィールドを持つ場合、結合 INFO テーブルは「重複しないアイテムが join.file にありません(No Non-duplicate items in join.file)」というメッセージを返します。これは、結合する新しいアイテムがないことを意味しています。
-
実行速度は、結合するファイルの構成によって変わります。一般的に、LINK が最も速い一致処理で、次にインデックス付きのリレート アイテムを使用した LINEAR、最後に ORDERED の順になります。LINK は最も速いオプションですが、ほとんどの場合、適用できません。
-
LINEAR オプションは、リレート アイテムにインデックスが付いている場合に最適化されています。
-
入力 INFO テーブルと結合 INFO テーブルは、再定義アイテムを含むことができます。再定義アイテムは、ほとんどの場合でリレート アイテムとして使用できます。再定義アイテムが異なるタイプのアイテムを含み、かつ数値である場合、リレート アイテムとして使用することはお勧めしません。このような再定義アイテムは、非論理的または変換不能な数字になる可能性があります。
-
結合 INFO テーブルに、各リレート アイテム値に対して複数のレコードが含まれる場合、[INFO テーブルの結合(Join Info Tables)] が検出した最初のレコードが使用されます。これは、LINEAR オプションにのみ適用されます。
-
[INFO テーブルの結合(Join Info Tables)] の実行のために、リレート アイテムの代替アイテム名が同じである必要はありません。
-
値が同じであれば、整数アイテムと数値アイテムを一致させることができます。たとえば、値が 123 の整数アイテムは、値が 123.00 の数値アイテムと一致しますが、123.01 や 122.99 とは一致しません。
-
数値アイテムは、値が一致する限り、小数点以下の桁数が異なる別の数値アイテムとも一致させることができます。たとえば、小数点以下の桁数が 2 桁で値が 123.45 の数値アイテムは、小数点以下の桁数が 4 桁で値が 123.4500 の数値アイテムと一致します。しかし、123.4501 または 123.4499 とは一致しません。出力 INFO テーブルのリレート アイテムの小数点以下の桁数は、入力 INFO テーブルのリレート アイテムの小数点以下の桁数と同じになります。
-
入力テーブルを維持するには、出力テーブルに別の名前を付けます。
構文
パラメータ | 説明 | データ タイプ |
in_info_table |
アイテムとその値の追加先となる INFO データ ファイル。 | INFO Table |
join_info_table |
追加するアイテムとその値を含む INFO データ ファイル。 | INFO Table |
out_info_table |
[INFO テーブルの結合(Join Info Tables)] が生成する INFO データ ファイル。すでに存在している出力 INFO テーブルは、上書きされます。 | INFO Table |
relate_item |
結合 INFO テーブル内のレコードへのインデックスとして使用される、入力 INFO テーブル内に含まれるアイテム。再定義アイテムを使用できます。 | String |
start_item (オプション) |
結合 INFO テーブルのアイテムが後ろに挿入される、入力 INFO テーブル内のアイテム。デフォルトのスタート アイテムは、入力 INFO テーブルの最後のアイテムです。 | String |
relate_type (オプション) |
結合 INFO テーブルのレコードを入力 INFO テーブルのレコードと一致させる方法。
| String |
コードのサンプル
次のスタンドアロン スクリプトで、2 つの 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, "", "")