9 votos

¿Cómo evaluar expresiones de calculadora de ráster de la consola?

¿Cómo puedo yo ejecutar desde la consola de una expresión que debe ser utilizada con la calculadora raster?

Estoy buscando algo como esto:

19voto

Michael Puntos 11

A partir de QGIS 2.0 (y la versión de desarrollo actual), la clase QgsRasterCalculator está disponible en python. Por desgracia, no es muy bien documentado.

El uso básico es, que usted tiene que definir un alias para cada banda utilizado en la calculadora de la expresión en forma de un QgsRasterCalculatorEntry

Su ejemplo puede entonces escribirse de la siguiente manera, dado que ya tiene asignada su rasterlayer a una variable bohLayer.

from qgis.analysis import QgsRasterCalculator, QgsRasterCalculatorEntry

entries = []
# Define band1
boh1 = QgsRasterCalculatorEntry()
boh1.ref = 'boh@1'
boh1.raster = bohLayer
boh1.bandNumber = 1
entries.append( boh1 )

# Define band2
boh2 = QgsRasterCalculatorEntry()
boh2.ref = 'boh@2'
boh2.raster = bohLayer
boh2.bandNumber = 2
entries.append( boh2 )

# Process calculation with input extent and resolution
calc = QgsRasterCalculator( 'boh@1 + boh@2', '/home/user/outputfile.tif', 'GTiff', bohLayer.extent(), bohLayer.width(), bohLayer.height(), entries )
calc.processCalculation()

El retorno de processCalculation() será

  • 0 en caso de éxito
  • 1 en caso de que el proveedor de la cadena (GTiff en el ejemplo) se equivocó
  • 2 para otros errores

La capa no se agrega automáticamente a la tabla de contenido, para hacerlo manualmente o con algún código de python.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X