4 votos

Salida del algoritmo de procesamiento QGIS

Estoy desarrollando un plugin en QGIS utilizando lenguaje Python. Este plugin utiliza algoritmos de Processing Toolbox y guardo algunos resultados en la carpeta temporal asignando QgsProcessing.TEMPORARY_OUTPUT en el campo de salida de cada algoritmo. Sin embargo, mi plugin sólo funciona bien cuando devuelvo el directorio de la carpeta temporal usando QMessageBox . Si no uso esto, mi plugin no funciona, por lo que no se guarda nada en la carpeta temporal. ¿Por qué ocurre esto?

Ejemplo de funcionamiento del código:

 clip_ndvi = Processing.runAlgorithm("saga:cliprasterwithpolygon", {
                                'INPUT': str(self.dlg.lineEdit.text()),
                                'POLYGONS': vl,
                                'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT})
                            out_ndvi = clip_ndvi['OUTPUT']
                            QMessageBox.about(self.dlg,'teste', str(out_ndvi))

Ejemplo de código que no funciona:

clip_ndvi = Processing.runAlgorithm("saga:cliprasterwithpolygon", {
                            'INPUT': str(self.dlg.lineEdit.text()),
                            'POLYGONS': vl,
                            'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT})
                        out_ndvi = clip_ndvi['OUTPUT']

La diferencia está en el QMessageBox .

1voto

Jed Puntos 6

Cuestión extraña. No entiendo el por qué o el cómo pero considero reemplazar QgsProcessing.TEMPORARY_OUTPUT por :

QgsProcessingUtils.generateTempFilename('example.gpkg')

1voto

ital Puntos 106

Si ejecuta el algoritmo saga:cliprasterwithpolygon en la GUI de QGIS e intenta establecer una salida temporal, la herramienta de procesamiento fallará.

Esto se debe a que tanto GRASS como las herramientas de procesamiento SAGA no parecen funcionar con salidas temporales (a pesar de que sus GUI sugieren que aceptarán una salida temporal).

Ni que decir tiene que, una vez establecida la salida tanto en el código como en la GUI, el algoritmo funcionará.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X