26.5. El diseñador de modelos

El diseñador de modelos permite crear modelos complejos mediante una interfaz sencilla 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 diseñador de modelos, esa cadena de operaciones puede englobarse en un único proceso, lo que facilita su ejecución posterior con un conjunto diferente de entradas. No importa cuántos pasos y algoritmos diferentes implique, un modelo se ejecuta como un único algoritmo, lo que ahorra tiempo y esfuerzo.

El diseñador de modelos puede abrirse desde el menú Procesamiento (:menuselección:`Procesos --> Modelador gráfico`).

26.5.1. La interfaz del diseñador de modelos

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

Figura 26.17 Diseñador de modelos

En su parte principal, el modelador tiene un lienzo de trabajo donde se puede construir la estructura del modelo y el flujo de trabajo que representa.

En la parte superior del cuadro de diálogo, diferentes menús y la barra de herramientas Navigation dan acceso a una variedad de herramientas.

26.5.1.1. Menú modelo

Etiqueta

Atajos

Barra de navegación

Descripción

success Validar Modelo

Comprueba si existen los algoritmos y las entradas utilizadas en el modelo. Conveniente antes de lanzar un modelo.

play Correr Modelo…

F5

checkbox

Ejecuta el modelo

Reordenar entradas del modelo…

Establece el orden en que se presentan las entradas al usuario en el cuadro de diálogo del algoritmo.

fileOpen Abrir Modelo…

Ctrl+O

checkbox

Abre un archivo .model3 para editarlo o ejecutarlo

fileSave Guardar Modelo

Ctrl+S

checkbox

Guarda el modelo en el disco como un archivo .model3

fileSaveAs Guardar Modelo como…

Ctrl+Shift+S

checkbox

Guarda el modelo en el disco como un nuevo archivo .model3

fileSave Guardar modelo en proyecto

checkbox

Incrusta el archivo del modelo en el archivo del proyecto, haciéndolo disponible al compartir el archivo del proyecto.

helpContents Ayuda para editar modelo…

checkbox

Una interfaz para documentar el modelo, los algoritmos, los parámetros y los resultados, así como el autor y el control de versiones.

Exportar ►

saveMapAsImage ► Exportar como imagen…

checkbox

Guarda el diseño gráfico del modelo en un formato de archivo de imagen (con fines ilustrativos)

saveAsPDF► Exportar como PDF…

Guarda el diseño gráfico del modelo en un formato de archivo PDF (con fines ilustrativos)

saveAsSVG► Exportar como SVG…

Guarda el diseño gráfico del modelo en un formato de archivo SVG (con fines ilustrativos)

fileSave► Exportar como algoritmo de secuencia de comandos…

checkbox

Genera un archivo de script de python que incluye las instrucciones del modelo.

26.5.1.2. Menú Editar

Etiqueta

Atajos

Barra de navegación

Descripción

selectAll Seleccionar todo

Ctrl+A

Selecciona todos los componentes del modelo en el diseñador.

Ajustar los componentes seleccionados a la cuadrícula

ajusta y alinea los elementos en una cuadrícula

redo Redo

Ctrl+Y

checkbox

Revertir la última acción cancelada. Véase también el panel Undo/Redo.

undo Deshacer

Ctrl+Z

checkbox

Cancelar el cambio anterior. Véase también el panel Undo/Redo

editCut Cortar

Ctrl+X

Corta una selección de componentes del modelo.

editCopy Copiar

Ctrl+C

Copia una selección de componentes del modelo.

editPaste Pegar

Ctrl+V

Pega una selección cortada o copiada de componentes de un modelo a otro o dentro del mismo modelo. Los componentes seleccionados mantienen sus propiedades y comentarios originales.

deleteSelected Borrar componentes seleccionados

Del

Elimina un componente del modelo.

Añadir cuadro de grupo

Agrega un cuadro en el fondo de los componentes relacionados para agruparlos visualmente. Particularmente útil en modelos grandes para mantener limpio el flujo de trabajo.

26.5.1.3. Ver menú

Etiqueta

Atajos

Barra de navegación

Descripción

Acercarse ►

Hace zoom a la extensión del cuadro de grupo seleccionado

