23.5. Modelador gráfico

El modelador gráfico le permite crear modelos complejos utilizando una interfaz simple y fácil de usar. Cuando se trabaja con un SIG, la mayoría de las operaciones de análisis no están aisladas, sino que forman parte de una cadena de operaciones. Con el modelador gráfico, esa cadena de operaciones se puede agrupar en un solo proceso, por lo que es conveniente ejecutarla más tarde con un conjunto diferente de entradas. No importa cuántos pasos y diferentes algoritmos implique, un modelo se ejecuta como un solo algoritmo, lo que ahorra tiempo y esfuerzo.

El modelador gráfico se puede abrir desde el menú Procesamiento (Procesos -> Modelador gráfico).

El modelador tiene un lienzo de trabajo sobre el que se representan la estructura del modelo y su flujo de trabajo. La parte izquierda de la ventana es una sección con cinco paneles, que pueden utilizarse para añadir nuevos elementos al modelo:

  1. Propiedades del Modelo: puede especificar el nombre del modelo y el grupo que lo contendrá

  2. Entradas: todas las entradas de datos que configurarán su modelo

  3. Algoritmos: todos los algoritmos de procesamiento disponibles

  4. Variables: también puede definir variables que estén solo disponibles en el Modelador de Procesos

  5. Historial del comando Deshacer: este panel registra todo lo que sucede en el modelador, permitiendo corregir los errores cometidos.

../../../_images/modeler_canvas.png

Figura 23.16 Modelador

Para crear un modelo hay que seguir dos pasos fundamentales:

  1. Definir los datos de entrada necesarios. Estos datos de entrada se añadirán a la ventana de parámetros, de tal manera que el usuario puede establecer sus valores cuando se ejecute el modelo. El modelo es, en sí mismo, un algoritmo, por lo que la ventana de parámetros se genera automáticamente para todos los algoritmos disponibles en el entorno de procesamiento.

  2. Definición del flujo de trabajo. Usando los datos de entrada del modelo, el flujo de trabajo se define agregando algoritmos y seleccionando cómo usan las entradas definidas o las salidas generadas por otros algoritmos en el modelo.

23.5.1. Definir entradas

El primer paso consiste en definir todos los datos de entrada del modelo. En el panel Inputs, situado a la izquierda de la ventana del modelador, se encuentran los siguientes elementos:

  • Configuración de Autenticación

  • Booleano

  • Color

  • Nombre de la Conexión

  • Operación de Coordenadas

  • SRC

  • Esquema de la Base de Datos

  • Tabla de la Base de Datos

  • tipo Datetime (FechaHora)

  • Distancia

  • Enum

  • Expresión

  • Extensión

  • Campo de agregación

  • Mapeador de campos

  • Archivo/Carpeta

  • Geometría

  • Capa de mapa

  • Tema de Mapa

  • Matriz

  • Capa de Malla

  • Entrada múltiple

  • Número

  • Punto

  • Imprimir composición

  • Imprimir elemento de la composición

  • Intervalo

  • Banda ráster

  • Capa Ráster

  • Escala

  • Cadena

  • Creación de capas TIN

  • Objetos vectoriales

  • Campo vectorial

  • Capa vectorial

  • Capas de escritor de teselas vectoriales

Nota

Al pasar el puntero del ratón sobre los datos de entrada se mostrará una ayuda con información adicional.

Al hacer doble clic sobre un elemento, aparece un diálogo que le permite definir sus características. En función del parámentro, la ventana de diálogo contendrá al menos un elemento (la descripción, que es lo que que el usuario verá al ejecutar el modelo). Por ejemplo, si se añade un valor numérico, como en la figura que se muestra a continuación, además de la descripción de los parámetros, debe establecer un valor por defecto y un rango de valores válidos.

../../../_images/models_parameters.png

Figura 23.17 Definición de parámetros del Modelo

Puede forzar a que sea obligatorio incluir un valor de entrada marcando la |casilla| Obligatorio, mientras que marcando la casilla |desmarcado| Avanzado se establece que la entrada de datos aparezca en la sección Avanzado. Esto resulta especialmente útil cuando el modelo cuenta con varios parámetris y algunos de ellos no son triviales, pero usted sigue queriendo elegirlos.

La pestaña Comentarios permite etiquetar los datos de entrada con más información, para describir mejor el parámetro. Los comentarios solo estarán visibles en el lienzo del modelador y no en el diálogo final del algoritmo.

Para cada fuente de datos de entrada añadida, se añade un elemento nuevo al lienzo del modelador.

../../../_images/models_parameters2.png

Figura 23.18 Parámetros del modelo

