Disponible con una licencia de Spatial Analyst.
Disponible con licencia de Image 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 es un valor de punto flotante, el ráster de salida también lo será. Si tanto la expresión verdadera como el ráster falso opcional son enteros, el ráster de salida será un entero.
Si el Ráster condicional de entrada (in_conditional_raster en Python) es un ráster de banda única y o bien el Ráster verdadero o valor constante de entrada (in_true_raster_or_constant en Python) o el Ráster falso o valor constante de entrada opcional (in_false_raster_or_constant en Python) es una constante, la salida será un ráster de banda única.
Si todas las entradas son rásteres multibanda, la salida será un ráster multibanda. El ráster de salida también será multibanda si la entrada verdadera o la falsa entrada opcional es una constante. El número de bandas de cada entrada multibanda debe ser el mismo.
La herramienta realiza la operación con cada banda del ráster condicional utilizando la banda correspondiente de las otras entradas. Si la entrada condicional es un ráster multibanda y la entrada de ráster verdadero o falso es una constante, la herramienta realizará la operación utilizando el valor constante para cada banda de la entrada multibanda.
Si la evaluación de la expresión es distinta de cero, se trata como verdadera.
Si no se especifica Ráster falso o valor constante de entrada, se asigna el valor NoData a las celdas cuyo resultado de la expresión no sea verdadero.
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 información sobre cómo crear 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 utilizar una {where_clause} que especifica el campo Value utilizando en lugar de ello una expresión de álgebra de mapas como el in_conditional_raster.
Por ejemplo, la siguiente expresión:
- Con("elev", 0, 1, "value > 1000")
se puede reformular como sigue:
- Con(Raster("elev") > 1000, 0, 1)
Para obtener más información, consulte las muestras de código siguientes o revise Crear sentencias complejas en Álgebra de mapas.
La longitud máxima de la expresión lógica es de 4.096 caracteres.
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 |
Muestra de código
En este ejemplo, el valor original se mantendrá en la salida cuando el valor de ráster condicional de entrada sea mayor que 2000; el valor será NoData cuando no sea así.
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")
En este ejemplo, el valor original se mantiene en la salida, a excepción de NoData, que se reemplaza por 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")
Entornos
Información de licenciamiento
- Basic: Requiere Image Analyst or Spatial Analyst
- Standard: Requiere Image Analyst or Spatial Analyst
- Advanced: Requiere Image Analyst or Spatial Analyst