zoomIn Acercarse

Ctrl++

checkbox

zoomOut Alejarse

Ctrl+-

checkbox

zoomActual Acercamiento a 100%

Ctrl+1

checkbox

zoomFullExtent Zoom completo

Ctrl+0

checkbox

Muestra todos los componentes en el lienzo actual del diseñador.

checkbox Mostrar Comentarios

Muestra comentarios asociados a cada algoritmo o entrada en el diseñador gráfico

unchecked Habilitar ajuste

unchecked Alternar Visibilidad del Panel

Ctrl+Tab

Activa o desactiva los panels en el diseñador

26.5.1.4. Paneles

La parte izquierda de la ventana es una sección con cinco paneles que se pueden usar para agregar nuevos elementos al modelo:

  1. Model Properties: especifique el nombre (obligatorio) del modelo y el grupo en el que se mostrará en la Processing Toolbox

  2. Inputs: todos los input parameters que podrían dar forma a tu modelo

  3. Algorithms: the available Processing algorithms

  4. Variables: Models can contain dedicated variables que son únicos y solo están disponibles para ellos. Se puede acceder a estas variables mediante cualquier expresión utilizada dentro del modelo. Son útiles para controlar algoritmos dentro de un modelo y controlar múltiples aspectos del modelo cambiando una sola variable. Las variables se pueden visualizar y modificar en el panel Variables.

  5. Undo History: este panel registrará todo lo que sucede en el modelador, lo que facilita cancelar las cosas que hizo mal.

26.5.1.5. Acerca de algoritmos disponibles

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 no se puede saber de antemano el número de capas de salida), entonces no es posible usarlo dentro de un modelo y no aparecerá en la lista de algoritmos que puede encontrar en el diálogo del modelador. Por otro lado, algunos algoritmos son específicos del modelador. Esos algoritmos se encuentran dentro del grupo “Modeler Tools”.

26.5.2. Creando un modelo

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.

26.5.2.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:

Tabla 26.1 Lista de tipos de parámetros para la construcción de modelos

Annotation Layer

Authentication Configuration

Boolean

Color

Connection Name

Coordinate Operation

CRS

Database Schema

Database Table

Datetime

Distance

Duration

DXF Layers

Enum

Expression

Extent

Field Aggregates

Fields Mapper

File/Folder

Geometry

Map Layer

Map Theme

Matrix

Mesh Dataset Groups

Mesh Dataset Time

Mesh Layer

Multiple Input

Number

Point

Point Cloud Layer

Print Layout

Print Layout Item

Range

Raster Band

Raster Layer

Scale

String

TIN Creation Layers

Vector Features

Vector Field

Vector Layer

Vector Tile Writer Layers

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

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

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

Figura 26.19 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.

Al usar un modelo dentro de otro modelo, las entradas y salidas necesarias se mostrarán en el lienzo.

26.5.2.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 26.20 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 26.21 Parámetros del Algoritmo del Modelo

Como puede ver, hay sin embargo algunas diferencias. Cada parámetro tiene un menú desplegable al lado que permite controlar cómo se servirá durante el flujo de trabajo:

  • fieldInteger Valor: permite asignar un valor estático al parámetro. Dependiendo del tipo de parámetro, el widget le permitirá introducir un número (5.0), una cadena (mytext), seleccionar capa(s) cargadas en el proyecto QGIS o desde una carpeta, elegir elementos de una lista, …

  • expression Valor precalculado: abre el diálogo Constructor de expresiones y permite definir una expresión para rellenar el parámetro. Las entradas del modelo junto con algunas otras estadísticas de la capa están disponibles como variables y se listan en la parte superior del diálogo Buscar del Constructor de Expresiones. La expresión se evalúa una vez antes de ejecutar el algoritmo hijo y se utiliza durante la ejecución de dicho algoritmo.

  • processingModel Entrada del modelo: permite utilizar como parámetro una entrada añadida al modelo. Una vez pulsada, esta opción listará todas las entradas adecuadas para el parámetro.

  • processingAlgorithm Salida del algoritmo: permite utilizar la salida de otro algoritmo como entrada del algoritmo actual. Como en el caso de las entradas de modelo, esta opción listará todas las entradas adecuadas para el parámetro.

  • El parámetro de salida también tiene las opciones anteriores en su menú desplegable:

    • añadir salidas estáticas para algoritmos hijos, por ejemplo, guardar siempre la salida de un algoritmo hijo en un geopackage predefinido o en una capa postgres.

    • utilizar valores de salida basados en una expresión para los algoritmos hijos, por ejemplo, generar un nombre de archivo automático basado en la fecha de hoy y guardar los resultados en ese archivo

    • utilizar una entrada de modelo, por ejemplo, la entrada de modelo Archivo/Carpeta para especificar un archivo o carpeta de salida

    • utilizar la salida de otro algoritmo, por ejemplo, la salida del algoritmo Crear directorio (de Herramientas del modelador)

    • una opción adicional modelOutput Salida del modelo hace que la salida del algoritmo esté disponible en el modelo. Si una capa generada por el algoritmo sólo se va a utilizar como entrada para otro algoritmo, no edite ese cuadro 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 26.22 Parámetros de entrada y salida del algoritmo

