概要
指定されたエッジマッチ リンクにより、形状を空間的に調整し、入力ライン フィーチャを変更します。それによって入力ライン フィーチャは、隣接するデータセット内のラインと接続されます。
図
使用法
このツールは、[エッジマッチ リンクの生成 (Generate Edgematch Links)] ツールの実行後に使用することを目的としています。このツールは、[エッジマッチ リンクの生成 (Generate_Edgematch_Links)] ツールが作成した入力リンク フィーチャで導くことによって、入力ラインの形状を空間的に調整します。それによって入力ラインは、エッジ エリアに沿って隣接するライン フィーチャと正しく接続されます。入力リンク フィーチャには、SRC_FID フィールドと ADJ_FID フィールドが存在する必要があります。
このツールは、エッジマッチ リンクから新しい接続位置を取得し、その新しい位置に端点を接続するように、対応するフィーチャを変更します。どの入力 ([入力フィーチャ]、[隣接フィーチャ]、[境界線フィーチャ]) を指定したかに応じて新しい接続位置が決定され、それに従って関連するフィーチャが調整されます。この調整によって、以下で説明するように、必ず一致するフィーチャが接続されます。
- [入力フィーチャ] のみを指定した場合、エッジマッチ リンクの端点が新しい接続位置として選択されます。エッジマッチ リンクと関連付けられた (つまり、フィーチャ ID がリンクの SRC_FID 値と一致する) 入力ラインが、リンクの端点で終わるように調整されます。その結果、入力ラインは、エッジマッチ リンクの生成で使用された目的の隣接フィーチャと確実に接続されます。
- [入力フィーチャ] と [隣接フィーチャ] の両方を指定した場合、エッジマッチ リンクの中間点が新しい接続位置として選択されます。関連する入力ラインおよび隣接ライン (つまり、フィーチャ ID がリンクの ADJ_FID 値に一致するライン) の両方が、リンクの中点に端点が接続されるように調整されます。
- [境界線フィーチャ] を指定する場合、ツールは、エッジマッチ リンクの中間点に最も近い境界線上の位置を、新しい接続位置として使用します。[入力フィーチャ] と [隣接フィーチャ] (指定した場合) は、計算された境界線上の位置に端点が接続されるように調整されます。
[方法] パラメーターには、フィーチャを調整するためのエッジマッチ オプションが 3 つあります。各オプションは、上で説明したように、入力フィーチャのみ、または入力フィーチャと隣接フィーチャの両方に適用されます。
- [端点の移動] (Python では MOVE_ENDPOINT) - 入力ラインの端点を新しい接続位置に移動します。
- [セグメントの追加] (Python では ADD_SEGMENT) - 新しい接続位置で終わるように、入力ラインの端点に直線セグメントを追加します。
- [頂点の調整] (Python では ADJUST_VERTICES) - ラインの端点を新しい接続位置に調整します。他の頂点も、ラインの反対側の端点に向かって位置の変化が徐々に減少するように調整されます。
注意:
このツールを実行すると、入力データが変更されます。詳細と不要なデータの変更を回避するための方法については、「入力データを変更または更新するツール」をご参照ください。
メモ:
すべての入力は、同じ座標系に存在する必要があります。
構文
arcpy.edit.EdgematchFeatures(in_features, in_link_features, {method}, {adjacent_features}, {border_features})
パラメーター | 説明 | データ タイプ |
in_features | 調整対象の入力ライン フィーチャ。 | Feature Layer |
in_link_features | エッジマッチ リンクを表す入力ライン フィーチャ。 | Feature Layer |
method (オプション) | 入力フィーチャのみ、または入力フィーチャと隣接フィーチャの両方を新しい接続位置に調整するエッジマッチ方法。
| String |
adjacent_features (オプション) | 入力フィーチャに隣接するライン フィーチャ。これを指定した場合、入力フィーチャと隣接フィーチャの両方が、新しい接続位置 (エッジマッチ リンクの中間点、またはリンクの中間点に最も近い境界線フィーチャ (指定した場合) 上の位置のいずれか) で接続されるように調整されます。 | Feature Layer |
border_features (オプション) | 入力フィーチャと隣接フィーチャ間の境界線を表すライン フィーチャまたはポリゴン フィーチャ。境界線フィーチャを指定した場合、入力フィーチャと隣接フィーチャの両方が、リンクの中間点に最も近い境界線フィーチャ上の新しい接続位置で接続されるように調整されます。 | Feature Layer |
派生した出力
名前 | 説明 | データ タイプ |
out_feature_class | 更新された入力フィーチャ。 | フィーチャ レイヤー |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで EdgematchFeatures 関数を使用する方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.EdgematchFeatures_edit("cityA_Roads.shp", "em_Links.shp"
"MOVE_ENDPOINT")
次のスタンドアロン 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
# might not be desired; they are finally used to adjust input features
# (a copy is made) to connect with the matched adjacent feautures.
# Author: Esri
# -----------------------------------------------------------------------
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.overwriteOutput = True
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.GenerateEdgematchLinks_edit(inFeatures, adjFeatures, gelOutput, search_distance, match_fields)
# ====================================================================================
# Note 1: The result of GenerateEdgematchLinks may contain errors; see tool reference.
# Inspection and editing may be necessary to ensure correct links before using
# them for edgematching.
#
# One of the possible errors are undesired 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.Intersect_analysis(gelOutput, qaLocations, "", "", "POINT")
# Delete coincident points
arcpy.DeleteIdentical_management(qaLocations, "Shape")
# ====================================================================================
# Note 2: At this point you can manually inspect locations in qaLocations; delete or
# modify links as needed.
# ====================================================================================
# Make a copy of the inFeatures for edgematching
inFeature_Copy = inFeatures + "_Copy"
arcpy.CopyFeatures_management(inFeatures, inFeature_Copy)
# Use the links to adjust the copy of the input features
arcpy.EdgematchFeatures_edit(inFeature_Copy, gelOutput, "MOVE_ENDPOINT")
環境
ライセンス情報
- Basic: いいえ
- Standard: いいえ
- Advanced: はい