Trabajar con operadores en el Álgebra de mapas
En el Álgebra de mapas, los operadores aplican una operación matemática en los números y rásteres de entrada.
Generalmente, los operadores se ubican entre dos entradas (operandos) para realizar una operación matemática (por ejemplo, outVar = 3 + 7). En el Álgebra de mapas, los operandos pueden ser rásteres o números. Para utilizar un operador con un ráster, el ráster debe ser un Objeto ráster.
La tabla a continuación proporciona una referencia rápida que indica qué tan reciente han implementado los operadores del Álgebra de mapas en relación con los operadores de Python y operadores del Álgebra de mapas 9.x anteriores.
Operación | Operador Python |
Operador del Álgebra de mapas |
Operador del Álgebra de mapas 9.x* |
Herramienta Spatial Analyst GP |
---|---|---|---|---|
Aritmética | ||||
Adición | + | + | + | |
División | / |
/ |
/, div | |
División de números enteros | // |
// |
N/D |
N/D |
Módulo | % | % | Mod | |
Multiplicación | * |
* |
* | |
Potencia | ** |
** |
N/D | |
Sustracción | - |
- |
- | |
Resta unaria | - |
- |
- | |
Suma unaria | + |
+ |
N/D |
N/D |
Booleano | ||||
And booleano | N/D |
& |
&, y | |
Complemento booleano | N/D |
~ |
^, no | |
Booleano exclusivo o | N/D |
^ |
!, xor | |
Or booleano | N/D |
| |
|, o | |
Relacional | ||||
Igual a | == | == | ==, eq | |
Mayor que | > | > | >, gt | |
Mayor o igual que | >= |
>= |
>=, ge | |
Menor que | < | < | <, lt | |
Menor o igual que | <= |
<= |
<=, le | |
No igual a | != |
!= |
^=, <>, ne | |
Bit a bit | ||||
And bit a bit | & | N/D | && | |
Complemento a nivel de bits | ~ | N/D | ^^ | |
Nivel de bits exclusivo o | ^ | N/D | !! | |
Left Shift bit a bit | << | << | << | |
Or bit a bit | | | N/D | || | |
Right Shift bit a bit | >> | >> | >> |
Reglas del operador
- Cuando solo se usan números con los operadores, el resultado será un número.
# outVar will be assigned 10 outVar = 3 + 7
- Cuando utiliza operadores con rásteres, el ráster debe ser un Objeto ráster.
outRas = Raster("inraster1") + Raster("inraster2")
- Cuando utiliza un operando de ráster, entonces el resultado es un Objeto ráster.
# In the following statement, 4 is added to each cell value in inraster1 outRas = Raster("inraster1") + 4 outRas2 = Raster("inraster") + math.pi
En la declaración anterior, pi se utiliza desde el módulo de matemáticas de Python. El módulo de matemática también incluye la base del logaritmo natural, math.e, que también se puede utilizar en la declaración del Álgebra de mapas.
- Algunos operadores pueden preceder a un Objeto ráster o un número.
outRas = -Raster("inraster")
- Los operadores booleanos (~, &, ^, |) realizarán una operación booleana cuando una o más entradas (operando) sea un ráster. Si ambas entradas (operandos) son números, entonces estos operadores realizarán operaciones a nivel de bits.
Los espacios entre operadores no son necesarios, pero se recomiendan para que sean legibles.
Las herramientas y los operadores se pueden anidar para crear declaraciones complejas.
Jerarquía del operador
El valor de precedencia determina el orden en el que se ejecutan los operadores. El operador con el valor de precedencia más alto se procesará primero. Si dos operadores tienen el mismo valor de precedencia, entonces se procesarán en orden de izquierda a derecha en una expresión.
Puede utilizar paréntesis para invalidar la prioridad de precedencia, con la operación en el paréntesis más profundo que se procesó primero, sin importar qué operador se especifique.
La siguiente tabla muestra todos los operadores del Álgebra de mapas en orden de precedencia menor a precedencia mayor. Cada uno de los operadores que se muestran en la misma fila tienen la misma precedencia.
Operador del Álgebra de mapas |
Referencia |
---|---|
<, <=, >, >=, ==, != |
Menor que, Menor o igual que, Mayor que, Mayor o igual que, Igual a y No igual a |
| |
|
^ |
|
& |
|
<<, >> |
Método Bitwise cambio izquierda, Método Bitwise cambio derecha |
+, - |
|
*, /, //, % |
Multiplicación, División, División de números enteros, Módulo |
+, -, ~ |
|
** |