Trabajar con operadores en álgebra de mapas

Disponible con una licencia de Spatial Analyst.

Disponible con licencia de Image Analyst.

En álgebra de mapas, los operadores aplican una operación matemática en números y rásteres de entrada.

Por lo general, los operadores se colocan entre dos entradas (operandos) para realizar una operación matemática (por ejemplo, outVar = 3 + 7). En á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 Raster.

La siguiente tabla ofrece una referencia rápida que indica cómo se han implementado los operadores de álgebra de mapas actuales en relación con operadores de Python.

OperaciónOperador de PythonOperador de álgebra de mapasHerramienta de geoprocesamiento

Aritmética

Adición

+

+

Más

División

/

/

Dividir

División de enteros

//

//

N/A

Módulo

%

%

Módulo

Multiplicación

*

*

Multiplicación

Potencia

**

**

Potencia

Resta

-

-

Menos

Resta unaria

-

-

Cambio de signo

Suma unaria

+

+

N/A

Booleano

Booleana And

N/A

&

Booleana And

Complemento booleano

N/A

~

Booleana Not

Booleana Exclusive Or

N/A

^

Booleana XOr

Booleana Or

N/A

|

Booleana Or

Relacional

Igual que

==

==

Igual que

Mayor que

>

>

Mayor que

Mayor que e Igual que

>=

>=

Mayor o Igual que

Menor que

<

<

Menor que

Menor que e Igual que

<=

<=

Menor o igual que

No igual que

!=

!=

No igual

Bit a bit

Bitwise And

&

N/A

Bitwise And

Complemento bit a bit

~

N/A

Bitwise Not

Bitwise Exclusive Or

^

N/A

Bitwise XOr

Bitwise Left Shift

<<

<<

Bitwise Left Shift

Bitwise Or

|

N/A

Bitwise Or

Bitwise Right Shift

>>

>>

Bitwise Right Shift

Reglas de operador

A continuación se indican algunas reglas de operador:

  • Si solo se utilizan números con operadores, el resultado será un número.
    # outVar will be assigned 10
    outVar = 3 + 7
  • Al utilizar operadores con rásteres, el ráster debe ser un objeto Raster.
    outRas = Raster("inraster1") + Raster("inraster2")
  • Si se utiliza un operando ráster, el resultado es un objeto Raster.
    # In the following statement, 4 is added to each cell value in inraster1
    outRas = Raster("inraster1") + 4
    outRas2 = Raster("inraster") + math.pi

    En la sentencia anterior, se utiliza pi desde el módulo de Python math. El módulo de math también incluye la base del logaritmo natural, math.e, que también se puede utilizar en una sentencia de álgebra de mapas.

  • Algunos operadores pueden preceder a un número u objeto Raster.
    outRas = -Raster("inraster")
  • Los operadores booleanos (~, &, ^, |) realizarán una operación booleana si una o varias entradas (operando) son un ráster. Si ambas entradas (operandos) son números, estos operadores realizarán operaciones bit a bit.

Sugerencia:

No se necesitan espacios entre operadores, pero se recomiendan para mejorar la legibilidad.

Es posible anidar herramientas y operadores para crear sentencias complejas.

Reglas de operador de ráster multidimensional

A continuación se indican algunas reglas de operador de ráster multidimensional:

  • Cuando se utiliza un operador con un ráster multidimensional y un número, el resultado es un objeto Raster multidimensional con las mismas variables y dimensionalidad que la entrada.
    # In the following statement, 100 is added to each cell in 
    # each slice of in_multidem_raster
    out_multidem_raster = in_multidem_raster + 100
  • Cuando se utiliza un operador con un ráster multidimensional y un ráster que no es multidimensional, el resultado será un objeto Raster multidimensional con las mismas variables y dimensionalidad que la entrada.

    Si los objetos Raster de entrada no se superponen, no se devuelve ningún resultado.

    # In the following statement, the cell values from in_raster are added to 
    # the cell values in each slice of in_multidem_raster.
    out_multidem_raster = in_multidem_raster + in_raster
  • Cuando se utiliza un operador con dos rásteres multidimensionales, el resultado será un objeto Raster multidimensional únicamente con las variables y dimensionalidad que compartan las entradas. Por ejemplo, si un ráster multidimensional contiene datos de temperatura diarios de 1995 a 2015, y otro ráster multidimensional contiene datos de temperatura diarios de 2001 a 2005, el resultado de un operador utilizado con ambos rásteres multidimensionales incluirá solo los datos de temperatura diarios de 2001 a 2005.

    Si los objetos Raster multidimensionales de entrada no tienen variables ni dimensionalidad en común, no se devuelve ningún resultado.

    # In the following statement, the cell values in each slice from in_multidem_raster1
    # are added to the cell values in each slice from in_multidem_raster2, only where variables and 
    # dimensionality overlap.
    out_multidem_raster = in_multidem_raster1 + in_multidem_raster2

Jerarquía del operador

El valor de jerarquía determina el orden en el que se ejecutan los operadores. El operador con la jerarquía más elevada será el que se ejecute primero. Si dos operadores tienen el mismo valor de jerarquía, se procesarán de izquierda a derecha en una expresión.

Puede utilizar paréntesis para invalidar la prioridad de jerarquía, siendo la operación que se encuentre entre los paréntesis más interiores la que se procesará primero, independientemente del operador que se especifique.

La siguiente tabla muestra todos los operadores de álgebra de mapas de menor a mayor jerarquía. Los operadores que se muestran en la misma fila tienen la misma jerarquía.

Temas relacionados