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