Evaluación Condicional (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

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

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 Ráster condicional de entrada (in_conditional_raster en Python) es un ráster de banda única y 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 (in_false_raster_or_constant en Python) opcional 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 ningún valor en Ráster falso o valor 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.

  • En la Expresión se utiliza una consulta SQL. Consulte los temas siguientes para información detallada sobre cómo se construyen 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 usar una cláusula {where_clause} que especifique el campo Value utilizando en su lugar 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 reformular como sigue:

    • Con(Raster("elev") > 1000, 0, 1)

    Para obtener más información, consulte las muestras de código siguientes o consulte Crear declaraciones 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 superior a 2000; el valor será NoData en caso contrario.

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 mantendrá en la salida excepto NoData, que se sustituirá 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, 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 utilizan varias herramientas Con dentro de un Con.

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 (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"

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