概要
検索範囲内のターゲット フィーチャに対して入力フィーチャが一致しない部分を識別し、ターゲット フィーチャに一致させます。
図
使用法
入力フィーチャとターゲット フィーチャには、ライン フィーチャまたはポリゴン フィーチャを指定できます。たとえば、ラインまたはポリゴンの郡の境界があり、その一部が隣接する郡との境界である河川の中心線と異なるとします。このツールを使用すると、その郡の境界部分を河川の中心線に一致させることができます。
入力フィーチャまたはその一部は、ターゲット フィーチャから指定した [検索範囲] 内にある場合に調整候補になります。候補の形状は、ターゲットの形状に似ている必要があります。たとえば、入力道路フィーチャと平行に走るターゲット道路フィーチャは、直交する 2 つのフィーチャより似ています。
指定した場合は、調整候補がターゲットと一致させるフィーチャとして適切であるかどうかが [照合フィールド] で判定されます。たとえば、ターゲット フィーチャの検索範囲内に 2 つの入力フィーチャが見つかり、どちらの形状もターゲットと似ている場合、照合フィールドの値を持つ方が有力な候補になります。
調整では、入力フィーチャ間の既存のトポロジ リレーションシップが維持されます。たとえば、端点が他のラインと接続しているラインを調整によって移動する場合、接続しているすべてのラインの端点が移動して、ラインの接続状態が維持されます。
変更された入力には、AF_CONF という新しいフィールドが追加されます。このフィールドは、0 より大きく最大で 100 までの値を格納し、各フィーチャの調整の信頼度を示します。100 の値は、調整の候補が明確であることを意味します。この値は、複数の候補が見つかった場合や、形状の差異が大きい場合、または [照合フィールド] を指定したときに属性が一致しない場合に減少します。変更されないフィーチャには -1 の値が指定されます。入力フィーチャとターゲット フィーチャが複雑な場合には、予期しない調整が発生することがあります。このため、特に AF_CONF の値が比較的小さいフィーチャに対して、処理後の検査が必要な場合があります。
構文
arcpy.edit.AlignFeatures(in_features, target_features, search_distance, {match_fields})
パラメーター | 説明 | データ タイプ |
in_features | 調整対象の入力ラインまたはポリゴン フィーチャ。 | Feature Layer |
target_features | ターゲット フィーチャとなる入力ラインまたはポリゴン。 | Feature Layer |
search_distance | 一致候補の検索に使用される距離。ゼロより大きい距離を指定する必要があります。 優先的に適用される単位を選択することができます。デフォルトはフィーチャ単位です。 | Linear Unit |
match_fields [[source_field, target_field],...] (オプション) | 入力フィーチャおよびターゲット フィーチャのフィールド。これを指定すると、照合候補に対して各フィールド ペアがチェックされるため、正しい適合を特定するために役立ちます。 | Value Table |
派生した出力
名前 | 説明 | データ タイプ |
out_feature_class | 更新された入力フィーチャ。 | フィーチャ レイヤー |
コードのサンプル
AlignFeatures (フィーチャの形状に一致) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで AlignFeatures 関数を使用する方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.AlignFeatures_edit("countryA_border", "target_border", "25 Feet")
AlignFeatures (フィーチャの形状に一致) の例 2 (スタンドアロン スクリプト)
次のスタンドアロン スクリプトは、AlignFeatures 関数をスクリプティング環境で適用する方法の例を示しています。
import arcpy
import os
# all input data are in country.gdb and output will also go to this gdb
arcpy.env.workspace = os.path.join(os.getcwd(), "country.gdb")
try:
in_features_orig = "common_border"
in_features_copy = "common_border1"
# Make a copy of the original data
arcpy.CopyFeatures_management(in_features_orig, in_features_copy)
# Features to which input will be aligned
target_features = "country1_border"
search_dist = "100 Meters"
match_fields = "A_field B_field"
arcpy.AlignFeatures_edit(in_features_copy, target_features, search_dist, match_fields)
except arcpy.ExecuteError as aex:
print(arcpy.GetMessages(2))
except Exception as ex:
print(ex.args[0])
環境
ライセンス情報
- Basic: いいえ
- Standard: いいえ
- Advanced: はい