概要
別のレイヤーのフィーチャに対する空間リレーションシップに基づいて、レイヤーのフィーチャを選択します。
入力フィーチャ レイヤーの各フィーチャは、選択フィーチャ レイヤーまたはフィーチャクラスのフィーチャに対して評価され、指定したリレーションシップを満たすと、その入力フィーチャが選択されます。
使用法
入力として、フィーチャ レイヤーを指定します。フィーチャクラスは指定できません。
このツールは、ArcMap、ArcGlobe、または ArcScene のレイヤーの他、[フィーチャ レイヤーの作成 (Make Feature Layer)] ツールを使ってモデルやスクリプトに作成されたレイヤーに対して機能します。
空間リレーションシップを評価する際の座標系は、結果に影響を与えます。ある座標系で交差するフィーチャが、別の座標系でも交差するとは限りません。
- このツールは、空間リレーションシップを入力フィーチャ レイヤーのデータ ソース (ディスク上のフィーチャクラス) の座標系で評価します。空間リレーションシップを別の座標系で評価するには、出力座標系環境を設定します。
このツールを使って、同じレイヤー内の他のフィーチャへの空間リレーションシップに基づいて、フィーチャを選択することができます。例については、「レイヤー内での空間検索」をご参照ください。
[行のカウント (Get Count)] ツールを使用すると、[空間検索 (Select Layer By Location)] ツールで選択したフィーチャ数がわかります。この情報は、自動化されたワークフローの一部として分析を進める前に、フィーチャが目的の空間リレーションシップに一致しているかどうかを判断する際に役立ちます。
3 次元空間リレーションシップ (INTERSECT_3D および WITHIN_A_DISTANCE_3D) の使用方法の詳細については、「空間検索の 3D リレーションシップ」をご参照ください。
構文
arcpy.management.SelectLayerByLocation(in_layer, {overlap_type}, {select_features}, {search_distance}, {selection_type}, {invert_spatial_relationship})
パラメーター | 説明 | データ タイプ |
in_layer | select_features に対して評価されるフィーチャを含むレイヤー。このレイヤーに選択が適用されます。ディスク上のフィーチャクラスへのパスを入力として指定することはできません。 | Feature Layer; Mosaic Layer; Raster Catalog Layer |
overlap_type (オプション) | 評価される空間リレーションシップ。
| String |
select_features (オプション) | 入力フィーチャ レイヤーのフィーチャは、このレイヤーまたはフィーチャクラスのフィーチャとの関係に基づき、選択対象となります。 | Feature Layer |
search_distance (オプション) | このパラメーターは、overlap_type パラメーターが WITHIN_A_DISTANCE_GEODESIC, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_3D, INTERSECT, INTERSECT_3D, HAVE_THEIR_CENTER_IN, CONTAINS, または WITHIN のいずれかに設定された場合にのみ有効です。 WITHIN_A_DISTANCE_GEODESIC オプションを使用した場合、キロメートルやマイルなどの距離単位を使用する必要があります。 | Linear unit |
selection_type (オプション) | 選択をどのように入力に適用するか、および既存の選択とどのように統合するかを決定します。ここには、既存の選択を解除するオプションはありません。選択を解除するには、[属性検索 (Select Layer By Attribute)] ツールで CLEAR_SELECTION オプションを選択します。
| String |
invert_spatial_relationship (オプション) | このオプションによって、空間リレーションシップが評価された後、その結果をそのまま使用するか、反転して使用するかが決まります。たとえば、このオプションを使用すると、交差していないフィーチャまたは別のデータセット内のフィーチャから一定距離内にはないフィーチャのリストをすばやく取得することができます。
| Boolean |
派生した出力
名前 | 説明 | データ タイプ |
out_layer_or_view | 選択が適用された状態の更新された入力。 | フィーチャ レイヤー; ラスター カタログ レイヤー; モザイク レイヤー |
コードのサンプル
SelectLayerByLocation (空間検索) の例 1 (Python ウィンドウ)
次の 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 (空間検索) の例 2 (スタンドアロン スクリプト)
次のスタンドアロン スクリプトは、位置と属性検索に基づいてフィーチャを新しいフィーチャクラスに抽出するために、ワークフローで 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')[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))
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい