Set Null (Spatial Analyst)

Spatial Analyst のライセンスで利用可能。

Image Analyst ライセンスで利用できます。

サマリー

[Set Null] は、指定した条件に基づいて指定のセル位置を NoData に設定します。条件評価が True の場合は NoData、False の場合は別のラスターで指定した値を返します。

Set Null でセル値を NoData に設定する方法の詳細

Set Null の図
OutRas = SetNull(InRas1, InRas2, "Value = 4")

使用法

  • WHERE 句の評価が True の場合、出力ラスターでそのセル位置には NoData が割り当てられます。 評価が False の場合、出力ラスターは、入力 False ラスターまたは定数値によって定義されます。

  • WHERE 句が指定されていない場合、出力ラスターは条件ラスターが 0 でなければ必ず NoData になります。

  • 入力条件ラスターは、出力データ タイプが整数と浮動小数のどちらになるかに影響しません。 入力 False ラスター (または定数値) に浮動小数値が含まれている場合、出力ラスターも浮動小数になります。 すべてが整数値の場合、出力ラスターも整数ラスターになります。

  • [入力条件ラスター] (Python では in_conditional_raster) がシングルバンド ラスターであり、[条件式が FALSE のときの入力ラスター、または定数値] (Python では in_false_raster_or_constant) ラスターが定数である場合、出力はシングルバンド ラスターになります。

  • 両方の入力がマルチバンド ラスターである場合、出力はマルチバンド ラスターになります。 false ラスター入力が定数である場合にも、出力ラスターはマルチバンドになります。 各マルチバンド入力のバンド数は同一である必要があります。

  • このツールでは、他の入力の対応するバンドを使用して、条件ラスターに含まれるバンドごとに演算が実行されます。 条件付き入力がマルチバンド ラスターであり、false ラスター入力が定数である場合、このツールでは、定数値を使用して、マルチバンド入力に含まれるバンドごとに演算が実行されます。

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

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

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

  • 論理式の最大長は 4,096 文字です。

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

パラメーター

ラベル説明データ タイプ
入力条件付きラスター

目的の条件の結果 (true または false) を表す入力ラスター。

整数タイプでも浮動小数点タイプでもかまいません。

Raster Layer
条件式が FALSE のときの入力ラスター、または定数値

条件が false である場合に出力セル値として使用される値を持つ入力。

整数タイプまたは浮動小数点タイプのラスター、もしくは定数値のいずれでもかまいません。

Raster Layer; Constant
(オプション)

各入力セルが true であるか、もしくは false であるかを決定する論理式。

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

SQL Expression

戻り値

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

出力ラスター。

条件評価が True の場合、NoData が返されます。 False の場合、2 番目の入力ラスターの値が返されます。

Raster

SetNull(in_conditional_raster, in_false_raster_or_constant, {where_clause})
名前説明データ タイプ
in_conditional_raster

目的の条件の結果 (true または false) を表す入力ラスター。

整数タイプでも浮動小数点タイプでもかまいません。

Raster Layer
in_false_raster_or_constant

条件が false である場合に出力セル値として使用される値を持つ入力。

整数タイプまたは浮動小数点タイプのラスター、もしくは定数値のいずれでもかまいません。

Raster Layer; Constant
where_clause
(オプション)

各入力セルが true であるか、もしくは false であるかを決定する論理式。

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

SQL Expression

戻り値

名前説明データ タイプ
out_raster

出力ラスター。

条件評価が True の場合、NoData が返されます。 False の場合、2 番目の入力ラスターの値が返されます。

Raster

コードのサンプル

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

次の式では、0 よりも大きい値を持つ入力セルが NoData に設定され、残りのセルは元の値を保持します。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outSetNull = SetNull("elevation", "elevation", "VALUE < 0")
outSetNull.save("C:/sapyexamples/output/outsetnull.img")
SetNull の例 2 (スタンドアロン スクリプト)

次の例では、7 以外の値を持つ入力セルが NoData に設定され、7 の値を持つセルは出力で値 1 に設定されます。

# Name: SetNull_Ex_02.py
# Description: Returns NoData if a conditional evaluation is 
#              true and returns the value specified by another
#              raster if it is false, on a cell-by-cell basis.
# 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 = "landclass"
inFalseRaster = 1
whereClause = "VALUE <> 7"

# Execute SetNull
outSetNull = SetNull(inRaster, inFalseRaster, whereClause)

# Save the output 
outSetNull.save("C:/sapyexamples/output/outsetnull")

関連トピック