Set NULL (Spatial Analyst)
サマリ
[Set Null] は、指定した条件に基づいて指定のセル位置を NoData に設定します。条件評価が True の場合は NoData、False の場合は別のラスタで指定した値を返します。
図
使用法
-
WHERE 句の評価が True の場合、出力ラスタでそのセル位置には NoData が割り当てられます。評価が偽の場合、出力ラスタは、入力 False ラスタまたは定数値によって定義されます。
-
WHERE 句が指定されていない場合、出力ラスタは条件ラスタが 0 でなければ必ず NoData になります。
-
入力条件ラスタは、出力データ タイプが整数と浮動小数のどちらになるかに影響しません。入力 False ラスタ(または定数値)に浮動小数値が含まれている場合、出力ラスタも浮動小数になります。すべてが整数値の場合、出力ラスタも整数ラスタになります。
-
論理式の最大長は 4,096 文字です。
-
Python の場合、{where_clause} は引用符で囲む必要があります。例: "Value > 5"。
構文
パラメータ | 説明 | データ タイプ |
in_conditional_raster |
目的の条件の結果(true または false)を表す入力ラスタ。 | Raster Layer |
in_false_raster_or_constant |
条件が false である場合に出力セル値として使用される値を持つ入力。 整数タイプまたは浮動小数点タイプのラスタ、もしくは定数値のいずれでもかまいません。 | Raster Layer | Constant |
where_clause (オプション) | 各入力セルが true であるか、もしくは false であるかを決定する論理式。 式は、SQL 式の一般的な形式に従います。 詳細については「ArcGIS で使用されるクエリ式への SQL リファレンス」と「Python でのクエリの指定」をご参照ください。 | SQL Expression |
戻り値
名前 | 説明 | データ タイプ |
out_raster |
出力ラスタ。 条件評価が True の場合、NoData が返されます。False の場合、2 番目の入力ラスタの値が返されます。 | Raster |
コードのサンプル
次の式では、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")
次の例では、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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute SetNull
outSetNull = SetNull(inRaster, inFalseRaster, whereClause)
# Save the output
outSetNull.save("C:/sapyexamples/output/outsetnull")