Con (Spatial Analyst)

Récapitulatif

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

Illustration de l'outil Con
OutRas = Con(InRas1, 40, 30, "Value >= 2")

Utilisation

Syntaxe

Con (in_conditional_raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
ParamètreExplicationType 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.

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

NomExplicationType 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

Rubriques connexes

Informations de licence

ArcView : Obligatoire Spatial Analyst
ArcEditor : Obligatoire Spatial Analyst
ArcInfo : Obligatoire Spatial Analyst

7/10/2012