Creación del complemento QGIS a partir de Graphical Modeler

Sep 12 2020

Me gustaría saber cómo puedo crear un complemento QGIS a partir de un modelo creado con el modelador gráfico. ¿Es posible o tengo que usar necesariamente los scripts que Python hizo en la consola de QGIS?

¿Alguna sugerencia? ¿Tengo que usar "Plugin Builder"?

Respuestas

3 nr_aus Oct 01 2020 at 12:23

Sí, seguro que puedes.

Marque aquí si está utilizando una versión anterior de Python. ¿Convertir modelos de QGIS a scripts de Python?

Estoy usando 3.14, y dentro del Diseñador de modelos, hay un botón en la parte superior llamado 'Exportar como algoritmo de script'. Presione eso.

2 LeonPowałka Oct 01 2020 at 13:07

En la práctica, se trata de exportar su modelo como script de Python, crear un complemento usando PluginBuilder y copiar su código en el código del complemento creado. Aunque hacer esto con un solo clic es una buena idea para un nuevo complemento :). Todo se explica en esta publicación Conversión de modelo en complemento en QGIS

1 DavidGalt Dec 20 2020 at 10:21

De hecho, puede empaquetar modelos en complementos sin la necesidad de convertirlos en scripts.

Para hacerlo:

  1. Utilice el generador de complementos (en sí mismo un complemento de QGIS) para crear un complemento de procesamiento de inicio

  2. Abra el archivo del proveedor (* provider.py) en un editor de texto

  3. Encuentra la línea:

de qgis.core importar QgsProcessingProvider

y debajo agrega las líneas:

desde qgis.core importar QgsProcessingModelAlgorithm

importar sistema operativo

  1. Bajo el módulo loadAlgorythms (def loadAlgorithms (self) :) agregue las siguientes líneas de código:
for dirpath, dirnames, files in os.walk(os.path.dirname(__file__)):
    for file_name in files:
        if file_name.lower().endswith('.model3'):
            alg = QgsProcessingModelAlgorithm()
            alg.fromFile(os.path.join(dirpath, file_name))
            self.addAlgorithm(alg)

El código anterior busca en la carpeta del complemento y en cualquier subcarpeta y, si encuentra archivos de modelo, los hace referencia. Entonces, desde este punto en adelante, todo lo que necesita hacer para agregar modelos a este complemento es colocarlos en el directorio del complemento.