ラバーシート リンクの生成(Generate Rubbersheet Links) (編集)
サマリ
ソース ライン フィーチャがターゲット ライン フィーチャと空間的に一致する場所を検索し、ソースの位置からそれに対応するターゲットの位置へ、ラバーシートを行うためのリンクを表すラインを生成します。
図
使用法
-
異なるデータ ソースのライン フィーチャが同じ領域内に広がっている場合(たとえば、市の行政機関が管理する道路と、商用データ プロバイダが提供する同じ市の道路)、それらのライン フィーチャは、不整合なデータ コレクションなどの理由により、完全な 1 列にならない場合があります。対応するフィーチャ間に生じる空間的なずれは、多くの場合、均一ではありません。あるソースのデータの精度が他のソースよりも低いことがわかっている場合、ラバーシート アジャストによって、そのデータの精度を改善できます。ラバーシート アジャストは、このツールを使用してラバーシート リンクを生成してから、[フィーチャのラバーシート(Rubbersheet Features)] を使用して調整することで行います。ライン フィーチャの 2 つのセットは、ソース フィーチャおよび(通常はより精度の高い)ターゲット フィーチャと呼ばれます。このツールは、指定された検索距離の範囲内で対応するソース ラインとターゲット ラインを検索し、それらのライン間にラバーシート リンク(移動リンクとも呼ぶ)を生成します。
-
入力データのすべての領域の範囲は、処理範囲として使用されます。使用されるソース フィーチャとターゲット フィーチャの数は、処理メッセージにレポートされます。
-
出力フィーチャクラスには、[フィーチャのラバーシート(Rubbersheet Features)] ツールに入力する標準のラバーシート リンクを表すラインが格納されます。標準のリンクは、ソースの位置を、一致するが同一ではないターゲットの位置に接続します。
これらのリンクを、他のライン フィーチャと同様に、マップ上に表示できます。ラインの端に矢印を付けて描画し、上の図に示すようなマップを作成できます。
-
このツールは、出力ライン フィーチャクラスの他に、固定リンクが格納されたポイント フィーチャクラスを作成します。固定リンクは、ソースの位置を、一致する同一のターゲットの位置に接続します。固定リンクの位置は、ラバーシートで移動されません。一致する同一のソースおよびターゲットの位置が存在しない場合、固定リンクは生成されません。その場合、出力ポイント フィーチャクラスは空になります。ポイント フィーチャクラスが空でない場合にのみ、それを [フィーチャのラバーシート(Rubbersheet Features)] ツールの入力として指定する必要があります。出力ポイント フィーチャクラスは出力フィーチャクラスと同じ位置にあり、出力フィーチャクラスと同じ名前を持ちますが、_pnt という接尾辞が付きます。たとえば、出力フィーチャクラスの名前が outputLinks である場合、出力ポイント フィーチャクラスの名前は outputLinks_pnt になります。
-
2 つの出力(標準のラバーシート リンクと固定リンク)には、以下のフィールドが存在します。
- SRC_FID - リンクの始点なるソース フィーチャ ID。この位置が複数のソース フィーチャで共有される場合(たとえば、道路の交差点)、この値は -1 になります。
- TGT_FID - リンクの終点になるターゲット フィーチャ ID。この位置が複数のターゲット フィーチャで共有される場合(たとえば、道路の交差点)、この値は -1 になります。
-
[検索距離] パラメータは、一致候補の検索で使用されます。対応するフィーチャ間のずれの大部分を捉えることができるくらいの十分な大きさの距離を使用しますが、候補が多くなって不必要な処理が発生し、不正な一致が得られる場合があるため、この値を大きくし過ぎないでください。
-
フィーチャの照合は、ラインのトポロジ、パターン、および地理的な特徴を分析することによって実行されます。フィーチャが空間的に一致すると、ソースの位置からそれに対応するターゲットの位置までラバーシート リンクが生成されます。ソース フィーチャがパラメトリック カーブ(トゥルー カーブ)である場合、カーブ沿いの密度の高い場所でリンクが生成されます。
-
-
[マッチ フィールド] パラメータで 1 つ以上のフィールドのペアを指定した場合、空間的に一致する候補がそれらのフィールド値についてチェックされ、正確な一致を決定できます。たとえば、道路名が格納された STREET_NAME フィールドが、ソース フィーチャとターゲット フィーチャの両方に存在するとします。1 つのソース フィーチャが 2 つのターゲット フィーチャに空間的に一致していて、1 つのターゲット フィーチャのみがソース フィーチャと同じ STREET_NAME 値を持っている場合、このターゲット フィーチャの方が一致の度合いが高くなります。テキスト文字列の比較では、大文字と小文字が区別されません。つまり、「First St」は、「first st」と同じであると見なされます。
-
[出力一致テーブル] の指定は任意です。この一致テーブルには、ソース FID とターゲット FID、一致グループ、一致関係、空間と属性の一致条件から得られた一致の信頼度など、フィーチャの完全な照合情報が含まれています。この情報によって、一致状況を理解し、照合後の検査、編集、および解析を容易に行うことができます。詳細については、「フィーチャの照合と一致テーブル」をご参照ください。
-
フィーチャの照合の精度は、データの品質、複雑さ、および 2 つの入力の類似性に依存します。
前処理でデータ エラーを最小化し、関連するフィーチャを入力として選択する必要があります。一般に、入力データセット内のフィーチャがトポロジ的に正しく、有効なジオメトリを有しており、シングルパートであって重複していないことは、常に役立ちます。そうでない場合、予期しない結果が発生するおそれがあります。
-
結果を確認し、必要に応じて修正することをお勧めします。後処理で検査と編集を行うときに、既存の編集ツールを使用してリンクを編集できます。たとえば、必要に応じて不要なリンクを削除したり、リンクの始点または終点を移動して変更したり、新しいリンクを追加したりできます。それに応じて、必ず SRC_FID と TGT_FID を更新してください。
すべての入力は、同じ座標系に存在する必要があります。
構文
パラメータ | 説明 | データ タイプ |
source_features |
ラバーシート リンクを生成するためのソース フィーチャになるライン フィーチャ。すべてのリンクは、ソース フィーチャから始まります。 | Feature Layer |
target_features |
ラバーシート リンクを生成するためのターゲット フィーチャになるライン フィーチャ。すべてのリンクは、一致するターゲット フィーチャで終わります。 | Feature Layer |
out_feature_class |
標準のラバーシート リンクを表すラインが格納される出力フィーチャクラス。 | Feature Class |
search_distance |
一致候補の検索に使用される距離。ゼロより大きい距離を指定する必要があります。優先的に適用される単位を選択することができます。デフォルトはフィーチャ単位です。 | Linear unit |
match_fields [[source_field, target_field],...] (オプション) |
ソース フィーチャおよびターゲット フィーチャのフィールドのリスト。これを指定した場合、各フィールドのペアについて一致候補がチェックされ、正しい一致を決定できます。 | Value Table |
out_match_table (オプション) |
フィーチャの完全な照合情報が格納される出力テーブル。 | Table |
コードのサンプル
次の Python ウィンドウ スクリプトで、GenerateRubbersheetLinks(ラバーシート リンクの生成)関数をイミディエイト モードで使用する方法を示します。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateRubbersheetLinks_edit("source_Roads.shp", "target_Roads.shp",
"rubbersheet_Links.shp", "25 Feet")
次のスタンドアロン Python スクリプトは、GenerateRubbersheetLinks(ラバーシート リンクの生成)関数をスクリプティング環境に適用する例を示しています。
# Name: GenerateRubbersheetLinks_example_script2.py
# Description: Generates links for rubbersheeting spatial adjustment. The links go
# from base road data to newly updated road data. The links are then
# analyzed for potential errors; they are finally used to adjust the
# base roads (a copy is made) to better align with the updated roads.
# 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
sourceFeatures = "baseRoads"
targetFeatures = "updateRoads"
grlOutput = "grlinks_out"
grlOutputPts = "grlinks_out_pnt"
search_distance = "300 Feet"
match_fields = "FULLNAME RD_NAME"
qaLocations = "qa_locations"
# Generate rubbersheet links
arcpy.GenerateRubbersheetLinks_edit(sourceFeatures, targetFeatures, grlOutput, search_distance, match_fields)
# ====================================================================================
# Note 1: The result of GenerateRubbersheetLinks may contain errors; see tool reference.
# Inspection and editing may be necessary to ensure correct links before using
# them for rubbersheeting.
#
# One of the common errors are 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(grlOutput, 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 sourceFeatures for rubbersheeting
arcpy.CopyFeatures_management(sourceFeatures, "sourceFeatures_Copy")
# Use the links for rubbersheeting
arcpy.RubbersheetFeatures_edit("sourceFeatures_Copy", grlOutput, grlOutputPts, "LINEAR")