Un recorrido rápido por el uso de Álgebra de mapas en Image Analyst

Disponible con licencia de Image Analyst.

Disponible con una licencia de Spatial Analyst.

Álgebra de mapas permite tener acceso a operadores, funciones y clases a través del álgebra. En su forma más básica, se especifica un ráster de salida a la izquierda de un signo igual (=) y las herramientas, operadores y sus parámetros a la derecha. Por ejemplo:

from arcpy.ia import *
elevationPlus100 = Plus("inelevation", 100)

La declaración anterior agrega 100 unidades a un dataset de elevación y crea un objeto Raster denominado elevationPlus100 para almacenar los resultados.

El Álgebra de mapas puede ejecutar sentencias simples, pero la potencia del lenguaje es evidente al crear sentencias y modelos complejos. Como el Álgebra de mapas se ha integrado en Python, todas las funcionalidades de Python y ArcPy y sus extensiones (módulos, clases, funciones y propiedades) están disponibles para usted, el modelador.

A medida que crecen sus necesidades, puede explorar muchas de las facetas de Álgebra de mapas. El siguiente recorrido rápido le brindará lo esencial para iniciar.

Lo básico de la ejecución del Álgebra de mapas

Existen tres maneras de utilizar el Álgebra de mapas:

  • La herramienta Calculadora ráster
  • La ventana de Python
  • Su entorno de desarrollo integrado Python (IDE, por sus siglas en inglés) favorito

Calculadora ráster

La herramienta Calculadora ráster ejecuta las expresiones del Álgebra de mapas. La herramienta tiene una interfaz de calculadora fácil de utilizar desde la cual se crean la mayoría de declaraciones del Álgebra de mapas simplemente al hacer clic en los botones. La Calculadora ráster se puede utilizar como una herramienta independiente, pero también en ModelBuilder. Como resultado, la herramienta permite integrar la potencia del Álgebra de mapas en el ModelBuilder.

Interfaz de usuario de Calculadora ráster
Interfaz de usuario de Calculadora ráster

En la expresión anterior, se combinan tres rásteres multiplicando el segundo y el tercero y sumando ese resultado al primero. Tenga en cuenta que los operadores siguen un orden de prioridad definido.

La herramienta Calculadora ráster no se ha diseñado para reemplazar a otras herramientas de Image Analyst o Spatial Analyst. Continúe utilizando las otras herramientas para realizar los cálculos correctos. Por ejemplo, utilice la herramienta Suma ponderada para superponer varios rásteres ponderados. La herramienta Calculadora ráster está diseñada para ejecutar declaraciones algebraicas de línea simple.

Como la Calculadora ráster es una herramienta de geoprocesamiento, se puede integrar en ModelBuilder. Consulte los siguientes temas para obtener más información:

Ventana de Python

La ventana de Python es una ubicación eficiente y conveniente para utilizar las herramientas de geoprocesamiento y funcionalidad de Python dentro de ArcGIS. Los comandos de Python que se ejecutan desde esta ventana pueden variar desde líneas de códigos simples a bloques complejos con lógica. La ventana de Python también proporciona un lugar para acceder a funcionalidades adicionales por medio de módulos y bibliotecas de Python personalizadas o de terceros.

Para iniciar la ventana de Python, haga clic en el botón Python Mostrar ventana de Python del grupo Geoprocesamiento en la pestaña Análisis o bien desde el grupo Windows de la pestaña Vista.

Ejemplo de ventana de Python

En la secuencia de declaraciones anterior, se importan el paquete del sitio ArcPy, los entornos de geoprocesamiento y los módulos de Image Analyst, se define el espacio de trabajo y se ejecuta la herramienta Clasificar ráster. Una vez que se introduce un retorno de carro al final de una declaración, ésta se ejecuta inmediatamente.

Algunas entidades de la Ventana de Python incluyen la finalización automática de una línea incorporada, el uso de variables y el acceso a la funcionalidad de Python y ArcPy.

Entorno de desarrollo integrado Python

