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
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.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:
Model Properties: especifique el nombre (obligatorio) del modelo y el grupo en el que se mostrará en la Processing Toolbox
Inputs: todos los input parameters que podrían dar forma a tu modelo
Algorithms: the available Processing algorithms
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.
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:
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.
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:
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.
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.
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.
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
.
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:
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, …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.
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.
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 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:
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/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 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.
Con la herramienta
, 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:Puedes cambiar el nombre y el color de las cajas. Los cuadros de grupo son muy útiles cuando se usan junto con la herramienta
, 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:
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 .
Puede ejecutar su algoritmo en cualquier momento haciendo clic en 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 Edit model help y aparecerá un cuadro de diálogo como el que se muestra a continuació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 Guardar modelo para guardar el modelo actual y el botón 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 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ú Modelos de proyecto de la caja de herramientas y en la opción de menú .
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 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 Exportar como imagen, Exportar como PDF o Exportar 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:
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.
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.
Al hacer clic derecho en un algoritmo que no está activo, verá una opción de menú :guilabel:ʻActivar` que puede usar para reactivarlo.