Disponible avec une licence Spatial Analyst.
Disponible avec une licence Image Analyst.
Résumé
Exécute une évaluation conditionnelle if/else sur chacune des cellules en entrée d'un raster en entrée.
Pour en savoir plus sur une évaluation conditionnelle à l'aide de l'outil Con
Illustration
Utilisation
Si le raster vrai ou le raster faux en option est à virgule flottante, le raster en sortie l’est également. Si l’expression vraie et le raster faux en sortie sont des entiers, le raster en sortie l’est également.
Si le raster conditionnel en entrée (in_conditional_raster dans Python) est un raster monocanal et que le raster vrai ou le raster de valeurs constantes en entrée (in_true_raster_or_constant dans Python), ou le raster faux ou le raster de valeurs constantes en entrée (in_false_raster_or_constant dans Python) est une constante, la sortie est un raster monocanal.
Si toutes les entrées sont des rasters multicanaux, la sortie est un raster multicanal. Le raster en sortie est également multicanal si l’entrée vraie ou l’entrée fausse en option est une constante. Le nombre de canaux de chaque entrée multicanal doit être identique.
L’outil exécute l’opération sur chaque canal du raster conditionnel, en utilisant le canal correspondant dans les autres entrées. Si l’entrée conditionnelle est un raster multicanal et que le raster vrai ou faux en entrée est une constante, l’outil exécute l’opération en utilisant la valeur constante de chaque canal de l’entrée multicanal.
Si l’évaluation de l’expression est différente de zéro, elle est considérée comme vraie.
Si vous n’indiquez pas un raster faux ou une valeur constante en entrée, la valeur NoData est affectée aux cellules dont l’expression ne fournit pas le résultat True (Vrai).
Si cette valeur NoData n'est pas conforme à l'expression, vous n'obtenez pas la valeur du raster false en entrée. Vous devez donc conserver la valeur NoData.
L'expression utilise une requête SQL. Reportez-vous aux rubriques suivantes pour en savoir 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.
Dans Python, vous pouvez éviter d’utiliser une {where_clause} spécifiant le champ Value en utilisant à la place une expression d’algèbre spatial comme in_conditional_raster.
Par exemple, l'expression suivante :
- Con("elev", 0, 1, "value > 1000")
peut être réécrite comme suit :
- Con(Raster("elev") > 1000, 0, 1)
Pour plus d’informations, reportez-vous aux exemples de code répertoriés ci-dessous ou consultez la rubrique Création d’instructions complexes en algèbre spatial.
La longueur maximale de l'expression logique est de 4 096 caractères.
Syntaxe
Con(in_conditional_raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
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. Il peut être de type entier ou à virgule flottante. | Raster Layer |
in_true_raster_or_constant | Entrée dont les valeurs seront utilisées en tant que valeurs de cellule en sortie si la condition est vraie. Il peut s'agir d'un raster de type entier ou à virgule flottante, ou d'une valeur constante. | Raster Layer; Constant |
in_false_raster_or_constant (Facultatif) | 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. "VALEUR > 100" est un exemple de where_clause. | SQL Expression |
Valeur renvoyée
Nom | Explication | Type de données |
out_raster | Raster en sortie. | Raster |
Exemple de code
Dans cet exemple, la valeur initiale est conservée dans la sortie lorsque la valeur du raster conditionnel en entrée est supérieure à 2 000. Lorsque ce n’est pas le cas, la valeur NoData est utilisée.
import arcpy
from arcpy import env
from arcpy.ia import *
env.workspace = "C:/output/data"
outCon = Con("elevation", "elevation", "", "VALUE > 2000")
outCon.save("C:/output/outcon.img")
# Execute Con using a map algebra expression instead of a where clause
outCon2 = Con(Raster("elevation") > 2000, "elevation")
outCon2.save("C:/output/outcon2")
Dans cet exemple, la valeur initiale est conservée dans la sortie, à l’exception de la valeur NoData, qui est remplacée par la valeur 0.
# Name: Con_Ex_02.py
# Description: Performs a conditional if/else evaluation
# on each pixel of an input raster.
# Requirements: Image Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.ia import *
# Set environment settings
env.workspace = "C:/output"
# Set local variables
inRaster = Raster("elevation")
inTrueRaster = 1
inFalseConstant = 0
whereClause = "VALUE >= 1500"
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute Con and save the output
outCon = Con(inRaster, inTrueRaster, inFalseConstant, whereClause)
outCon.save("C:/output/outcon.tif")
# Execute Con using a map algebra expression instead of a where clause, and save the output.
outCon2 = Con(inRaster >= 1500, inTrueRaster, inFalseConstant)
outCon2.save("C:/output/outcon2.tif")
Environnements
Informations de licence
- Basic: Requiert Image Analyst or Spatial Analyst
- Standard: Requiert Image Analyst or Spatial Analyst
- Advanced: Requiert Image Analyst or Spatial Analyst
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?