SetNull (Spatial Analyst)

Synthèse

La fonction SetNull définit les emplacements de cellule identifiés sur la valeur NoData en fonction des critères indiqués. Elle renvoie une valeur NoData si une évaluation conditionnelle est vraie et renvoie la valeur spécifiée par un autre raster si l’évaluation conditionnelle est fausse.

Pour en savoir plus sur la définition des valeurs de cellule sur NoData avec l'outil SetNull

Illustration

Illustration de l’outil SetNull
OutRas = SetNull(InRas1, InRas2, "Value = 4")

Utilisation

  • Si l'évaluation de la clause Where est vraie, l'emplacement de cellule dans le raster se verra attribuer la valeur NoData. Si l'évaluation est fausse, le raster en sortie sera défini par le raster de valeurs fausses ou la valeur constante en entrée.

  • Si aucune clause Where n'est spécifiée, le raster en sortie recevra un valeur NoData partout où le raster de condition est différent de 0.

  • Le raster de condition en entrée n'influe pas sur le type de données en sortie : nombre entier ou virgule flottante. Si le raster de valeurs fausses (ou la valeur constante) en entré contient des valeurs à virgule flottante, le raster en sortie contiendra des valeurs à virgule flottante. S'il ne contient que des entiers, la sortie sera un raster d'entiers.

  • Si le raster Input conditional raster (Raster de condition en entrée) (in_conditional_raster en Python) est un raster monocanal et que le raster Input false raster or constant value (Raster de valeurs fausses ou valeur constante en entrée) (in_false_raster_or_constant en Python) est une constante, la sortie sera un raster monocanal.

  • Si les deux entrées sont des rasters multicanaux, la sortie est un raster multicanal. Le raster en sortie est également multicanal si l’entrée de raster de valeurs fausses est une constante. Le nombre de canaux dans chaque entrée multi-canaux doit être identique.

  • L’outil exécute l’opération sur chaque canal du raster de condition, en utilisant le canal correspondant de l’autre entrée. Si l’entrée conditionnelle est un raster multicanal et que l’entrée de raster de valeurs fausses est une constante, l’outil exécute l’opération en utilisant la valeur constante de chaque canal de l’entrée multicanal.

  • L'expression utilise une requête SQL. Reportez-vous aux rubriques suivantes pour en savoir plus sur la création des requêtes :

  • Pour utiliser une clause {where_clause} dans Python, celle-ci doit être placée entre guillemets. Par exemple, "Value > 5000".

    Vous pouvez consulter l’aide pour obtenir plus d’informations sur la spécification d’une requête dans Python.

  • La longueur maximale de l'expression logique est de 4 096 octets.

Paramètres

ÉtiquetteExplicationType de données
Raster de condition en entrée

Raster en entrée représentant le résultat vrai ou faux de la condition souhaitée.

Il peut être de type entier ou à virgule flottante.

Raster Layer
Raster de valeurs fausses ou valeur constante en entrée

Entrée dont les valeurs seront utilisées en tant que valeurs de cellule en sortie si la condition est fausse.

Il peut s’agir d’un raster de type entier ou à virgule flottante ou d’une valeur constante.

Raster Layer; Constant
Expression
(Facultatif)

Expression logique qui détermine lesquelles des cellules en entrée sont vraies ou fausses.

La clause Where suit la forme générale d’une expression SQL. Elle peut être saisie directement, par exemple, VALUE > 100, en cliquant sur le bouton du mode Édition SQL Requête SQL. Si vous êtes en mode Modifier la clause Modifier la clause, vous pouvez commencer à créer l’expression en cliquant sur le bouton Ajouter une clause.

SQL Expression

Valeur renvoyée

ÉtiquetteExplicationType de données
Raster en sortie

Raster en sortie.

Si l'évaluation conditionnelle est vraie, la valeur NoData est renvoyée. Si elle est fausse, la valeur du deuxième raster en entrée est renvoyée.

Raster

SetNull(in_conditional_raster, in_false_raster_or_constant, {where_clause})
NomExplicationType de données
in_conditional_raster

Raster en entrée représentant le résultat vrai ou faux de la condition souhaitée.

Il peut être de type entier ou à virgule flottante.

Raster Layer
in_false_raster_or_constant

Entrée dont les valeurs seront utilisées en tant que valeurs de cellule en sortie si la condition est fausse.

Il peut s’agir d’un raster de type entier ou à virgule flottante ou d’une valeur constante.

Raster Layer; Constant
where_clause
(Facultatif)

Expression logique qui détermine lesquelles des cellules en entrée sont vraies ou fausses.

L’expression suit la forme générale d’une expression SQL. Un exemple de where_clause est "VALUE > 100".

SQL Expression

Valeur renvoyée

NomExplicationType de données
out_raster

Raster en sortie.

Si l'évaluation conditionnelle est vraie, la valeur NoData est renvoyée. Si elle est fausse, la valeur du deuxième raster en entrée est renvoyée.

Raster

Exemple de code

Exemple 1 d'utilisation de l'outil SetNull (fenêtre Python)

Dans cet exemple, toute cellule en entrée d'une valeur inférieure à 0 sera définie sur NoData dans le raster en sortie et les cellules restantes conserveront leur valeur d'origine.

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")
Exemple 2 d'utilisation de l'outil SetNull (script autonome)

Dans cet exemple, toute cellule en entrée dont la valeur est différente 7 sera définie sur NoData et les cellules dont la valeur est égale à 7 seront définies sur valeur 1 en sortie.

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

Rubriques connexes