Cómo usar el Raster Calculator desde la Python Console

Hace pocos días, intentando solventar la carencia del operador logaritmo en el raster calculator de QGIS, encontré el script gdal_calc.py que permite usar operadores que no están disponibles en éste de una manera fácil y expedita. Por otra parte, me preguntaba si esta falta podría ser resuelta apelando al uso del raster calculator directamente desde la consola de PyQGIS. La respuesta es negativa pero por lo menos encontré documentación que permite el uso del raster calculator desde la Python Console. Las clases son la QgsRasterCalculator y la QgsRasterCalculatorEntry del módulo de PyQGIS qgis.analysis.

Un ejemplo de código, basado en la documentación ya mencionada, es el siguiente:

from qgis.core import *
from qgis.gui import *
from qgis.analysis import QgsRasterCalculator, QgsRasterCalculatorEntry
from math import *

Layer=iface.activeLayer()

entries = []

# Define band1
layer1 = QgsRasterCalculatorEntry()
layer1.ref = 'layer1@1'
layer1.raster = Layer
layer1.bandNumber = 1
entries.append( layer1 )

calc = QgsRasterCalculator('(layer1@1)^0.2', 
                            '/home/zeito/outputfile.tif', 
                            'GTiff', 
                            Layer.extent(), 
                            Layer.width(), 
                            Layer.height(), 
                            entries )
                            
calc.processCalculation()

Lo utilicé para elevar arbitrariamente a la potencia 0.2 una banda térmica (b6) de Landsat 5. El resultado se encuentra a continuación:

raster_calc

que gracias al plugin value tool y a la calculadora del intérprete de la Python Console se puede verificar que los cálculos son los esperados. Por otra parte, otros operadores como sin o sqrt también fueron empleados con éxito. Sin embargo, el uso del operador log fue imposible.

Esta entrada fue publicada en PyQGIS, SIG, Software Libre. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s