Tengo un directorio con el binario de archivos raster (1 banda) que necesito para agregar una secuencia de comandos de python independiente. El problema es que los rásteres tiene distinto número de filas y columnas y resolución diferente (la lectura como arrays de numpy y la adición de ellos no funciona). Cuando yo uso la calculadora ráster, se las arregla para hacer lo que quiero, pero ahora necesito para usarlo fuera de QGIS y hacerlo de forma automática para todos los rásteres en la carpeta. ¿Cómo puedo agregar a todos los de mi rásteres en mi directorio inputFolder y crear un ráster de salida? Tengo el siguiente código:
inputFolder = "/home/usr/Desktop/"
def findRasters(path, filter):
for root, dirs, files in os.walk(path, filter):
for file in fnmatch.filter(files, filter):
yield os.path.join(root, file)
entries = []
for l in findRasters(inputFolder, '*.tif'):
fileInfo = QFileInfo(l)
baseName = fileInfo.baseName()
rlayer = QgsRasterLayer(l,baseName)
QgsMapLayerRegistry.instance().addMapLayer(rlayer)
layer = QgsRasterCalculatorEntry()
layer.ref = l.name() + '@1'
layer.raster = l
layer.bandNumber = 1
entries.append(layer)
expression = '(' + entries[1].ref + ' + ' + entries[0].ref + ')'
calc = QgsRasterCalculator(expression,'/home/usr/Desktop/final.tif',
'GTiff',
layers[0].extent(),
layers[0].width(),
layers[0].height(),
entries)
calc.processCalculation()
No estoy seguro de cómo debo formular mi expression
que tiene en cuenta todos los rásteres en la carpeta