SetNull (Spatial Analyst)
Récapitulatif
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
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.
-
La longueur maximale de l'expression logique est de 4 096 caractères.
-
Dans Python, la clause {where_clause} doit être placée entre guillemets, par exemple, "Value > 5".
Syntaxe
Paramètre | Explication | Type de données |
in_conditional_raster |
Raster en entrée représentant le résultat vrai ou faux de la condition souhaitée. | 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. Consultez la documentation pour plus d'informations sur la référence SQL pour les expressions de requête utilisées dans ArcGIS et la définition d'une requête dans Python. | SQL Expression |
Valeur renvoyée
Nom | Explication | Type 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
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")
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"
# 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")