Disponible con una licencia de Spatial Analyst.
Resumen
Realiza una evaluación condicional if/else en cada una de las celdas de entrada de un ráster de entrada.
Más información sobre cómo realizar una evaluación condicional mediante Evaluación condicional
Ilustración
Uso
Si el ráster verdadero o el ráster falso opcional son de punto flotante, el ráster de salida será de punto flotante. Si la expresión verdadera y el ráster falso opcional son enteros, el ráster de salida será entero.
Si la evaluación de la expresión es distinta de cero, se trata como Verdadera.
Si no se especifica ningún ráster falso ni constante de entrada, se asigna NoData a las celdas que no dan como resultado Verdadero en la expresión.
Si NoData no cumple con la expresión, no recibe el valor del ráster falso de entrada sino que permanece como NoData.
La Expresión utiliza una consulta SQL. Consulte los temas siguientes para obtener más información sobre cómo se construyen consultas en el Generador de consultas:
Para usar una {where_clause} en Python, se debe encerrar entre comillas. Por ejemplo, "Valor > 5000".
Puede consultar la ayuda para obtener más información sobre especificar una consulta en Python.
En Python, puede evitar usar una {where_clause} que especifica el campo Value usando una expresión de Álgebra de mapas como in_conditional_raster.
Por ejemplo, la siguiente expresión:
- Con("elev", 0, 1, "value > 1000")
se puede escribir como:
- Con(Raster("elev") > 1000, 0, 1)
Para obtener más información, consulte las muestras de código siguientes o Crear declaraciones complejas en Álgebra de mapas.
La longitud máxima de la expresión lógica es de 4.096 caracteres.
Consulte Entornos de análisis y Spatial Analyst para obtener detalles adicionales sobre los entornos de geoprocesamiento válidos para esta herramienta.
Sintaxis
Con (in_conditional_raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
Parámetro | Explicación | Tipo de datos |
in_conditional_raster | Ráster de entrada que representa el resultado verdadero o falso de la condición deseada. Puede ser de tipo entero o punto flotante. | Raster Layer |
in_true_raster_or_constant | La entrada cuyos valores se utilizan como valores de la celda de salida si la condición es verdadera. Puede ser un ráster de punto flotante o entero, o un valor constante. | Raster Layer | Constant |
in_false_raster_or_constant (Opcional) | La entrada cuyos valores se utilizan como valores de la celda de salida si la condición es falsa. Puede ser un ráster de punto flotante o entero, o un valor constante. | Raster Layer | Constant |
where_clause (Opcional) | La expresión lógica que determina cuáles de las celdas de entrada deben ser verdaderas o falsas. La expresión sigue la forma general de una expresión SQL. Un ejemplo de where_clause es "VALUE > 100". | SQL Expression |
Valor de retorno
Nombre | Explicación | Tipo de datos |
out_raster |
El ráster de salida. | Raster |
Ejemplo de código
Ejemplo 1 de Evaluación condicional (ventana de Python)
En este ejemplo, la salida mantendrá el valor original cuando el ráster condicional de entrada sea mayor que un valor de 2000, y un valor de NoData cuando no lo sea.
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")
Ejemplo 2 de Evaluación condicional (ventana de Python)
En este ejemplo el valor original se retendrá en la salida excepto para Nodata, que se reemplazará con el valor de 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")
Ejemplo 3 de Evaluación condicional (ventana de Python)
En este ejemplo dos rásteres diferentes se usan para crear el ráster condicional.
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")
Ejemplo 4 de Evaluación condicional (ventana de Python)
En este ejemplo se usan varias herramientas Conde un 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")
Ejemplo 5 de Evaluación condicional (secuencia de comandos independiente)
En este ejemplo, cuando el valor del ráster condicional de entrada sea mayor o igual que 1500, el valor de salida será 1 y cuando sea menor que 1500, el valor de salida será 0.
# 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")
Entornos
Información sobre licencias
- ArcGIS for Desktop Basic: Requiere Spatial Analyst
- ArcGIS for Desktop Standard: Requiere Spatial Analyst
- ArcGIS for Desktop Advanced: Requiere Spatial Analyst