24.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).

24.5.1. The graphical modeler interface

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

Figura 24.16 Modelador

In its main part, the modeler has a working canvas where the structure of the model and the workflow it represents can be constructed.

At the top of the dialog, different menus and the Navigation toolbar give access to a variety of tools.

24.5.1.1. Model menu

Label

Shortcut

Navigation Toolbar

Description

success Validate Model

Checks whether the algorithms and inputs used in the model exist. Convenient before releasing a model.

play Run Model…

F5

checkbox

Executes the model

Reorder Model Inputs…

Sets the order in which inputs are presented to the user in the algorithm dialog.

fileOpen Open Model…

Ctrl+O

checkbox

Opens a .model3 file for edit or execution

fileSave Save Model

Ctrl+S

checkbox

Saves the model to disk as a .model3 file

fileSaveAs Save Model as…

Ctrl+Shift+S

checkbox

Saves the model to disk as a new .model3 file

fileSave Save Model in project

checkbox

Embeds the model file in the project file, making it available when sharing the project file.

helpContents Edit Model Help…

checkbox

An interface to document the model, the algorithms, the parameters and outputs, as well as the author and versioning

Export ►

saveMapAsImage ► Export as Image…

checkbox

Saves the model’s graphical design to an image file format (for illustration purpose)

saveAsPDF► Export as PDF…

Saves the model’s graphical design to a PDF file format (for illustration purpose)

saveAsSVG► Export as SVG…

Saves the model’s graphical design to an SVG file format (for illustration purpose)

fileSave► Export as Script Algorithm…

checkbox

Generates a python script file including the model’s instructions

24.5.1.2. Edit menu

Label

Shortcut

Navigation Toolbar

Description

selectAll Select All

Ctrl+A

Selects all the model components in the designer

Snap selected components to Grid

snaps and aligns the elements into a grid

redo Redo

Ctrl+Y

checkbox

Rollback the latest canceled action. See also the Undo/Redo panel.

undo Undo

Ctrl+Z

checkbox

Cancel the previous change. See also the Undo/Redo panel.

editCut Cut

Ctrl+X

Cuts a selection of components from the model.

editCopy Copy

Ctrl+C

Copies a selection of components from the model.

editPaste Paste

Ctrl+V

Pastes a cut or copied selection of components from a model to another or within the same model. The selected components keep their original properties and comments.

deleteSelected Delete selected components

Del

Removes a component from the model.

Add Group Box

Adds a box at the background of related components in order to visually group them. Particularly useful in big models to keep the workflow clean.

24.5.1.3. View menu

Label

Shortcut

Navigation Toolbar

Description

Zoom To ►

Zooms to the selected group box extent

zoomIn Zoom In

Ctrl++

checkbox

zoomOut Zoom Out

Ctrl+-

checkbox

zoomActual Zoom to 100%

Ctrl+1

checkbox

zoomFullExtent Zoom Full

Ctrl+0

checkbox

Displays all the components in the designer current canvas

checkbox Show Comments

Displays comments associated to every algorithm or input in the graphical designer

unchecked Enable Snapping

unchecked Toggle Panel Visibility

Ctrl+Tab

Switches ON or OFF the panels in the designer

24.5.1.4. Panels

The left part of the window is a section with five panels that can be used to add new elements to the model:

  1. Model Properties: specify the name (required) of the model and the group in which it will be displayed in the Processing Toolbox

  2. Inputs: all the input parameters that could shape your model

  3. Algorithms: the available Processing algorithms

  4. Variables: Models can contain dedicated variables that are unique and only available to them. These variables can be accessed by any expression used within the model. They are useful to control algorithms within a model and control multiple aspects of the model by changing a single variable. The variables can be viewed and modified in the Variables panel.

  5. Undo History: this panel will register everything that happens in the modeler, making it easy to cancel things you did wrong.

24.5.1.5. Acerca de algoritmos disponibles

Some algorithms that can be executed from the toolbox do not appear in the list of available algorithms when you are designing a model. To be included in a model, an algorithm must have the correct semantic. If an algorithm does not have such a well-defined semantic (for instance, if the number of output layers cannot be known in advance), then it is not possible to use it within a model, and it will not appear in the list of algorithms that you can find in the modeler dialog. On the other hand some algorithms are specific to the modeler. Those algorithms are located within the group “Modeler Tools”.

24.5.2. Creating a model

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.

24.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 24.1 List of parameter types for model building

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

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

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

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

When using a model within another model, the inputs and outputs necessary will be displayed in the canvas.

24.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 24.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 24.20 Parámetros del Algoritmo del Modelo

As you can see, there are however some differences. Each parameter has a drop-down menu next to it allowing to control how it will be served during the workflow:

  • Valor fieldInteger: 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.

  • outputs parameters have the addditional modelOutput Model Output option that makes the output of the algorithm available in the model. If a layer generated by the algorithm is only to be used as input to another algorithm, don’t edit that text box.

    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 24.21 Parámetros de entrada y salida del algoritmo

You will also find an additional parameter named Dependencies that is not available when calling the algorithm from the toolbox. This parameter allows you to define the order in which algorithms are executed, by explicitly defining one algorithm as a parent of the current one. This will force the parent algorithm to be executed before the current one.

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.

Elements can be dragged to a different position on the canvas using the select Select/Move Item tool. This is useful to make the structure of the model clearer and more intuitive. You can also resize the elements, grasping their border. This is particularly useful if the description of the input or algorithm is long. With View ► Enable snapping option checked, items resizing or displacement can be bound to a virtual grid, for a more visually structured algorithm design.

Links between elements are updated automatically and you can see a + button at the top and at the bottom of each algorithm. Clicking the button will list all the inputs and outputs of the algorithm so you can have a quick overview.

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

Figura 24.22 Un modelo completo

With the Edit ► Add Group Box tool, you can add a draggable box to the canvas. This feature is very useful in big models to group related elements in the modeler canvas and to keep the workflow clean. For example we might group together all the inputs of the example:

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

Figura 24.23 Recuadro de grupo de modelo

You can change the name and the color of the boxes. Group boxes are very useful when used together with View ► Zoom To ► tool, allowing you to zoom to a specific part of the model. You can also zoom in and out by using the mouse wheel.

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

Comments can also be added to inputs or algorithms present in the modeler. This can be done by going in the Comment tab of the item or with a right-click. In the same tab a color can be set manual for individual model comments. Comments are visible only in the modeler canvas and not in the final algorithm dialog; they can be hidden by deactivating View ► Show Comments.

You can run your algorithm any time by clicking on the start Run model button. When using the editor to execute a model, any non-default values will be saved in the inputs. This means that executing the model at a later time from the editor will have the dialog prefilled with those values on any subsequent run.

In order to use the algorithm from the toolbox, it has to be saved and the modeler dialog closed, to allow the toolbox to refresh its contents.

24.5.2.3. Documenting your model

You need to document your model, and this can be done from the modeler itself. Click on the editHelpContentEdit model help button, and a dialog like the one shown next will appear.

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

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

24.5.3. Guardar y cargar modelos.

24.5.3.1. Saving models

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

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

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

24.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 24.26 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 24.27 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 24.28 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.