6 votos

¿Cómo utilizar OR en una sentencia CON, en la Calculadora Raster de ArcGIS?

Estoy tratando de comparar dos rasters, y crear una salida basada en una fórmula como:

if raster1 > 10 or raster2 < 20 then raster3 = 30

¿Cómo puedo especificar el OR en la declaración CON de la calculadora raster?

Las páginas Construcción de expresiones en la Calculadora de Raster y Evaluación condicional con CON no ayudan, y "o" parece ser una palabra clave que Google ignora....

5voto

xenny Puntos 670

Para construir declaraciones complejas, puede obtener más información ici

Es importante conocer el nivel de precedencia de los operadores. En ejemplo, los operadores booleanos (~, &, ^,|) tienen un nivel de precedencia mayor que los operadores relacionales (<, <=, >, >=, ==, !=), lo que tiene un impacto en la forma de construir las expresiones. Para obtener más información sobre la precedencia de los operadores, consulte la segunda tabla de este página

He copiado la tabla mencionada al final de mi post, va de menor a mayor precedencia(nótese que no es lo mismo precedencia en C++ ). Los operadores con la mayor precedencia se agrupan primero, por eso necesita paréntesis si quiere forzar la evaluación de ">" antes de "|".

Sin paréntesis, su analizador sintáctico está tratando de leer

Con(("Raster1" > (10 | "Raster2") < 20),30)

<, <=, >, >=, ==, != (menor que, menor que igual, mayor que, mayor que igual, igual a, no igual)

| (Or booleano)

^ (Booleano XOr)

& (Boolean And)

<<, >> (desplazamiento a la izquierda a nivel de bits, desplazamiento a la derecha a nivel de bits)

+, - (suma, resta)

*, /, //, % (Multiplicación, División, División de enteros, Módulo)

+, -, ~ (Unary Plus, Negate, Boolean Not)

** (Poder)

1voto

Me he pasado un montón de tiempo con esto, así que para ahorrarle a todo el mundo la molestia, aquí está la hoja de trucos:

Parece que hay que rodear cada comparación individual entre paréntesis, y utilizar el | como el símbolo "o":

Con(("Raster1" > 10) | ("Raster2" < 20),30)

(Por favor, edite esta respuesta y publique un enlace a la documentación que menciona esto, si existe)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X