空間検索(Select Layer By Location) (データ管理)
サマリ
別のレイヤのフィーチャに対する空間リレーションシップに基づいて、レイヤのフィーチャを選択します。
[入力フィーチャ レイヤ] の各フィーチャは、[選択フィーチャ] レイヤまたはフィーチャクラスのフィーチャに対して評価され、指定した [リレーションシップ] を満たすと、その入力フィーチャが選択されます。
使用法
-
入力として、フィーチャ レイヤを指定します。フィーチャクラスは指定できません。
-
このツールの有効な入力は、ArcMap、ArcGlobe、または ArcScene のコンテンツ ウィンドウのレイヤ、または [フィーチャ レイヤの作成(Make Feature Layer)] ツールを使って ArcCatalog またはスクリプトに作成されたレイヤです。
-
空間リレーションシップを評価する際の座標系は、結果に影響を与えます。ある座標系で交差するフィーチャが、別の座標系でも交差するとは限りません。
-
このツールを使って、同じレイヤ内の他のフィーチャへの空間リレーションシップに基づいて、フィーチャを選択することができます。例については、「レイヤ内での空間検索」をご参照ください。
-
[行のカウント(Get Count)] ツールを使用すると、[空間検索(Select Layer By Location)] ツールで選択したフィーチャ数がわかります。この情報は、自動化されたワークフローの一部として分析を進める前に、フィーチャが目的の空間リレーションシップに一致しているかどうかを判断する際に役立ちます。
-
3 次元空間リレーションシップ(INTERSECT_3D および WITHIN_A_DISTANCE_3D)の詳細については、「空間検索の 3D リレーションシップ」をご参照ください。
構文
パラメータ | 説明 | データ タイプ |
in_layer |
選択フィーチャに対して評価されるフィーチャを含むレイヤ。このレイヤに選択が適用されます。入力として、ArcMap のコンテンツ ウィンドウのレイヤ、または [フィーチャ レイヤの作成(Make Feature Layer)] ツールを使って ArcCatalog またはスクリプトに作成されたレイヤを指定できます。ディスク上のフィーチャクラスへのパスを入力として指定することはできません。 | Feature Layer; Mosaic Layer; Raster Catalog Layer |
overlap_type (オプション) |
評価される空間リレーションシップ。
| String |
select_features (オプション) |
入力フィーチャ レイヤのフィーチャは、このレイヤまたはフィーチャクラスのフィーチャとの関係に基づき、選択対象となります。 | Feature Layer |
search_distance (オプション) |
このパラメータは、[リレーションシップ] パラメータが [WITHIN_A_DISTANCE]、[WITHIN_A_DISTANCE_3D]、[INTERSECT]、[INTERSECT_3D]、[HAVE_THEIR_CENTER_IN]、[CONTAINS]、または [WITHIN] のいずれかに設定されている場合のみ、有効になります。 | Linear unit |
selection_type (オプション) |
選択をどのように入力に適用するか、および既存の選択とどのように統合するかを決定します。ここには、既存の選択を消去するオプションはありません。選択を消去するには、[属性検索(Select Layer By Attribute)] ツールで [CLEAR_SELECTION] オプションを選択します。
| String |
コードのサンプル
次の Python ウィンドウ スクリプトは、SelectLayerByLocation(空間検索)関数をイミディエイト モードで使用する方法を、例を挙げて示したものです。
import arcpy
# First, make a layer from the feature class
arcpy.MakeFeatureLayer_management("c:/kamsack.gdb/parcel", "parcel_lyr")
# Then add a selection to the layer based on location to features in another feature class
arcpy.SelectLayerByLocation_management ("parcel_lyr", "have_their_center_in", "c:/kamsack.gdb/city_limits")
次のスタンドアロン スクリプトは、位置と属性検索に基づいてフィーチャを新しいフィーチャクラスに抽出するために、ワークフローで SelectLayerByLocation(空間検索)関数を使用する方法を示したものです。
# Name: ExtactFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a Location and an attribute query
# Import arcpy and set path to data
import arcpy
arcpy.env.workspace = "c:/data/mexico.gdb"
# Make a layer and select cities which overlap the chihuahua polygon
arcpy.MakeFeatureLayer_management('cities', 'cities_lyr')
arcpy.SelectLayerByLocation_management('cities_lyr', 'intersect', 'chihuahua')
# Within the previous selection sub-select cities which have population > 10,000
arcpy.SelectLayerByAttribute_management('cities_lyr',
'SUBSET_SELECTION', '"population" > 10000')
# If features matched criteria write them to a new feature class
matchcount = int(arcpy.GetCount_management('cities_lyr').getOutput(0))
if matchcount == 0:
print('no features matched spatial and attribute criteria')
else:
arcpy.CopyFeatures_management('cities_lyr', 'chihuahua_10000plus')
print('{0} cities that matched criteria written to {0}'.format(
matchcount, chihuahua_10000plus))