属性で抽出 (Extract by Attributes) (Spatial Analyst)

サマリー

論理検索に基づいてラスターのセルを抽出します。

属性で抽出の図
OutRas = ExtractByAttributes(InRas1, "Value > 0")

使用法

  • 入力ラスターからの追加属性 (存在する場合) は、そのまま出力ラスター属性テーブルに引き継がれます。 記録されるプロパティに応じて、一部の属性値は再計算が必要な場合があります。

  • [入力ラスター] (Python では in_raster) の値としてマルチバンド ラスターが指定された場合、すべてのバンドが使用されます。

    マルチバンド ラスターから選択したバンドを処理するには、まず、[コンポジット バンド (Composite Bands)] ツールを使用して、それら特定のバンドから構成されるラスター データセットを作成します。 次に、その結果を [入力ラスター] (Python では in_raster) の値として使用します。

    デフォルトの出力形式は、ジオデータベース ラスターです。 出力形式として Esri Grid スタックを指定した場合、スタックの名前を数字で開始したり、名前にスペースを使用したり、9 文字を超える名前にしたりすることはできません。

  • [WHERE 句] が true と評価されると、元の入力値がセル位置に返されます。 false と評価されると、セル位置には NoData が割り当てられます。

  • [WHRE 句] は SQL クエリを使用します。 クエリを作成する方法の詳細については、以下のトピックをご参照ください。

  • Python で {where_clause} を使用するには、これを引用符で囲む必要があります。 例: "Value > 5000"

    Python でのクエリの指定については、ヘルプをご参照ください。

  • 入力ラスターの Value 以外のアイテムがクエリで指定されている場合は、元の入力値がセル位置に返されます。

  • 入力ラスターが整数の場合、出力ラスターも整数になります。 入力のいずれかが浮動小数点値である場合、出力は浮動小数点値になります。

  • このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。

パラメーター

ラベル説明データ タイプ
入力ラスター

セルを抽出する入力ラスター。

Raster Layer
WHERE 句

ラスター セルのサブセットを選択する論理式。

[WHERE 句] は、SQL 式の一般的な形式に従います。 [SQL 編集] モード ボタン SQL クエリ をクリックすると、「VALUE > 100」のように直接入力することが可能です。 [項目の編集モード] 項目の編集 では、[項目の追加モード] ボタンをクリックすると式の構築を開始できます。

SQL Expression

戻り値

ラベル説明データ タイプ
出力ラスター

入力ラスターから抽出したセル値が格納される出力ラスター。

Raster

ExtractByAttributes(in_raster, where_clause)
名前説明データ タイプ
in_raster

セルを抽出する入力ラスター。

Raster Layer
where_clause

ラスター セルのサブセットを選択する論理式。

式は、SQL 式の一般的な形式に従います。 where_clause の例: "VALUE > 100"

SQL Expression

戻り値

名前説明データ タイプ
out_raster

入力ラスターから抽出したセル値が格納される出力ラスター。

Raster

コードのサンプル

ExtractByAttributes の例 1 (Python ウィンドウ)

次の例では、論理検索に基づいてラスターからセルを抽出しています。WHERE 句の評価は、1,000 メートルより大きいことです。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
attExtract = ExtractByAttributes("elevation", "VALUE > 1000") 
attExtract.save("c:/sapyexamples/output/attextract")
ExtractByAttributes の例 2 (スタンドアロン スクリプト)

次の例では、論理検索に基づいてラスターからセルを抽出しています。WHERE 句の評価は、1,000 メートルより大きいことです。

# Name: ExtractByAttributes_Ex_02.py
# Description: Extracts the cells of a raster based on a logical query. 
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "elevation"
inSQLClause = "VALUE > 1000"

# Execute ExtractByAttributes
attExtract = ExtractByAttributes(inRaster, inSQLClause) 

# Save the output 
attExtract.save("c:/sapyexamples/output/attextract02")

関連トピック