Evaluación Condicional (Spatial Analyst)

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

Ilustración Con
OutRas = Con(InRas1, 40, 30, "Value >= 2")

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 en 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, debe estar 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.

  • Si al menos una de las entradas son datos ráster multidimensionales con el mismo número de variables, la herramienta realizará la operación para todas las porciones con el mismo valor de dimensión. La salida será un ráster multidimensional en formato CRF. Las variables en las entradas deben tener al menos una dimensión común y un valor dimensional común para que procese la herramienta; de lo contrario, se producirá un error.

    Si dos entradas son rásteres multidimensionales y comparten una variable, pero con nombres distintos, desactive el entorno de geoprocesamiento Variable multidimensional coincidente (establecido en arcpy.env.matchMultidimensionalVariable = False en Python) antes de ejecutar la herramienta.

    Si el valor Ráster condicional de entrada es un ráster multidimensional y los parámetros Ráster verdadero o valor constante de entrada y Ráster falso o valor constante de entrada se establecen en valores constantes, la herramienta realizará la operación para todas las porciones de todas las variables utilizando los valores constantes y la salida será un ráster multidimensional.

Parámetros

EtiquetaExplicaciónTipo de datos
Ráster condicional de entrada

El 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
Ráster verdadero o valor constante de entrada

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
Ráster falso o valor constante de entrada
(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
Expresión
(Opcional)

La expresión lógica que determina cuáles de las celdas de entrada deben ser verdaderas o falsas.

La cláusula Where sigue la forma general de una expresión SQL. Se puede introducir directamente, por ejemplo, VALUE > 100, si hace clic en el botón de moto Editar SQL Consulta SQL. Si se encuentra en el modo de edición de Cláusula Editar cláusula, puede empezar a construir la expresión haciendo clic en el botón Agregar modo Cláusula.

SQL Expression

Valor de retorno

EtiquetaExplicaciónTipo de datos
Ráster de salida

El ráster de salida.

Raster

Con(in_conditional_raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
NombreExplicaciónTipo de datos
in_conditional_raster

El 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 una where_clause es "VALUE > 100".

SQL Expression

Valor de retorno

NombreExplicaciónTipo de datos
out_raster

El ráster de salida.

Raster

Muestra de código

Ejemplo 1 de Evaluación condicional (ventana de Python)

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.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 mantiene en la salida, a excepción de NoData, que se reemplaza por 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, se usan dos rásteres diferentes 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 Evaluación condicional dentro de una Evaluación condicional.

import arcpy
from arcpy import env
from arcpy.sa import *
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 (script independiente)

En este ejemplo, si el valor del ráster condicional de entrada es mayor o igual a 1500, el valor de salida es 1; si es menor de 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"

# 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")