Spatial Analyst のライセンスで利用可能。
サマリ
[Set Null] は、指定した条件に基づいて指定のセル位置を NoData に設定します。条件評価が True の場合は NoData、False の場合は別のラスターで指定した値を返します。
図
使用法
WHERE 句の評価が True の場合、出力ラスターでそのセル位置には NoData が割り当てられます。評価が偽の場合、出力ラスターは、入力 False ラスターまたは定数値によって定義されます。
WHERE 句が指定されていない場合、出力ラスターは条件ラスターが 0 でなければ必ず NoData になります。
入力条件ラスターは、出力データ タイプが整数と浮動小数のどちらになるかに影響しません。入力 False ラスター (または定数値) に浮動小数値が含まれている場合、出力ラスターも浮動小数になります。すべてが整数値の場合、出力ラスターも整数ラスターになります。
[式] は SQL クエリを使用します。[検索条件設定] で条件式を作成する方法の詳細は、次のトピックをご参照ください。
-
Python で {where_clause} を使用するには、これを引用符で囲む必要があります。例: "Value > 5000"。
Python でのクエリの指定については、ヘルプをご参照ください。
論理式の最大長は 4,096 文字です。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
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"
# 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")
環境
ライセンス情報
- ArcGIS for Desktop Basic: 次のものが必要 Spatial Analyst
- ArcGIS for Desktop Standard: 次のものが必要 Spatial Analyst
- ArcGIS for Desktop Advanced: 次のものが必要 Spatial Analyst