Salve, vi allego l'ultima parte di uno script python che dovrebbe funzionare come algoritmo di processing.
In pratica dovrebbe compiere un'operazione matematica su ogni banda di un multiband raster e immediatamente creare un nuovo multiband raster in output con le bande calcolate. Lo script funziona, ma alla fine fornisce un errore, credo sia perchè qgis sta cercando di caricare sulla canvas ogni singola banda calcolata (e invece non dovrebbe, ma dovrebbe caricare solo il multiband raster). Credo di non aver capito molto bene ancora come si collegano due operazioni di processing successive. Riesco ad evitare il messaggio di errore solo se al momento dell'esecuzione deflaggo l'opzione "Apri il risultato alla fine dell'algoritmo". Sapete darmi qualche consiglio? Grazie bandList = [] # fa un loop tra le bande del raster for band in range(1, nBand+1): # svolge l'operazione matematica per ogni banda outRas = processing.run( 'qgis:rastercalculator', {"EXPRESSION": operation = "10 * ( log10 ( " + pathStackIn + "@" + str(band) + " ) )", "LAYERS": stackIn, "CELLSIZE": None, "EXTENT": None, "CRS": None, "OUTPUT": "TEMPORARY_OUTPUT"}, is_child_algorithm = True, context = context, feedback = feedback) bandList.append(outRas["OUTPUT"]) # crea il nuovo multiband raster con i layer calcolati outStack = processing.run( 'gdal:merge', {"INPUT": bandList, "PCT": False, "SEPARATE": True, "NODATA_INPUT": None, "NODATA_OUTPUT": None, "OPTIONS":"", "EXTRA":"", "DATA_TYPE": 5, "OUTPUT": parameters[self.OUTPUT]} is_child_algorithm = True, context = context, feedback = feedback) return {self.OUTPUT: outStack["OUTPUT"]}
_______________________________________________ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user