ラベル | 説明 | データ タイプ |
ソース フィーチャ | エッジマッチのソース フィーチャとして使用されるライン フィーチャ。 すべてのエッジマッチ リンクは、ソース フィーチャから始まります。 | Feature Layer |
隣接フィーチャ | ソース フィーチャに隣接するライン フィーチャ。 すべてのエッジ リンクは、一致する隣接フィーチャで終わります。 | Feature Layer |
出力フィーチャクラス | エッジマッチ リンクを表すラインが格納される出力フィーチャクラス。 | Feature Class |
検索距離 | 一致候補の検索に使用される距離。 ゼロより大きい距離を指定する必要があります。 優先的に適用される単位を選択できます。 デフォルトはフィーチャの単位です。 | Linear Unit |
照合フィールド (オプション) | ソース フィーチャとターゲット フィーチャのフィールド。ここで、ターゲット フィールドは、隣接フィーチャのフィールドです。 これを入力すると、照合候補に関して各フィールド ペアがチェックされるため、正しい照合の特定に役立ちます。 | Value Table |
サマリー
ソース データの領域と隣接データの領域のエッジに沿って、一致しているが切断されているライン フィーチャを検索し、ソース ラインと一致する隣接ラインとの間にエッジマッチ リンクを生成します。
図
使用法
隣接する国の道路など、隣接する別々のデータセットのライン フィーチャには、データ コレクションの不一致などの理由により、それらが接続するエッジに沿ってギャップやずれが存在する場合があります。 2 つのデータセット間のエッジマッチ問題を一度に解決するには、このツールを使用してエッジマッチ リンクを生成します。 その後、[エッジマッチ フィーチャ (Edgematch Features)] ツールを使用して、各フィーチャが接続されるように調整します。 ライン フィーチャの 2 つのセットは、ソース フィーチャおよび隣接フィーチャと呼ばれます。 このツールは、分離しているが、指定された検索距離の範囲内で対応しているソース ラインと隣接ラインを検索し、それらのライン間にエッジマッチ リンク (移動リンクとも呼ぶ) を表すラインを生成します。
エッジ領域に沿って切断された 2 つのフィーチャが検索距離の範囲内で対応している場合でも、それらの端点が検索距離よりも離れている場合は、エッジマッチとは見なされません。
注意:
すべての入力は、同じ座標系に存在する必要があります。
出力フィーチャクラスは、入力と同じ座標系を使用します。
出力フィーチャクラスには、エッジマッチ リンクを表す以下のフィールドを持つライン フィーチャが格納されます。
- SRC_FID- リンクの始点になるソース フィーチャ ID。
- ADJ_FID- リンクの終点になる隣接フィーチャ ID。
- EM_CONF- エッジマッチの信頼度を表す値。 これらの値は、検索距離の範囲内で検出された候補の数、属性の一致状況、およびソース フィーチャと隣接フィーチャ間の連続性から求められます。 この値は、0 よりも大きい 100 以下の値になります。ここで 100 は、最高の信頼度を表します。 EM_CONF 値が大きいほど、正しいリンクが得られる可能性が高くなります。 例については、「エッジマッチについて」をご参照ください。
[検索距離] パラメーターは、一致候補の検索で使用されます。 対応するフィーチャ間のずれの大部分を捉えることができるほど十分な大きさの距離を使用しますが、候補が多くなって不必要な処理が発生し、不正な一致が得られる場合があるため、この値を大きくし過ぎないでください。
一致候補が検出されたら、それらの形状の特徴が分析されます。 連続性が最も高くなるソース フィーチャと隣接フィーチャ間で、一致が決定されます。 エッジマッチ リンクを表すラインが、ソース ラインの端点から一致する隣接ラインの端点まで生成されます。
これらのリンクを、他のライン フィーチャと同様に、マップ上に表示できます。 ラインの各端に矢印を付けて描画し、上の図に示すようなマップを作成できます。
[照合フィールド] パラメーターで 1 つ以上のフィールドのペアを指定した場合、空間的に一致するフィーチャが、これらのフィールド値と比較されます。 たとえば、道路名が格納された STREET_NAME フィールドが、ソース フィーチャと隣接フィーチャの両方に存在するとします。 1 つのソース フィーチャが 2 つの隣接フィーチャに空間的に一致していて、1 つの隣接フィーチャのみがソース フィーチャと同じ STREET_NAME 値を持っている場合、この隣接フィーチャの方が一致度が高くなります。 テキスト文字列の比較では、大文字と小文字が区別されません。つまり、First St は、first st と同じと見なされます。
属性の一致条件は、上で説明したように、EM_CONF フィールドの値に影響を与えます。
エッジマッチの精度は、データの品質および 2 つの入力データのエッジに沿った複雑さに依存します。
前処理でデータ エラーを最小化し、関連するフィーチャを入力として選択します。 一般に、入力データセット内のフィーチャがトポロジ的に正しく、有効なジオメトリを有しており、シングルパートであって重複していないのは有効です。そうでない場合は、予期しない結果が発生するおそれがあります。
結果を確認し、必要に応じて修正することをお勧めします。 実行後に検査と編集を行うときに、既存の編集ツールを使用してリンクを編集できます。たとえば、リンクを削除したり、リンクの始点または終点を移動して変更したり、新しいリンクを追加したりできます。 それに応じて、SRC_FID および TGT_FID フィールドを更新します。
パラメーター
arcpy.management.GenerateEdgematchLinks(source_features, adjacent_features, out_feature_class, search_distance, {match_fields})
名前 | 説明 | データ タイプ |
source_features | エッジマッチのソース フィーチャとして使用されるライン フィーチャ。 すべてのエッジマッチ リンクは、ソース フィーチャから始まります。 | Feature Layer |
adjacent_features | ソース フィーチャに隣接するライン フィーチャ。 すべてのエッジ リンクは、一致する隣接フィーチャで終わります。 | Feature Layer |
out_feature_class | エッジマッチ リンクを表すラインが格納される出力フィーチャクラス。 | Feature Class |
search_distance | 一致候補の検索に使用される距離。 ゼロより大きい距離を指定する必要があります。 優先的に適用される単位を選択できます。 デフォルトはフィーチャの単位です。 | Linear Unit |
match_fields [[source_field, target_field],...] (オプション) | ソース フィーチャとターゲット フィーチャのフィールド。ここで、ターゲット フィールドは、隣接フィーチャのフィールドです。 これを入力すると、照合候補に関して各フィールド ペアがチェックされるため、正しい照合の特定に役立ちます。 | Value Table |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで GenerateEdgematchLinks 関数を使用する方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.edit.GenerateEdgematchLinks("countyA_Roads.shp",
"countyB_Roads.shp", "em_Links.shp"
"25 Feet")
次のスタンドアロン スクリプトは、GenerateEdgematchLinks 関数をスクリプティング環境で適用する方法を示した単純な例です。
"""
Name: EdgematchFeatures_example_script2.py
Description: Performs edgematching spatial adjustment using links produced by
GenerateEdgematchLinks. The links go from input features to adjacent
features. The links are then checked for intersecting conditions, which
may not be desired. They are then used to adjust input features
(a copy is made) to connect to the matched adjacent features.
"""
# Import system modules.
import arcpy
# Set environment settings.
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"D:\conflationTools\ScriptExamples\data.gdb"
# Set local variables.
inFeatures = "roads1"
adjFeatures = "roads2"
gelOutput = "gelinks_out"
search_distance = "200 Feet"
match_fields = "NAME ROAD_NAME"
qaLocations = "qa_locations"
# Generate rubbersheet links.
arcpy.edit.GenerateEdgematchLinks(inFeatures, adjFeatures, gelOutput, search_distance, match_fields)
"""
Note 1: The result of GenerateEdgematchLinks may contain errors; see the tool reference.
Inspection and editing may be necessary to ensure correct links before using
them for edgematching.
One of the possible errors is intersecting or touching links.
Their locations can be found by the process below.
"""
# Find locations where links intersect or touch. The result contains coincident points.
arcpy.analysis.Intersect(gelOutput, qaLocations, "", "", "POINT")
# Delete coincident points.
arcpy.management.DeleteIdentical(qaLocations, "Shape")
"""
Note 2: You can manually inspect locations in qaLocations and delete or
modify links as needed.
"""
# Make a copy of the inFeatures for edgematching.
inFeature_Copy = inFeatures + "_Copy"
arcpy.management.CopyFeatures(inFeatures, inFeature_Copy)
# Use the links to adjust the copy of the input features.
arcpy.edit.EdgematchFeatures(inFeature_Copy, gelOutput, "MOVE_ENDPOINT")