エッジマッチ フィーチャ (Edgematch Features) (編集)

サマリー

指定したエッジマッチ リンクをガイドとして入力ライン フィーチャの形状を空間的に調整し、それらのライン フィーチャが隣接するデータセットのラインと接続されるように変更します。

エッジマッチの詳細

エッジマッチ フィーチャ ツールの図

使用法

    注意:

    このツールを実行すると、入力データが変更されます。 詳細と不要なデータの変更を回避するための方法については、「入力データを変更または更新するツール」をご参照ください。

  • このツールは、[エッジマッチ リンクの生成 (Generate Edgematch Links)] ツールの実行後に使用することを目的としています。 このツールは、[エッジマッチ リンクの生成 (Generate_Edgematch_Links)] ツールが作成した入力リンク フィーチャで導くことによって、入力ラインの形状を空間的に調整します。それによって入力ラインは、エッジ エリアに沿って隣接するライン フィーチャと正しく接続されます。 入力リンク フィーチャには、SRC_FID フィールドと ADJ_FID フィールドが存在する必要があります。

  • 注意:

    すべての入力は、同じ座標系に存在する必要があります。

  • このツールは、エッジマッチ リンクから新しい接続位置を取得し、その新しい位置に端点を接続するように、対応するフィーチャを変更します。 どの入力パラメーター ([入力フィーチャ][隣接フィーチャ][境界線フィーチャ]) を指定したかに応じて新しい接続位置が決定され、それに従って関連するフィーチャが調整されます。 この調整によって、以下で説明するように、必ず一致するフィーチャが接続されます。

    • [入力フィーチャ] パラメーターを指定した場合、エッジマッチ リンクの端点が新しい接続位置として使用されます。 エッジマッチ リンクと関連付けられた (つまり、フィーチャ ID がリンクの SRC_FID 値と一致する) 入力ラインが、リンクの端点で終わるように調整されます。 その結果、入力ラインは、エッジマッチ リンクの生成で使用された目的の隣接フィーチャと確実に接続されます。
    • [入力フィーチャ] パラメーターと [隣接フィーチャ] パラメーターの両方を指定した場合、エッジマッチ リンクの中点が新しい接続位置として使用されます。 関連する入力ラインおよび隣接ライン (つまり、フィーチャ ID がリンクの ADJ_FID 値に一致するライン) の両方の端点が、リンクの中点に接続されるように調整されます。
    • [境界線フィーチャ] パラメーターを指定する場合、ツールは、エッジマッチ リンクの中点に最も近い境界線上の位置を、新しい接続位置として使用します。 [入力フィーチャ] パラメーター値と [隣接フィーチャ] パラメーター値 (指定した場合) は、計算された境界線上の位置に端点が接続されるように調整されます。

    [方法] パラメーターには、フィーチャを調整するための、次のエッジマッチ オプションがあります。 各オプションは、上で説明したように、入力フィーチャのみ、または入力フィーチャと隣接フィーチャの両方に適用されます。

    • [端点の移動] - 入力ラインの端点を新しい接続位置に移動します。
    • [セグメントの追加] - 新しい接続位置で終わるように、入力ラインの端点に直線セグメントを追加します。
    • [頂点の調整] - ラインの端点を新しい接続位置に調整します。 他の頂点も、ラインの反対側の端点に向かって位置の変化が徐々に減少するように調整されます。

パラメーター

ラベル説明データ タイプ
入力フィーチャ

調整対象の入力ライン フィーチャ。

Feature Layer
入力リンク フィーチャ

エッジマッチ リンクを表す入力ライン フィーチャ。

Feature Layer
方法
(オプション)

入力フィーチャのみ、または入力フィーチャと隣接フィーチャの両方を新しい接続位置に調整するエッジマッチ方法を指定します。

  • 端点の移動ラインの端点を新しい接続位置に移動します。 これがデフォルトです。
  • セグメントの追加ラインが新しい接続位置で終わるように、ラインの端点に直線セグメントを追加します。
  • 頂点の調整ラインの端点を新しい接続位置に移動します。 他の頂点も、ラインの反対側の端点に向かって位置の変化が徐々に減少するように調整されます。
String
隣接フィーチャ
(オプション)

入力フィーチャに隣接するライン フィーチャ。 これを指定した場合、入力フィーチャと隣接フィーチャの両方が、新しい接続位置 (エッジマッチ リンクの中点、またはリンクの中点に最も近い境界線フィーチャ (指定した場合) 上の位置のいずれか) で接続されるように調整されます。

Feature Layer
境界線フィーチャ
(オプション)

入力フィーチャと隣接フィーチャ間の境界線を表すライン フィーチャまたはポリゴン フィーチャ。 境界線フィーチャを指定した場合、入力フィーチャと隣接フィーチャの両方が、リンクの中点に最も近い境界線フィーチャ上の新しい接続位置で接続されるように調整されます。

Feature Layer

派生した出力

ラベル説明データ タイプ
更新された入力フィーチャ

更新された入力フィーチャ。

Feature Layer

arcpy.management.EdgematchFeatures(in_features, in_link_features, {method}, {adjacent_features}, {border_features})
名前説明データ タイプ
in_features

調整対象の入力ライン フィーチャ。

Feature Layer
in_link_features

エッジマッチ リンクを表す入力ライン フィーチャ。

Feature Layer
method
(オプション)

入力フィーチャのみ、または入力フィーチャと隣接フィーチャの両方を新しい接続位置に調整するエッジマッチ方法を指定します。

  • MOVE_ENDPOINTラインの端点を新しい接続位置に移動します。 これがデフォルトです。
  • ADD_SEGMENTラインが新しい接続位置で終わるように、ラインの端点に直線セグメントを追加します。
  • ADJUST_VERTICESラインの端点を新しい接続位置に移動します。 他の頂点も、ラインの反対側の端点に向かって位置の変化が徐々に減少するように調整されます。
String
adjacent_features
(オプション)

入力フィーチャに隣接するライン フィーチャ。 これを指定した場合、入力フィーチャと隣接フィーチャの両方が、新しい接続位置 (エッジマッチ リンクの中点、またはリンクの中点に最も近い境界線フィーチャ (指定した場合) 上の位置のいずれか) で接続されるように調整されます。

Feature Layer
border_features
(オプション)

入力フィーチャと隣接フィーチャ間の境界線を表すライン フィーチャまたはポリゴン フィーチャ。 境界線フィーチャを指定した場合、入力フィーチャと隣接フィーチャの両方が、リンクの中点に最も近い境界線フィーチャ上の新しい接続位置で接続されるように調整されます。

Feature Layer

派生した出力

名前説明データ タイプ
out_feature_class

更新された入力フィーチャ。

Feature Layer

コードのサンプル

EdgematchFeatures の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで EdgematchFeatures 関数を使用する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.edit.EdgematchFeatures("cityA_Roads.shp", "em_Links.shp"
                             "MOVE_ENDPOINT")
EdgematchFeatures の例 2 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、EdgematchFeatures 関数をスクリプティング環境で適用する方法の例を示しています。

"""
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")