También puede añadir inputs al modelo, arrastrando el tipo de input al lugar que desee en el lienzo del modelador. Si desea cambiar un parámetro de un input existente, simplemente haga doble clic en él y aparecerá el mismo diálogo.

23.5.2. Definicion del flujo de trabajo.

En el siguiente ejemplo, añadimos dos inputs y dos algoritmos. El propósito de este modelo es copiar los valores de elevación tomados de una capa ráster MDE a una capa vectorial de líneas, utilizando el algoritmo Drape (cubrir), y después calcular el ascenso total de la capa de líneas utilizando el algoritmo Climb Along Line (Ascenso a lo largo de una línea).

En la pestaña Inputs , elija ambos inputs como Capa Vectorial` para la línea y Capa Ráster para el MDE. Y ya estamos listos para añadir los algoritmos para el flujo de trabajo.

Los algoritmos están disponibles en el panel Algorithms, agrupados más o menos igual que como lo están en la Caja de Herramientas de Procesos.

../../../_images/models_parameters3.png

Figura 23.19 Entradas del modelo

Para añadir un algoritmo a un modelo, haga doble clic sobre su nombre o arrástrelo, del mismo modo que con los inputs. Al igual que con estos, puede cambiar la descripción del algoritmo y añadir comentarios. En el momento de añadir un algoritmo, aparecerá un diálogo de ejecución, con contenidos similares a los del panel de ejecución que aparece cuando se ejecuta el algoritmo desde la Caja de Herramientas. En la figura que aparece a continuación se muestran los diálogos de los algoritmos Cubrir (establecer el valor Z de un ráster) y Ascender por una línea.

../../../_images/models_parameters4.png

Figura 23.20 Parámetros del Algoritmo del Modelo

Como puede observar, hay algunas diferencias.

Hay cuatro opciones para definir los inputs del algoritmo:

  • Valor integer: le permite establecer el parámetro para una capa cargada en el proyecto QGIS o para otra capa, elegida desde una carpeta

  • expression Valor Pre-calculado: con esta opción puede abrir el Constructor de Expresiones y definir su propia expresión para completar el parámetro. Los inputs del modelo, al igual que algunas otras estadísticas de capa están disponibles como variables y aparecen listadas en la parte superior del Diálogo de Búsqueda del Constructor de Expresiones.

  • processingModel Input del Modelo: elija esta opción si el parámetro procede de un input del modelo que haya definido usted. Una vez pulsado, esta opción ofrecerá una lista de todos los inputs adecuados para el parámetro

  • |procesamiento| Salida del Algoritmo: es útil cuando el parámetro de entrada de un algoritmo es la salida de otro algoritmo.

Las salidas del algoritmo tienen la opción adicional processingOutput Salida del modelo que hace que la salida del algoritmo esté disponible en el modelo.

Si la capa que genera el algoritmo solo va a ser utilizada como input de otro algoritmo, no modifique esa caja de texto

En la siguiente imagen puede ver las dos entradas de parámetros, definidas como Entrada del Modelo y capa temporal de salida:

../../../_images/models_parameters5.png

Figura 23.21 Parámetros de entrada y salida del algoritmo

En todos los casos, se encontrará un parámetro adicional llamado Algoritmos padres que no está disponible cuando se invoca al algoritmo desde la caja de herramientas. Este parámetro permite definir el orden en que se ejecuten los algoritmos, definiendo explícitamente un algoritmo como padre del actual. Esto obligará al padre a ser ejecutado antes que el actual.

Cuando utiliza el resultado de un algoritmo anterior como entrada de su algoritmo, eso establece implícitamente el algoritmo anterior como padre del actual (y coloca la flecha correspondiente en el lienzo del modelador). Sin embargo, en algunos casos, un algoritmo puede depender de otro, incluso si no usa ningún objeto de salida de él (por ejemplo, un algoritmo que ejecuta una sentencia SQL en una base de datos PostGIS y otro que importa una capa en esa misma base de datos). En ese caso, simplemente seleccione el algoritmo anterior en el parámetro Algoritmos padres y se ejecutarán en el orden correcto.

Una vez que se hayan asignado valores válidos a todos los parámetros, haga clic en Aceptar y el algoritmo se agregará al lienzo. Se vinculará a los elementos del lienzo (algoritmos o entradas) que proporcionan objetos que se utilizan como entradas para el algoritmo.

Los elementos se pueden arrastrar a una posición diferente en el lienzo. Esto resulta útil para hacer que la estructura del modelo sea más clara e intuitiva. También puede redimensionar los elementos, lo que resulta especialmente útil si la descripción del input o del algoritmo es muy larga.

Las relaciones entre los elementos se actualizan automáticamente y aparece un botón con el signo más al principio y al final de cada algoritmo. Al hacer clic en el botón, se despliega una lista con todas las entradas y salidas del algoritmo para que pueda tener una vista rápida.

Puede acercar el zoom usando la rueda del ratón

../../../_images/models_model.png

Figura 23.22 Un modelo completo

Puede ejecutar el algoritmo en cualquier momento, hacindo clic en el botón |empezar|. Si quiere utilizar el algoritmo desde la caja de herramientoas, tiene que guardarlo y cerrar el diálogo del modelador para permitir que la caja de herramientas actualice sus contenidos.

23.5.3. Interaccionar con el lienzo y sus elementos.

Puede usar los botones zoomIn, zoomOut, zoomActual y zoomFullExtent para hacer zoom en el lienzo del modelador. El comportamiento de los botones es básicamente el mismo que el de la barra de herramientas principal de QGIS.

El panel Historial de deshacer junto con los botones |deshacer| y |rehacer| son extremadamente útiles para volver rápidamente a una situación anterior. El panel Historial de deshacer enumera todo lo que ha hecho al crear el flujo de trabajo.

Puede mover o cambiar el tamaño de muchos elementos al mismo tiempo seleccionándolos primero, arrastrando el mouse.

Si desea ajustar los elementos mientras los mueve en el lienzo, puede elegir Ver -> Habilitar ajuste.

El menú Editar contiene algunas opciones muy útiles para ineractuar con los elementos de su modelo:

  • selectAllSeleccionar Todo: seleccionar todos los elementos del modelo

  • Ajustar componentes seleccionados a la cuadrícula: ajuste y alinee los elementos en una cuadrícula

  • undoDeshacer: deshacer la última acción

  • redoRehacer: rehacer la última acción

  • editCutCortar: cortar los elementos seleccionados

  • editCopyCopiar: copiar los elementos seleccionados

  • editPastePegar: pegar los elementos

  • deleteSelectedBorrar Componentes Seleccionados: borrar todos los elementos seleccionados del modelo

  • Agregar recuadro de grupo: agregue un cuadro arrastrable al lienzo. Esta función es muy útil en modelos grandes para agrupar elementos en el lienzo del modelador y mantener limpio el flujo de trabajo. Por ejemplo, podríamos agrupar todas las entradas del ejemplo:

    ../../../_images/model_group_box.png

    Figura 23.23 Recuadro de grupo de modelo

Puede cambiar el nombre y el color de los cuadros. Los cuadros de grupo son muy útiles cuando se usan junto con :Ver -> Zoom a. Esto le permite hacer zoom a una parte específica del modelo.

Es posible que desee cambiar el orden de las entradas y cómo se enumeran en el cuadro de diálogo del modelo principal. En la parte inferior del panel Entrada encontrará el botón Reordenar entradas del modelo... y al hacer click en él, aparecerá un nuevo cuadro de diálogo que le permitirá cambiar el orden de las entradas:

../../../_images/model_reorder_inputs.png

Figura 23.24 Reordenar Entradas del Modelo

23.5.4. Guardar y cargar modelos.

Utilice el botón fileSave Guardar modelo para guardar el modelo actual y el botón fileOpen Abrir modelo para abrir un modelo previamente guardado. Los modelos se guardan con la extensión .model3. Si el modelo ya se ha guardado desde la ventana del modelador, no se le pedirá un nombre de archivo. Dado que ya hay un archivo asociado con el modelo, ese archivo se utilizará para guardados posteriores.

Antes de guardar un modelo, debe ingresar un nombre y un grupo para él en los cuadros de texto en la parte superior de la ventana.

Los modelos guardados en la carpeta models (la carpeta predeterminada cuando se le solicita un nombre de archivo para guardar el modelo) aparecerán en la caja de herramientas en la rama correspondiente. Cuando se invoca la caja de herramientas, busca en la carpeta models archivos con la extensión .model3 y carga los modelos que contiene. Dado que un modelo es en sí mismo un algoritmo, se puede agregar a la caja de herramientas como cualquier otro algoritmo.

Los modelos también se pueden guardar dentro del archivo del proyecto usando el botón addToProject Guardar modelo en proyecto. Los modelos guardados con este método no se escribirán como archivos .model3 en el disco, sino que se incrustarán en el archivo del proyecto.

Los modelos de proyecto están disponibles en el menú qgsProjectFileModelos de proyecto de la caja de herramientas.

La carpeta de los modelos se puede configurar desde el diálogo Procesos, bajo el grupo Modelador.

Los modelos cargados desde la carpeta models aparecen no solo en la caja de herramientas, sino también en el árbol de algoritmos en la pestaña :guilabel:ʻAlgoritmos` de la ventana del modelador. Eso significa que puede incorporar un modelo como parte de un modelo más grande, al igual que otros algoritmos.

