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

Disponible con licencia de Image Analyst.

Disponible con una licencia de Spatial Analyst.

El á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 antes de un signo igual (=) y las herramientas, operadores y sus parámetros después de él. A continuación encontrará un 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.

Conceptos básicos del álgebra de mapas

Existen tres maneras de utilizar el álgebra de mapas:

  • La herramienta Calculadora ráster
  • La ventana de Python
  • Un entorno de desarrollo integrado de Python (IDE)

Calculadora ráster

La herramienta Calculadora ráster ejecuta las expresiones del álgebra de mapas. La herramienta tiene una interfaz de calculadora desde la cual se crean la mayoría de sentencias del álgebra de mapas haciendo clic en los botones. Esta herramienta se puede utilizar como una herramienta independiente y también se puede utilizar en ModelBuilder Como resultado, la herramienta permite integrar el álgebra de mapas en ModelBuilder.

Interfaz de usuario de la herramienta 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. 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 sentencias algebraicas de línea simple.

Como ya se ha mencionado, la herramienta Calculadora ráster se puede integrar en ModelBuilder. Consulte los siguientes temas para obtener más información:

Ventana de Python

Mediante la consola interactiva de la ventana de Python, puede ejecutar código de Python directamente desde ArcGIS AllSource a través de un intérprete de Python, sin necesidad de un archivo de script. El código de Python que ejecuta desde esta ventana puede ir desde una línea única hasta bloques de código multilínea complejos. El siguiente vídeo ofrece una vista general de la ventana de Python.

Para abrir 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 Ventanas 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 de Python

Aunque no existe ningún límite para el número de declaraciones que se pueden introducir en la ventana de Python en ArcGIS AllSource, puede ser engorroso crear modelos complejos. También puede tener acceso a las herramientas, los operadores, las funciones y las clases de los módulos de Image Analyst desde un IDE. Inicie un IDE 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"

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

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

Al igual que con la ventana de Python, un IDE proporcionará el acceso a todas las funcionalidades de Python y ArcPy disponibles.

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 objeto Raster. El siguiente ejemplo utiliza el operador + de álgebra de mapas para sumar dos rásteres:

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

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.tif") + 8

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 sentencias 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).

El siguiente ejemplo demuestra el entorno del espacio de trabajo:

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 y RedlandsLandcover se guardará en C:/data.

Información adicional

Para obtener más información sobre ArcPy, explore estos temas:

Para obtener más información sobre el geoprocesamiento en Python, consulte los siguientes temas:

Temas relacionados