ポリゴン近接(Polygon Neighbors) (解析)
図
使用法
このツールは、ポリゴン隣接を解析して、以下の情報を要約します。
- 重複の面積(重複隣接 - オプション)
- 一致エッジの長さ(エッジ隣接)
- 境界が 1 つのポイントで交差または接触する回数(ノード隣接)
このツールは一次隣接のみを解析し、報告します。それ以外のリレーションシップ、つまり隣接の隣接(二次隣接)は検証しません。
一意のポリゴンまたはポリゴン グループを識別し、ポリゴンまたはポリゴン グループ別に隣接情報を報告するには、[フィールドごとにレポート] パラメータ(スクリプトでは in_fields)を使用します。入力の個々のポリゴンの隣接リレーションシップを検出するには、ポリゴンごとに一意の値(複数のフィールドを使用する場合は値セット)を格納する 1 つ以上の入力フィールドを指定します。
指定したフィールドによって一意のポリゴン グループが識別されると、グループ別に隣接情報が要約され、報告されます。
このパラメータの使用方法の詳細については、「ポリゴン近接(Polygon Neighbors)の仕組み」をご参照ください。
エリア重複リレーションシップを解析する場合は、[エリアの重複を含める] を使用できます。[エリアの重複を含める] を有効にすると、解析対象の重複隣接の重複の面積を格納する [AREA] フィールドが出力テーブルに含まれます。重複していない場合は、[AREA] フィールドは 0 になります。
ヒント:エリア重複リレーションシップの計算処理は、多くのリソースを消費するため、一致エッジおよびノード隣接リレーションシップの決定に比べて非常に性能が低下する可能性があります。データに重複フィーチャがないことがわかっている場合、または重複隣接を解析する必要がない場合は、ツールのダイアログ ボックスで [エリアの重複を含める] チェックボックスをオフにするか、スクリプトで area_overlap パラメータを NO_AREA_OVERLAP に設定してください。
注意:ダイアログ ボックスで [エリアの重複を含める] チェックボックスをオンにする、またはスクリプトで area_overlap パラメータを AREA_OVERLAP に設定する必要があるのは、ソース ポリゴンに完全に含まれている隣接フィーチャのレコードを取得する必要がある場合のみです。[エリアの重複を含める] チェックボックスがオフになっていると、ソース ポリゴンに完全に含まれている隣接フィーチャのレコードが出力テーブルに含まれません。
隣接フィーチャではないフィーチャについては、出力テーブルに情報は出力されません。
ツールのダイアログ ボックスの [隣接リレーションシップの両側を含める] チェックボックス(スクリプトでは both_sides パラメータ)は、出力に含まれるリレーションシップを制御するために使用します。相互リレーションシップを含むすべての隣接リレーションシップを報告するには、[隣接リレーションシップの両側を含める] チェックボックスをオンにします(スクリプトでは both_sides = "BOTH_SIDES" と設定します)。たとえば、OID1 の隣接フィーチャに OID2 がある場合、出力テーブルの OID1 には隣接フィーチャとして OID2 が書き出され、同様に OID2 には OID1 が書き出されます。前者のリレーションシップのみで足りる場合は、[隣接リレーションシップの両側を含める] チェックボックスをオフにします。上記の例で [隣接リレーションシップの両側を含める] チェックボックスをオフにすると、OID1 の隣接フィーチャに OID2 があるという情報のみが、出力テーブルに出力されます。
[出力距離の単位] は、隣接フィーチャ間で共有される境界線の長さに使用するための単位を指定します。デフォルトでは、入力フィーチャの座標系で定義されているものと同じ単位が使用されます。
[出力面積の単位] は、[エリアの重複] パラメータを有効にしている(スクリプトでは area_overlap = "AREA_OVERLAP" と設定している)場合にのみ使用します。[エリアの重複] を有効にした場合は、隣接フィーチャと重複する面積の計算に使用する単位を、[出力面積の単位] パラメータで指定します。デフォルトでは、入力フィーチャの座標系で定義されているものと同じ単位が使用されます。
出力テーブルには、次のフィールドが含まれます。
- src_field(s) - 接頭辞 src はソースであることを表します。これは [フィールドごとにレポート] パラメータで使用されるフィールドです(たとえば src_MYID)。[フィールドごとにレポート] パラメータで指定した数のフィールドが生成されます。
- nbr_field(s) - 接頭辞 nbr はソースであることを表します。これは [フィールドごとにレポート] パラメータで使用されるフィールドです(たとえば nbr_MYID)。src フィールドと同様に、[フィールドごとにレポート] パラメータで指定した数のフィールドが生成されます。
- AREA - このフィールドには、ソース ポリゴンと隣接ポリゴン(重複隣接)間の重複面積の合計が格納されます。このフィールドは、[エリアの重複を含める] チェックボックスがオンになっている(スクリプトでは area_overlap = "AREA_OVERLAP" と設定されている)場合にのみ出力テーブルに含まれます。
- LENGTH - このフィールドには、ソース ポリゴンと隣接ポリゴン間の一致エッジの長さの合計が格納されます。
- NODE_COUNT - このフィールドには、ソース ポリゴンと隣接ポリゴンが 1 つの点で交差または接触する回数が格納されます。
入力フィーチャに選択セットがある場合は、選択フィーチャのみが解析されます。
構文
パラメータ | 説明 | データ タイプ |
in_features |
入力ポリゴン フィーチャ。 | Feature Layer |
out_table |
出力テーブル。 | Table |
in_fields [in_fields,...] (オプション) |
一意のポリゴンまたはポリゴン グループを識別して出力に報告するために使用する 1 つ以上の入力属性フィールド。 | Field |
area_overlap (オプション) | 重複ポリゴンを解析し、出力に報告するかどうかを指定します。
| Boolean |
both_sides (オプション) | 出力に隣接リレーションシップの両側を含めるかどうかを指定します。
| Boolean |
cluster_tolerance (オプション) |
複数のメジャー値が同一と見なされるための最小距離。入力フィーチャの [XY 許容値] がデフォルト値となります。 | Linear unit |
out_linear_units (オプション) |
隣接するポリゴン間の一致エッジの長さの合計を報告するために使用する単位。デフォルトは入力フィーチャの単位です。 | String |
out_area_units (オプション) |
隣接するポリゴン間のエリア重複を報告するために使用する単位。デフォルトは入力フィーチャの単位です。このパラメータは、area_overlap パラメータが AREA_OVERLAP に設定されている場合にのみ使用できます。 | String |
コードのサンプル
カナダ、ノバスコシア州の各選挙区に隣接する選挙区を検出します。
import arcpy, sys
arcpy.env.overwriteOutput = True
arcpy.MakeFeatureLayer_management(r"C:\Data\Canada\CanadaElecDist.shp",r"Canada_ElectoralDist")
arcpy.SelectLayerByAttribute_management(r"Canada_ElectoralDist", "NEW_SELECTION", "\"PROVCODE\" = 'NS'")
print "Selected feature count: " + str(arcpy.GetCount_management(r"Canada_ElectoralDist"))
arcpy.PolygonNeighbors_analysis(r"Canada_ElectoralDist", "ENNAME", r"C:\Data\Output\NS_elec_neigh.dbf")
print arcpy.GetMessages()