SetNull (Spatial Analyst)

Disponible avec une licence Spatial Analyst.

Disponible avec une licence Image Analyst.

Synthèse

L’outil SetNull définit les emplacements de cellule identifiés sur la valeur NoData en fonction des critères indiqués. Il renvoie une valeur NoData si une évaluation conditionnelle est vraie et renvoie la valeur spécifiée par un autre raster si celle-ci 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 conditionnel en entrée (in_conditional_raster dans Python) est un raster monocanal et que le Raster de valeurs fausses ou valeur constante en entrée (in_false_raster_or_constant dans Python) est une constante, la sortie est 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 fausse est une constante. Le nombre de canaux de chaque entrée multicanale est identique.

  • L’outil exécute l’opération sur chaque canal du raster conditionnel, 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 fausse 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, elle doit être placée entre guillemets. Par exemple, "Valeur > 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 caractères.

  • Pour plus d’informations sur les environnements de géotraitement qui s’appliquent à cet outil, reportez-vous à la rubrique Environnements d’analyse et Spatial Analyst.

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 les cellules en entrée qui doivent être 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 Mode d’édition SQL Requête SQL. Si vous êtes en mode Edit Clause Mode (Mode Modifier la clause) Modifier la clause, vous pouvez commencer à créer l'expression en cliquant sur le bouton Add Clause Mode (Mode 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 les cellules en entrée qui doivent être 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")

Informations de licence

  • Basic: Nécessite Spatial Analyst ou Image Analyst
  • Standard: Nécessite Spatial Analyst ou Image Analyst
  • Advanced: Nécessite Spatial Analyst ou Image Analyst

Rubriques connexes