Los modelos se mostrarán en el panel Navegador y pueden ser ejecutados desde allí.

23.5.4.1. Exportar un modelo como imagen, PDF o SVG

También se puede exportar un modelo como imagen, SVG o PDF (con fines ilustrativos) haciendo click en saveMapAsImageExportar como imagen, saveAsPDFExportar como PDF o saveAsSVGExportar como SVG.

23.5.5. Editar un modelo.

Puede editar el modelo que está creando actualmente, redefiniendo el flujo de trabajo y las relaciones entre los algoritmos y las entradas que definen el modelo.

Si hace clic derecho en un algoritmo en el lienzo, verá un menú contextual como el que se muestra a continuación:

../../../_images/modeler_right_click.png

Figura 23.25 Click derecho en el modelador

Seleccionando la opción Remove va a causar que el algoritmo seleccionado se elimine. Un algoritmo se puede eliminar solo si no hay otros algoritmas dependiendo de este. Eso es, si ninguna salida del algoritmo se utiliza en uno diferente de salida. Si intentar elimiar el algoritmo donde hay dependencia, un mensaje de advertencia como el que se ve abajo va a salir.

../../../_images/cannot_delete_alg.png

Figura 23.26 No se puede borrar el algoritmo

Al seleccionar la opción Editar… se mostrará el diálogo de parámetros del algoritmo, para que pueda cambiar las entradas y los valores de los parámetros. No todos los elementos de entrada disponibles en el modelo aparecerán como entradas disponibles. Las capas o valores generados en un paso más avanzado en el flujo de trabajo definido por el modelo no estarán disponibles si causan dependencias circulares.

