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

Con illustration
OutRas = Con(InRas1, 40, 30, "Value >= 2")

Uso

Sintaxis

Con (in_conditional_raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
ParámetroExplicaciónTipo 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.

Consulte la documentación si desea obtener más información acerca de la referencia SQL para expresiones de consulta utilizadas en ArcGIS y acerca de la especificación de consultas en Python.

SQL Expression

Valor de retorno

NombreExplicaciónTipo 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

Temas relacionados

Información de licencia

ArcView: Requiere Análisis espacial
ArcEditor: Requiere Análisis espacial
ArcInfo: Requiere Análisis espacial

7/11/2012