属性検索(Select Layer By Attribute) (データ管理)
サマリ
属性検索に基づいて、レイヤまたはテーブル ビューでの選択を追加、更新、または削除します。
使用法
-
入力として、フィーチャ レイヤまたはテーブル ビューのいずれかを指定する必要があります。フィーチャクラスまたはテーブルを入力として指定することはできません。
-
このツールは、ArcMap のコンテンツ ウィンドウのレイヤまたはテーブル ビューの他、[フィーチャ レイヤの作成(Make Feature Layer)] または [テーブル ビューの作成(Make Table View)] ツールを使ってスクリプトに作成されたレイヤまたはテーブル ビューに対して機能します。
-
範囲環境が指定されている場合や、入力レイヤまたはテーブル ビューにフィルタ設定がある場合、範囲内またはフィルタ設定に一致するフィーチャまたは行だけを選択できます。
-
[行のカウント(Get Count)] ツールを使用して、選択したフィーチャや行の数を特定できます。これは特に、スクリプトやモデルで、さらに処理が必要かどうかを判断する場合に便利です。
構文
パラメータ | 説明 | データ タイプ |
in_layer_or_view |
選択するフィーチャ レイヤまたはテーブル ビュー。 入力として、ArcMap のコンテンツ ウィンドウのレイヤまたはテーブル ビュー、または [フィーチャ レイヤの作成(Make Feature Layer)] や [テーブル ビューの作成(Make Table View)] ツールを使って ArcCatalog またはスクリプトに作成されたレイヤまたはテーブル ビューを指定できます。 | Table View; Raster Layer; Mosaic Layer |
selection_type (オプション) |
どのように選択を適用するか、選択がすでに存在する場合にはそれをどうするかを決定します。
| String |
where_clause (オプション) |
レコードのサブセットを選択するために使用する SQL 式。この式の構文はデータ ソースによって多少異なります。たとえば、クエリ対象がファイル ジオデータベース、ArcSDE ジオデータベース、シェープファイル、カバレッジ、dBASE、または INFO テーブルの場合は、次のようにフィールド名を二重引用符で囲みます。 "MY_FIELD" クエリ対象がパーソナル ジオデータベースの場合は、以下のようにフィールドを角括弧で囲みます。 [MY_FIELD] Python では、文字列を単一引用符または二重引用符で囲みます。SQL 式の WHERE 句などで通常行われるように、引用符を含む文字列を作成する場合は、引用符を円記号(\)でエスケープするか、文字列を三重引用符で囲みます。たとえば、次のような WHERE 句を記述する場合、 "CITY_NAME" = 'Chicago' 次のように文字列全体を二重引用符で囲み、内部の二重引用符をエスケープします。 " \"CITY_NAME\" = 'Chicago' " または、次のように文字列全体を単一引用符で囲み、内部の単一引用符をエスケープします。 ' "CITY_NAME" = \'Chicago\' ' あるいは、次のようにエスケープしないで文字列全体を三重引用符で囲みます。 """ "CITY_NAME" = 'Chicago' """ SQL 構文の詳細とデータ ソースによる違いについては、ヘルプ トピックの「ArcGIS で使用されるクエリ式への SQL リファレンス」をご参照ください。 | SQL Expression |
コードのサンプル
次の Python ウィンドウ スクリプトは Select Layer By Attribute(属性検索)関数をイミディエイト モードで使用する方法を、例を挙げて示したものです。
import arcpy
arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr")
arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
次のスタンドアロン スクリプトは、位置と属性検索に基づいてフィーチャを新しいフィーチャクラスに抽出するために、ワークフローで Select Layer By Attribute(属性検索)関数を使用する方法を示したものです。
# Name: ExtactFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a spatial relationships to another layer AND an attribute query
# Author: ESRI
# Import system modules
import arcpy
# Set the workspace
env.workspace = "c:/data/mexico.gdb"
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("cities", "lyr")
# Select all cities which overlap the chihuahua polygon
arcpy.SelectLayerByLocation_management("lyr", "intersect", "chihuahua", 0, "new_selection")
# Within selected features, further select only those cities which have a population > 10,000
arcpy.SelectLayerByAttribute_management("lyr", "SUBSET_SELECTION", ' "population" > 10000 ')
# Write the selected features to a new featureclass
arcpy.CopyFeatures_management("lyr", "chihuahua_10000plus")