Seleccione los nuevos valores y haga clic en el botón Aceptar como de costumbre. En consecuencia las conexiones entre los elementos del modelo cambiarán en el lienzo del modelador.

El Agregar comentario… le permite agregar un comentario al algoritmo para describir mejor el comportamiento.

Un modelo se puede ejecutar parcialmente desactivando algunos de sus algoritmos. Para hacerlo, seleccione la opción Desactivar en el menú contextual que aparece al hacer clic derecho sobre un elemento del algoritmo. El algoritmo seleccionado y todos los del modelo que dependen de él se mostrarán en gris y no se ejecutarán como parte del modelo.

../../../_images/deactivated.png

Figura 23.27 Modelo con algoritmos desactivados

Al hacer clic derecho en un algoritmo que no está activo, verá una opción de menú :guilabel:ʻActivar` que puede usar para reactivarlo.

23.5.6. Editando archivos de ayuda y meta informacion de modelos

Puede documentar sus modelos desde el propio modelador. Haga click en el botón processingHelp Editar ayuda del modelo y aparecerá un cuadro de diálogo como el que se muestra a continuación.

../../../_images/help_edition.png

Figura 23.28 Ayuda de Edición

En el lado derecho, verá una página HTML simple, creado mediante la descripción de los parámetros de entrada y salidas del algoritmo, junto con algunos elementos adicionales como una descripción general del modelo o su autor. La primera vez que se abre el editor de ayuda, todas estas descripciones están vacíos, pero se pueden editar utilizando los elementos en la parte izquierda del cuadro de diálogo. Seleccione un elemento en la parte superior y luego escriba su descripción en el cuadro de texto de abajo.

Modelo de ayuda se guarda como parte de un modelo en si.

23.5.7. Exportando un modelo como un script Python

Como veremos en un capítulo posterior, los algoritmos de procesamiento se pueden llamar desde la consola QGIS Python, y se pueden crear nuevos algoritmos de procesamiento usando Python. Una forma rápida de crear un script de Python es crear un modelo y luego exportarlo como un archivo de Python.

Para hacerlo, haga click en saveAsPython Exportar como algoritmo de script … en el lienzo del modelador o haga clicl con el botón derecho en el nombre del modelo en la caja de herramientas de procesamiento y seleccione | saveAsPython |: sup: `Exportar modelo como algoritmo de Python … `.

23.5.8. Acerca de algoritmos disponibles

Es posible que observe que algunos algoritmos que se pueden ejecutar desde la caja de herramientas no aparecen en la lista de algoritmos disponibles cuando está diseñando un modelo. Para ser incluido en un modelo, un algoritmo debe tener la semántica correcta. Si un algoritmo no tiene una semántica tan bien definida (por ejemplo, si el número de capas de salida no se puede conocer de antemano), entonces no es posible usarlo dentro de un modelo y no aparecerá en la lista de algoritmos que puede encontrar en el cuadro de diálogo del modelador.