Estoy luchando para resumir algunos de los rásteres de uso de QgsRasterCalculator. Cuando el paso de "calc.processCalculation()" se ejecuta, QGIS se bloquea con un error de tiempo de ejecución (R6025 - llamada de función virtual pura) o un vertedero.
Tengo una lista de ráster rutas generadas en un bucle for mirando como la siguiente. Por favor, dime ¿qué hago mal y cómo podría yo hacer el trabajo...
Aquí está mi código:
from qgis.core import *
from PyQt4.QtCore import *
from qgis.analysis import QgsRasterCalculator, QgsRasterCalculatorEntry
s1 = "E:\rcalc\OUTPUT11.sdat"
s2 = "E:\rcalc\OUTPUT22.sdat"
s3 = "E:\rcalc\OUTPUT33.sdat"
list = [s1,s2,s3]
entries = []
formula = ""
for i in range(0, len(list)):
raster = list[i]
resp = QgsRasterLayer(raster)
rast1 = QgsRasterCalculatorEntry()
rast1.raster = resp
rast1.ref = "rast"+str(i+1)
rast1.bandNumber = 1
entries.append(rast1)
rast1 = None
resp = None
if(i == len(list)-1):
formula = formula + 'rast'+str(i+1)
else:
formula = formula + 'rast'+str(i+1)+' + '
resp = QgsRasterLayer(list[0])
calc = QgsRasterCalculator( formula, "E:\output.tif", 'GTiff', resp.extent(), resp.width(), resp.height(), entries )
calc.processCalculation()