Aunque no existe ningún límite para el número de declaraciones que se pueden introducir dentro de la ventana de Python en ArcGIS Pro, puede ser engorroso crear modelos más complejos. También puede tener acceso a las herramientas, los operadores, las funciones y las clases de los módulos de Image Analyst desde su entorno de desarrollo integrado favorito, por ejemplo, PythonWin. Inicie su IDE preferido e introduzca las declaraciones deseadas.

En el script siguiente, se importan ArcPy, los entornos de geoprocesamiento y el módulo de Image Analyst; se definen las variables; se verifica la extensión; se ejecuta la herramienta Clasificar ráster; y se guarda la salida.

# Name: Image Classification
# Description: 
# Requirements: Image Analyst Extension


# Import system modules
import arcpy
from arcpy import env
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Set environment settings
env.workspace = "C:/data"

# Set local variables
inRaster = "Landsat8_Redlands.tif"
classification_file = "LandCover.ecd"

# Execute Classify Raster
outLandCover = ClassifyRaster(inRaster, classification_file)

# Save the output
outLandCover.save("C:/data/Landcover.tif")

Como en el caso con la ventana de Python, un IDE proporcionará el acceso a todas las funcionalidades de Python y ArcPy disponibles.

Trabajar con operadores

El Álgebra de mapas admite una serie de operadores (por ejemplo, +, - y *). Los mismos operadores existen en Python, pero se modifican en el Álgebra de mapas para controlar de manera diferente los objetos Raster. Por ejemplo, los siguientes agregan dos números juntos en una variable:

# set outVar to 14 using the Python + operator
outVar = 5 + 9

Para indicar que la declaración debe trabajar en rásteres (es decir, para utilizar el operador de Álgebra de mapas), debe convertir el dataset como un Ráster. El siguiente ejemplo utiliza el operador + de Álgebra de mapas para sumar dos rásteres:

outRas = Raster("inras1") + Raster("inras2")

Los operadores pueden aceptar una mezcla de rásteres y números. Por ejemplo, lo siguiente agrega un valor constante de 8 a todas las celdas en el ráster de entrada:

outRas = Raster("inras1") + 8

Crear expresiones complejas

Las herramientas y los operadores se pueden fusionar en una sentencia simple. El siguiente ejemplo ejecuta varias herramientas y operadores en cada expresión:

outRas = Slope("indem" * 2) / 57
outdist = EucDistance(ExtractByAttributes("inras", "Value > 105"))

Puede utilizar paréntesis para controlar el orden de procesamiento. Considere los siguientes dos ejemplos, que utilizan los mismos operadores, pero con diferentes resultados debido al uso de paréntesis:

outRas1 = (Raster("inras1") + Raster("inras2")) / Raster("inras3")

y

outRas2 = Raster("inras1") + Raster("inras2") / Raster("inras3")

En la primera sentencia, se agrega inras1 a inras2 y el resultado se divide por inras3. Sin los paréntesis, como en la segunda sentencia, inras2 debería dividirse por inras3 y el resultado debería agregarse a inras1.

Sugerencias para ejecutar las declaraciones del Álgebra de mapas

En todos los ejemplos del Álgebra de mapas que se muestran a continuación, la salida es un objeto Raster. El objeto Raster señala a un dataset ráster temporal que, a menos que se guarde explícitamente, se eliminará cuando finalice la sesión de ArcGIS. Para guardar permanentemente el dataset temporal, el método save se llama en el objeto Raster (consulte los dos siguientes ejemplos).

Un ejemplo que demuestra el entorno del espacio de trabajo es:

import arcpy 
from arcpy import env 
from arcpy.ia import *

env.workspace = "C:/data" 

outLandCover = ClassifyRaster("Landsat8_Redlands", "LandCover.ecd")

outLandCover.save("RedlandsLandcover")

En la declaración anterior, se establece el espacio de trabajo; por lo tanto, RedlandsLandcover se guardará en C:/data.

Lectura recomendada

Para obtener un conocimiento más profundo de ArcPy, explore estos temas:

Para obtener más información sobre geoprocesamiento en Python, lo siguiente le puede ser de utilidad:

Temas relacionados