También encontrará un parámetro adicional llamado Dependencies que no está disponible al llamar al algoritmo desde la caja de herramientas. Este parámetro le permite definir el orden en que se ejecutan los algoritmos, definiendo explícitamente un algoritmo como parent del actual. Esto obligará a que el algoritmo parent se ejecute 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 usando la herramienta select Select/Move Item. Esto es útil para que la estructura del modelo sea más clara e intuitiva. También puede cambiar el tamaño de los elementos, agarrando su borde. Esto es particularmente útil si la descripción de la entrada o el algoritmo es larga. Con la opción View ► Enable snapping marcada, el cambio de tamaño o el desplazamiento de los elementos se pueden vincular a una cuadrícula virtual, para un diseño de algoritmo más estructurado visualmente.

Los enlaces entre elementos se actualizan automáticamente y puede ver un botón + en la parte superior e inferior de cada algoritmo. Al hacer clic en el botón, se enumerarán todas las entradas y salidas del algoritmo para que pueda tener una descripción general rápida.

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

Figura 26.23 Un modelo completo

Con la herramienta Edit ► Add Group Box, puede agregar un box arrastrable al lienzo. Esta función es muy útil en modelos grandes para agrupar elementos relacionados 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 26.24 Recuadro de grupo de modelo

Puedes cambiar el nombre y el color de las cajas. Los cuadros de grupo son muy útiles cuando se usan junto con la herramienta View ► Zoom To ►, que le permite hacer zoom en una parte específica del modelo. También puede acercar y alejar usando la rueda del mouse.

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 26.25 Reordenar Entradas del Modelo

También se pueden agregar comentarios a las entradas o algoritmos presentes en el modelador. Esto se puede hacer yendo a la pestaña Comment del ítem o haciendo clic derecho. En la misma pestaña, se puede configurar un color de forma manual para comentarios de modelos individuales. Los comentarios solo son visibles en el lienzo del modelador y no en el cuadro de diálogo del algoritmo final; se pueden ocultar desactivando View ► Show Comments.

Puede ejecutar su algoritmo en cualquier momento haciendo clic en start Run model. Al usar el editor para ejecutar un modelo, cualquier valor no predeterminado se guardará en las entradas. Esto significa que al ejecutar el modelo en un momento posterior desde el editor, el cuadro de diálogo se llenará previamente con esos valores en cualquier ejecución posterior.

Para utilizar el algoritmo de la caja de herramientas, debe guardarse y cerrar el cuadro de diálogo del modelador para permitir que la caja de herramientas actualice su contenido.

26.5.2.3. Documentando tu modelo

Debe documentar su modelo, y esto se puede hacer desde el propio modelador. Haga clic en el botón editHelpContentEdit model help y aparecerá un cuadro de diálogo como el que se muestra a continuación.

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

Figura 26.26 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.

26.5.3. Guardar y cargar modelos.

26.5.3.1. Guardando 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 y en la opción de menú Proyecto ► Modelos.

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

26.5.3.2. 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 … `.

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

26.5.4. 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 26.27 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 26.28 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 26.29 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.