Set Null (Spatial Analyst)

サマリー

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

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

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

使用法

  • WHERE 句の評価が True の場合、出力ラスターでそのセル位置には NoData が割り当てられます。 評価が偽の場合、出力ラスターは、入力 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 文字です。

パラメーター

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

目的の条件の 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")

関連トピック