I would like to make the sum of 12 different rasters to get one raster as output. I wrote the following code but it doesn't work (or better, it works, but at the end it doesn't give me any layer, but the writing "Invalid layer, Gdal provider cannot open Gdal dataset"), any suggestions to how modifying it?
import qgis
import gdal
from qgis.analysis import QgsRasterCalculator, QgsRasterCalculatorEntry
from qgis.core import QgsRasterLayer
suffix_input=['I_jan', 'I_feb', 'I_mar', 'I_apr', 'I_may', 'I_jun', 'I_jul', 'I_aug', 'I_sep', 'I_oct', 'I_nov' ,'I_dec']
inputpath = '/Users/macbook/Desktop/TESI/PROGETTO/I/'
list=[0,1,2,3,4,5,6,7,8,9,10,11]
sum=0
for i in list:
inputrasterfile = QgsRasterLayer(inputpath + suffix_input[i] + ".tif")
entries = []
ras = QgsRasterCalculatorEntry()
ras.ref = 'ras@1'
ras.raster = inputrasterfile
ras.bandNumber = 1
entries.append( ras )
sum = 'sum + ras@1'
calc = QgsRasterCalculator( sum, '/Users/macbook/Desktop/TESI/CAPITANATA PROGETTO/Itot.tif', 'GTiff', inputrasterfile.extent(), inputrasterfile.width(), inputrasterfile.height(), entries )
print(calc.processCalculation())
iface.addRasterLayer('/Users/macbook/Desktop/TESI/PROGETTO/Itot.tif')
entries = []
inside a loop. So that means the list is emptied at the start of each loop iteration.