インターセクト(Intersect) (解析)
サマリ
入力フィーチャの交差部分を求めます。すべてのレイヤおよびフィーチャクラスについて、重なり合うフィーチャまたはフィーチャ部分が出力フィーチャクラスに書き出されます。
図
使用法
-
入力フィーチャは、ポイント、マルチポイント、ライン、またはポリゴンのシンプル フィーチャである必要があります。アノテーション フィーチャ、ディメンション フィーチャ、ネットワーク フィーチャなどのコンプレックス フィーチャは使用できません。
-
入力のジオメトリ タイプが異なる場合(ポリゴンにラインを交差させる場合や、ラインにポイントを交差させる場合など)、出力フィーチャクラスのジオメトリのタイプは、デフォルトで最も低い次元であるジオメトリの入力フィーチャと同一になります。たとえば、1 つ以上の入力のタイプがポイントである場合、デフォルトの出力はポイントになり、1 つ以上の入力のタイプがラインである場合は、デフォルトの出力はラインになります。また、すべての入力がポリゴンである場合には、デフォルトの出力はポリゴンになります。
-
出力タイプは、最も低い次元のジオメトリまたはより低い次元であるジオメトリの入力フィーチャのものになります。たとえば、すべての入力がポリゴンの場合、出力はポリゴン、ライン、またはポイントのいずれかである可能性があります。入力の 1 つのタイプがラインであり、ポイントの入力がない場合は、出力はラインまたはポイントである可能性があります。入力のいずれかがポイントである場合、出力タイプはポイントのみになります。
-
入力フィーチャクラスの属性値が出力フィーチャクラスにコピーされます。ただし、[フィーチャ レイヤの作成(Make Feature Layer)] ツールで作成した 1 つ以上のレイヤを入力として使用し、フィールドの [比率ポリシーの使用] をオンにしている場合は、入力属性値の比率が計算され、出力属性値に適用されます。[比率ポリシーの使用] が有効な場合、オーバーレイ操作でフィーチャが分割されると、入力フィーチャの属性値の比率が出力フィーチャの属性に適用されます。入力フィーチャ ジオメトリが分割された比率に基づいて、出力値が決定されます。たとえば、入力ジオメトリが等分割された場合、入力フィーチャの属性値の 2 分の 1 が新しいフィーチャの属性値となります。[比率ポリシーの使用] は数値フィールドにのみ適用されます。
注意:ジオプロセシング ツールは、ジオデータベース フィーチャクラスまたはテーブル フィールドのスプリット ポリシーに従いません。
-
このツールは非常に大きなデータセットをタイル化し、パフォーマンスとスケーラビリティを向上します。詳細については、「大きなデータセットのジオプロセシング」をご参照ください。
ArcGIS for Desktop Basic および Standard ライセンスの場合、入力フィーチャクラスまたはレイヤの数が 2 つに制限されます。
構文
パラメータ | 説明 | データ タイプ |
in_features [in_features, {Rank},...] |
入力フィーチャクラスまたはレイヤのリストフィーチャ間の距離がクラスタ許容値より小さい場合、低ランクのフィーチャが高ランクのフィーチャにスナップします。最高ランクは 1 です。詳細については、「優先度およびジオプロセシング ツール」をご参照ください。 | Value Table |
out_feature_class |
出力フィーチャクラス。 | Feature Class |
join_attributes (オプション) |
入力フィーチャのどの属性を出力フィーチャクラスへ渡すかを指定します。
| String |
cluster_tolerance (オプション) |
すべてのフィーチャ座標(ノードと頂点)の最短距離、および X 方向、Y 方向、XY 方向に座標を移動できる距離。 | Linear unit |
output_type (オプション) |
検出したい交差のタイプを選択します。
| String |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで Intersect(インターセクト)関数を使用する方法を示しています。
import arcpy
from arcpy import env
env.workspace = "C:/data/RedRiver_basin.gdb"
arcpy.Intersect_analysis (["vegetation_stands", "road_buffer200m", "water_buffer100"], "mysites", "ALL", "", "")
arcpy.Intersect_analysis ([["vegetation_stands", 2], ["road_buffer200m", 1], ["water_buffer100", 2]], "mysites_ranked", "ALL", "", "")
以下のスタンドアロン スクリプトは、他の分析ツールを使ったワークフローの一部として、すべての河川の交差の 100 メートル以内の植生タイプを特定するために Intersect(インターセクト)関数を使用します。
#Name: VegRoadIntersect.py
# Purpose: Determine the type of vegetation within 100 meters of all stream crossings
#Author: ESRI
# Import system modules
import arcpy
from arcpy import env
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
env.workspace = "c:/data/data.gdb"
# Process: Find all stream crossings (points)
inFeatures = ["roads", "streams"]
intersectOutput = "stream_crossings"
clusterTolerance = 1.5
arcpy.Intersect_analysis(inFeatures, intersectOutput, "", clusterTolerance, "point")
# Process: Buffer all stream crossings by 100 meters
bufferOutput = "stream_crossings_100m"
bufferDist = "100 meters"
arcpy.Buffer_analysis(intersectOutput, bufferOutput, bufferDist)
# Process: Clip the vegetation feature class to stream_crossing_100m
clipInput = "vegetation"
clipOutput = "veg_within_100m_of_crossings"
arcpy.Clip_analysis(clipInput, bufferOutput, clipOutput)
# Process: Summarize how much (area) of each type of vegetation is found
#within 100 meter of the stream crossings
statsOutput = "veg_within_100m_of_crossings_stats"
statsFields = [["shape_area", "sum"]]
caseField = "veg_type"
arcpy.Statistics_analysis(clipOutput, statsOutput, statsFields, caseField)
except Exception, e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "Line %i" % tb.tb_lineno
print e.message