Set Null (Spatial Analyst)

License Level:BasicStandardAdvanced

Summary

Set Null sets identified cell locations to NoData based on a specified criteria. It returns NoData if a conditional evaluation is true, and returns the value specified by another raster if it is false.

Learn more about setting cell values to NoData with Set Null

Illustration

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

Usage

Syntax

SetNull (in_conditional_raster, in_false_raster_or_constant, {where_clause})
ParameterExplanationData Type
in_conditional_raster

Input raster representing the true or false result of the desired condition.

Raster Layer
in_false_raster_or_constant

The input whose values will be used as the output cell values if the condition is false.

It can be an integer or a floating point raster, or a constant value.

Raster Layer | Constant
where_clause
(Optional)

A logical expression that determines which of the input cells are to be true or false.

The expression follows the general form of an SQL expression.

Consult the documentation for more information on the SQL reference for query expressions used in ArcGIS and specifying a query in Python.

SQL Expression

Return Value

NameExplanationData Type
out_raster

The output raster.

If the conditional evaluation is true, NoData is returned. If false, the value of the second input raster is returned.

Raster

Code Sample

SetNull example 1 (Python window)

In this example, any input cell with a value less than 0 will be set to NoData in the output raster, and the remaining cells will retain their original value.

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 example 2 (stand-alone script)

In this example, any input cell with a value other than 7 will be set to NoData, and cells that are 7 will be set to value 1 on the output.

# 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")

Environments

Related Topics

Licensing Information

ArcGIS for Desktop Basic: Requires Spatial Analyst
ArcGIS for Desktop Standard: Requires Spatial Analyst
ArcGIS for Desktop Advanced: Requires Spatial Analyst
11/8/2012