空間検索(Select Layer By Location) (データの管理)
サマリ
別のレイヤのフィーチャに対する空間リレーションシップに基づいて、レイヤのフィーチャを選択します。
[入力フィーチャ レイヤ] の各フィーチャは、[選択フィーチャ] レイヤまたはフィーチャクラスのフィーチャに対して評価され、指定した [リレーションシップ] を満たすと、その入力フィーチャが選択されます。
使用法
-
入力として、フィーチャ レイヤを指定します。フィーチャクラスは指定できません。
-
このツールの有効な入力は、ArcMap、ArcGlobe、または ArcScene のコンテンツ ウィンドウのレイヤ、または [フィーチャ レイヤの作成(Make Feature Layer)] ツールを使って ArcCatalog またはスクリプトに作成されたレイヤです。
-
空間リレーションシップを評価する際の座標系は、結果に影響を与えます。ある座標系で交差するフィーチャが、別の座標系でも交差するとは限りません。空間リレーションシップは、入力フィーチャ レイヤのデータ ソースの座標系で評価されます。出力座標系環境を設定すると、空間リレーションシップは指定した座標系で評価されます。ArcMap、ArcScene、および ArcGlobe の [選択] メニューにある [空間検索(Select Layer By Location)] 機能はすべて、アプリケーションの表示領域と同じ座標系でオペレーションを実行します。この座標系をこのジオプロセシング ツールと一致させるには、出力座標系を [表示領域に一致] に設定します。
-
このツールを使って、同じレイヤ内の他のフィーチャへの空間リレーションシップに基づいて、フィーチャを選択することができます。例については、「レイヤ内での空間検索」をご参照ください。
-
[行のカウント(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 criterias 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 criterias written to {0}'.format( matchcount, chihuahua_10000plus))