<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>