Disponible avec une licence Spatial 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 est vrai, voire faux, et qu'il est à virgule flottante, le raster en sortie sera à virgule flottante. Si les deux expressions sont des entiers, le raster en sortie est un entier.
Si l'évaluation de l'expression est différente de zéro, elle est traitée en tant que True.
Si vous n'indiquez pas de raster false en entrée ou que vous n'indiquez aucune constante, la valeur NoData est associée aux cellules dont l'expression ne fournit pas le résultat True.
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 plus sur la création des requêtes dans le Générateur de 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 clause {where_clause} spécifiant le champ Value en utilisant à la place une expression Algèbre spatial comme in_conditional_raster.
Par exemple, l'expression suivante :
- Con("elev", 0, 1, "value > 1000")
peut être réécrite de la façon suivante :
- 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 dans Algèbre spatial.
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.
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
Premier exemple d'utilisation de l'outil Con (fenêtre Python)
Dans cet exemple, la valeur initiale est conservée dans la sortie lorsque le raster conditionnel en entrée est supérieur à 2 000. Lorsque ce n'est pas le cas, la valeur NoData s'applique.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con("elevation", "elevation", "", "VALUE > 2000")
outCon.save("C:/sapyexamples/output/outcon.img")
# Execute Con using a map algebra expression instead of a where clause
outCon2 = Con(Raster("elevation") > 2000, "elevation")
outCon2.save("C:/sapyexamples/output/outcon2")
Exemple 2 d'utilisation de l'outil Con (fenêtre Python)
Dans cet exemple, la valeur d'origine sera conservée dans la sortie à l'exception de la valeur NoData, qui sera remplacée par la valeur 0.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con(IsNull("elevation"),0, "elevation")
outCon.save("C:/sapyexamples/output/outcon")
Exemple 3 d'utilisation de l'outil Con (fenêtre Python)
Dans cet exemple, deux rasters différents sont utilisés pour créer le raster de condition.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
inRaster1 = Raster("landuse")
inRaster2 = Raster("landuse2")
outCon = Con(((inRaster1 == 1) & (inRaster2 == 5)), inRaster1 + inRaster2, 99)
outCon.save("C:/sapyexamples/output/outcon")
Exemple 4 d'utilisation de l'outil Con (fenêtre Python)
Dans cet exemple, plusieurs outils Con sont utilisés dans une condition Con.
import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension = "Spatial"
env.workspace = "C:/sapyexamples/data"
inRas1 = Raster("inRaster")
outCon = Con(inRas1 < 45,1, Con((inRas1 >= 45) & (inRas1 < 47),2, Con((inRas1 >= 47) & (inRas1 < 49),3, Con(inRas1 >= 49,4))))
outCon.save("C:/sapyexamples/output/outcon")
Exemple 5 d'utilisation de l'outil Con (script autonome)
Dans notre exemple, la valeur du raster conditionnel en entrée est supérieure ou égale à 1 500. La valeur en sortie sera donc 1 ou 0 si la valeur du raster est inférieure à 1 500.
# Name: Con_Ex_02.py
# Description: Performs a conditional if/else evaluation
# on each cell of an input raster.
# 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 = Raster("elevation")
inTrueRaster = 1
inFalseConstant = 0
whereClause = "VALUE >= 1500"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute Con
outCon = Con(inRaster, inTrueRaster, inFalseConstant, whereClause)
# Execute Con using a map algebra expression instead of a where clause
outCon2 = Con(inRaster >= 1500, inTrueRaster, inFalseConstant)
# Save the outputs
outCon.save("C:/sapyexamples/output/outcon")
outCon2.save("C:/sapyexamples/output/outcon2")
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert Spatial Analyst
- ArcGIS Desktop Standard: Requiert Spatial Analyst
- ArcGIS Desktop Advanced: Requiert Spatial Analyst