近接情報テーブルの生成(Generate Near Table) (解析)
サマリ
1 つ以上のフィーチャクラスまたはレイヤ内のフィーチャ間の、距離などの近接情報を計算します。入力を変更する [最近接(Near)] ツールとは異なり、[近接情報テーブルの生成(Generate Near Table)] は、結果を新しいスタンドアロン テーブルに書き込み、複数の近接フィーチャの検索をサポートします。
図
使用法
-
出力テーブルには、次のフィールドが含まれます。
Field Name
説明
IN_FID 入力フィーチャの ObjectID。
NEAR_FID 最近接フィーチャの ObjectID。
NEAR_DIST 入力フィーチャから近接フィーチャまでの距離。このフィールドの値の単位は、[メソッド] パラメータが GEODESIC に設定され、入力が地理座標系に存在する場合、入力フィーチャの座標系の距離単位、つまりメートルです。
NEAR_FC 近接フィーチャを含むフィーチャクラスのカタログ パス。このフィールドは、[最近接フィーチャ] が指定された場合にのみ、出力テーブルに追加されます。
NEAR_RANK 個々の入力フィーチャへの近さに基づいてすべての近接フィーチャをランク付けする整数値。最も近いフィーチャには 1 の NEAR_RANK 値が与えられ、2 番目に近いフィーチャには 2 の NEAR_RANK 値が与えられるというように、ランク付けされます。
[位置] パラメータがオン(スクリプトでは、location パラメータを LOCATION に設定)の場合、以下のフィールドが出力テーブルに追加されます。
Field Name
説明
FROM_X 近接フィーチャに最も近い入力フィーチャの位置の X 座標。
FROM_Y 近接フィーチャに最も近い入力フィーチャの位置の Y 座標。
NEAR_X 入力フィーチャに最も近い近接フィーチャの位置の X 座標。
NEAR_Y 入力フィーチャに最も近い近接フィーチャの位置の Y 座標。
[角度] パラメータがオン(スクリプトでは、angle パラメータを ANGLE に設定)の場合、以下のフィールドが出力テーブルに追加されます。
Field
説明
NEAR_ANGLE 入力フィーチャを近接フィーチャに接続するラインの、FROM_X と FROM_Y の位置での角度。
-
入力フィーチャと近接フィーチャが交差する場合、以下の値が出力テーブルに書き込まれます。
- NEAR_ANGLE と NEAR_DIST は、0.0 に設定されます。
- FROM_X と FROM_Y は、NEAR_X および NEAR_Y と同じ値になり、2 つのフィーチャが交差する領域内の位置になります。
-
NEAR_DIST フィールドの値の単位は、入力フィーチャの座標系の距離単位です。入力が地理座標系内にあり、[メソッド] パラメータが GEODESIC に設定された場合、NEAR_DIST の単位はメートルになります。
-
IN_FID を使用して出力テーブルを結合し、入力フィーチャに戻すことができます。あるいは、NEAR_FID を使用して出力テーブルを結合し、近接フィーチャに戻すことができます。
-
[検索範囲] を指定した場合に、近接フィーチャが検出されなければ、レコードは出力されません。
-
[検索範囲] を指定しない場合、近接するすべてのフィーチャが検索の対象になります。
-
[検索範囲] を指定せず、[最近接フィーチャのみを検索] をオフ(スクリプトでは、closest を ALL に設定)にし、[最大最近接フィーチャ数] をデフォルト(ゼロまたは未入力)のままにした場合、すべての入力フィーチャとすべての近接フィーチャ間の距離が計算されて出力テーブルに格納されます。このように指定した場合、処理時間が非常に長くなり、出力テーブルのサイズが大きくなることがあります。たとえば、1000 個の入力フィーチャと 1000 個の近接フィーチャが存在する場合、出力テーブルには 1,000,000 個のレコードが含まれます。
-
同じフィーチャクラスまたはレイヤを、入力フィーチャと近接フィーチャの両方に使用することができます。その場合、すべてのフィーチャの最近接フィーチャがそのフィーチャ自体になることを防ぐために、評価対象の入力フィーチャは、近接フィーチャの候補から除外されます。
-
[メソッド] パラメータで PLANAR オプションを使用する場合、入力フィーチャの座標系を、距離の測定に適した投影座標系(正距方位図法など)にする必要があります。
-
FROM_X、FROM_Y、NEAR_X、および NEAR_Y の位置を視覚化するには、出力テーブルを、[XY イベント レイヤの作成(Make XY Event Layer)] ツールまたは [XY 座標 → ライン(XY To Line)] ツールへの入力として使用します。
構文
パラメータ | 説明 | データ タイプ |
in_features |
ポイント、ポリライン、ポリゴン、またはマルチポイント タイプの入力フィーチャ。 | Feature Layer |
near_features [near_features,...] |
近接フィーチャの候補が含まれるフィーチャクラスの 1 つ以上のレイヤ。近接フィーチャとして、ポイント、ポリライン、ポリゴン、またはマルチポイントを使用できます。複数のレイヤまたはフィーチャクラスを指定した場合、NEAR_FC という名前のフィールドが入力テーブルに追加されます。このフィールドには、検出された最近接フィーチャを含むソース フィーチャクラスのパスが格納されます。同じフィーチャクラスまたはレイヤを、入力フィーチャと近接フィーチャの両方に使用することができます。 | Feature Layer |
out_table |
解析結果が格納される出力テーブル。 | Table |
search_radius (オプション) |
近接フィーチャの検索に使用される半径。この値を指定しない場合、すべての近接フィーチャが候補になります。距離を入力して、単位を空白のままにするか、[不明] に設定した場合、入力フィーチャの座標系の単位が使用されます。 [メソッド] パラメータで検索範囲オプションを使用した場合、キロメートルやマイルなどの距離単位を使用する必要があります。 | Linear unit |
location (オプション) |
入力フィーチャの位置および最も近い近接フィーチャの位置の XY 座標を、FROM_X、FROM_Y、NEAR_X、および NEAR_Y の各フィールドに書き込むかどうかを指定します。
| Boolean |
angle (オプション) |
近接角度を計算して出力テーブルの NEAR_ANGLE フィールドに書き込むかどうかを指定します。近接角度は、入力フィーチャとその最近接フィーチャを最も近い位置で接続するラインの方向を示します。method パラメータで PLANAR を使用した場合、角度の範囲は -180 〜 180°になり、0°は東、90°は北、180°(または -180°)は西、-90°は南を示します。GEODESIC を使用した場合、角度の範囲は -180 〜 180°になり、0°は北、90°は東、180°(または -180°)は南、-90°は西を示します。
| Boolean |
closest (オプション) |
最近接フィーチャのみを返すか、あるいは複数のフィーチャを返すかを指定します。
| Boolean |
closest_count (オプション) |
入力フィーチャごとにレポートされる近接フィーチャの数を制限します。このパラメータは、closest パラメータを CLOSEST に設定した場合、無視されます。 | Long |
method (オプション) |
楕円体(GEODESIC)または平面地球(PLANAR)のどちらで最短経路を使用するかを指定します。データが、距離の測定に適さない座標系(たとえば、Web メルカトルや任意の地理座標系)で格納されている場合、またはデータセットが広い地理範囲に広がっている場合、GEODESIC を使用することを強くお勧めします。
| String |
コードのサンプル
Python ウィンドウで GenerateNearTable(近接情報テーブルの作成)関数を使用する方法を以下に示します。
import arcpy
arcpy.env.workspace = "C:/data/input/gnt.gdb"
arcpy.GenerateNearTable_analysis("campsites", ["parks", "trails"], "better_sites")
次の Python スクリプトは、スタンドアロン スクリプトで GenerateNearTable(近接情報テーブルの作成)関数を使用する方法を示しています。
# Name: GenerateNearTable.py
# Description: Finds 3 nearest in the near feature class from the input feature class.
# import system modules
import arcpy
# set workspace environment
arcpy.env.workspace = "C:/data/input/gnt.gdb"
# set required parameters
in_features = "campsites"
near_features = ["parks", "trails"]
out_table = "near_parks_trails"
# optional parameters
search_radius = '1500 Meters'
location = 'NO_LOCATION'
angle = 'NO_ANGLE'
closest = 'ALL'
closest_count = 3
# find crime locations within the search radius
arcpy.GenerateNearTable_analysis(in_features, near_features, out_table, search_radius,
location, angle, closest, closest_count)