26.5. Le Modeleur
The model designer allows you to create complex models using a simple and easy-to-use interface. When working with a GIS, most analysis operations are not isolated, rather part of a chain of operations. Using the model designer, that chain of operations can be wrapped into a single process, making it convenient to execute later with a different set of inputs. No matter how many steps and different algorithms it involves, a model is executed as a single algorithm, saving time and effort.
Le modeleur graphique s’ouvre depuis le menu Traitement (
).26.5.1. L’interface du modeleur
Dans sa partie principale, le modeleur présente un canevas de travail où l’on peut élaborer la structure du modèle et les processus qui le représentent.
En haut de la fenêtre, différents menus et la barre d’outils Navigation donnent accès à divers outils.
26.5.1.4. Panneaux
La partie gauche de la fenêtre est une section avec cinq panneaux qui peuvent être utilisés pour ajouter des éléments au modèle :
Propriétés du modèle : Spécifie le nom (requis) du modèle et le groupe dans lequel il apparaitra dans la boîte à outils de traitement.
Entrées : tous les paramètres d’entrée qui peuvent alimenter votre modèle.
Algorithmes: les algorithmes de traitement disponibles.
Variables: Les modèles peuvent contenir des variables spécifiques qui sont uniques et uniquement accessibles par eux. Ces variables peuvent être utilisées dans les expressions définies au sein d’un modèle. Elles sont utiles pour contrôler les algorithmes dans un modèle et contrôler des aspects multiples du modèle en changeant simplement une variable. Les variables peuvent être vues et modifiées dans le panneau Variables.
Historique: Ce panneau indique tout ce qui intervient dans le modeleur, rendant l’annulation d’erreurs plus facile.
26.5.1.5. À propos des algorithmes disponibles
Certains algorithmes qui peuvent être exécutés à partir de la boîte à outils n’apparaissent pas dans la liste des algorithmes disponibles lorsque vous concevez un modèle. Pour être inclus dans un modèle, un algorithme doit avoir la bonne sémantique. Si un algorithme n’a pas une telle sémantique bien définie (par exemple, si le nombre de couches de sortie ne peut pas être connu à l’avance), il n’est pas possible de l’utiliser dans un modèle, et il n’apparaîtra pas dans la liste des algorithmes que vous pouvez trouver dans le dialogue du modeleur. D’autre part, certains algorithmes sont spécifiques au modeleur. Ces algorithmes sont situés dans le groupe “Outils du modeleur”.
26.5.2. Créer un modèle
La création d’un modèle comporte deux étapes fondamentales :
Définition des entrées nécessaires. Ces entrées seront ajoutées à la fenêtre des paramètres, afin que l’utilisateur puisse définir leurs valeurs lors de l’exécution du modèle. Le modèle lui-même est un algorithme, la fenêtre des paramètres est donc générée automatiquement comme pour tous les algorithmes disponibles dans le cadre de traitement.
Définir la chaîne de traitements. À partir des données d’entrée du modèle, la chaîne de traitements est définie en ajoutant des algorithmes et en sélectionnant comment ces derniers utiliseront les données ou d’autres données générées par d’autres algorithmes déjà présents dans le modèle.
26.5.2.1. Définition des données d’entrée
La première étape consiste à définir les données d’entrée du modèle. Les éléments suivants se trouvent dans le panneau Entrées sur le côté gauche de la fenêtre du modeleur :
Note
En survolant les entrées avec la souris, une info-bulle contenant des informations supplémentaires apparaîtra.
En double-cliquant sur un élément, un dialogue s’affiche pour vous permettre de définir ses caractéristiques. Selon le paramètre, le dialogue contiendra au moins un élément (la description, qui est ce que l’utilisateur verra en exécutant le modèle). Par exemple, lors de l’ajout d’une valeur numérique, comme le montre la figure suivante, en plus de la description du paramètre, vous devez définir une valeur par défaut et la plage des valeurs valides.
Vous pouvez définir votre entrée comme obligatoire pour votre modèle en cochant l’option Obligatoire
et en cochant la case Avancé
si elle n’est pas cochée, vous pouvez définir l’entrée comme étant dans la section Avancé
. Cela est particulièrement utile lorsque le modèle comporte de nombreux paramètres et que certains d’entre eux ne sont pas triviaux, mais que vous souhaitez néanmoins les choisir.
Pour chaque entrée supplémentaire, un nouvel élément est ajouté au canevas du modeleur.
Vous pouvez également ajouter des entrées en faisant glisser le type d’entrée depuis la liste et en le déposant à l’endroit où vous le souhaitez dans le canevas du modeleur. Si vous souhaitez modifier un paramètre d’une entrée existante, il vous suffit de double-cliquer dessus, et la même boîte de dialogue s’affichera.
When using a model within another model, the inputs and outputs necessary will be displayed in the canvas.
26.5.2.2. Définition d’un flux de traitements
Dans l’exemple suivant, nous allons ajouter deux entrées et deux algorithmes. L’objectif du modèle est de copier les valeurs d’élévation d’une couche raster du MNT vers une couche linéaire en utilisant l’algorithme Drape
, puis de calculer l’ascension totale de la couche linéaire en utilisant l’algorithme Climb Along Line
.
Dans l’onglet Entrées, choisissez les deux entrées comme Couche vecteur
pour la ligne et Couche raster
pour le MNT. Nous sommes maintenant prêts à ajouter les algorithmes au flux de travail.
Les algorithmes peuvent être trouvés dans le panneau Algorithmes, regroupés à peu près de la même manière qu’ils le sont dans la boîte à outils Processing.
Pour ajouter un algorithme à un modèle, double-cliquez sur son nom ou glissez-déposez-le, comme pour les entrées. Comme pour les entrées, vous pouvez modifier la description de l’algorithme et ajouter un commentaire. Lors de l’ajout d’un algorithme, un dialogue d’exécution apparaîtra, avec un contenu similaire à celui du panneau d’exécution qui est affiché lors de l’exécution de l’algorithme à partir de la boîte à outils. L’image suivante montre les dialogues d’algorithme Drape (set Z value from raster)
et Climb along line
.
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:
Value: allows you to assign a static value to the parameter. Depending on the parameter type, the widget will let you enter a number (
5.0
), a string (mytext
), select layer(s) loaded in the QGIS project or from a folder, pick items from a list, …Pre-calculated Value: opens the Expression Builder dialog and lets you define an expression to fill the parameter. Model inputs together with some other layer statistics are available as variables and are listed at the top of the Search dialog of the Expression Builder. The expression is evaluated once before the child algorithm is executed and used during the execution of that algorithm.
Model Input: allows to use an input added to the model as a parameter. Once clicked, this option will list all the suitable inputs for the parameter.
Algorithm Output: allows to use the output of another algorithm as an input of the current algorithm. As of model inputs, this option will list all the suitable inputs for the parameter.
The output parameter also has the above options in its drop-down menu:
add static outputs for child algorithms, e.g. always saving a child algorithm’s output to a predefined geopackage or postgres layer
use an expression based output values for child algorithms, e.g. generating an automatic file name based on today’s date and saving outputs to that file
use a model input, e.g. the File/Folder model input to specify an output file or folder
use another algorithm output, e.g. the output of the Create directory algorithm (from Modeler tools)
an addditional Model Output option 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.
Dans l’image suivante, vous pouvez voir les deux paramètres d’entrée définis comme
Entrée du modèle
et la couche de sortie temporaire :
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.
Lorsque vous utilisez la sortie d’un algorithme précédent comme entrée de votre algorithme, cela définit implicitement l’algorithme précédent comme parent de l’algorithme actuel (et place la flèche correspondante dans le canevas du modeleur). Cependant, dans certains cas, un algorithme peut dépendre d’un autre même s’il n’utilise aucun objet de sortie de celui-ci (par exemple, un algorithme qui exécute une phrase SQL sur une base de données PostGIS et un autre qui importe une couche dans cette même base de données). Dans ce cas, il suffit de sélectionner l’algorithme précédent dans le paramètre Dépendances et ils seront exécutés dans le bon ordre.
Une fois tous les paramètres remplis, validez avec OK et l’algorithme sera ajouté au canevas. Il sera lié aux autres éléments déjà présents, données d’entrée ou algorithmes fournissant des objets à utiliser comme entrée de cet algorithme.
Elements can be dragged to a different position on the canvas using the 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 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.
With the
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:You can change the name and the color of the boxes. Group boxes are very useful when used together with
tool, allowing you to zoom to a specific part of the model. You can also zoom in and out by using the mouse wheel.Vous pouvez modifier l’ordre des entrées et la façon dont elles sont énumérées dans le dialogue principal du modèle. En bas du panneau Entrée
, vous trouverez le bouton Réorganiser les entrées du modèle...
et en cliquant dessus, une nouvelle boîte de dialogue apparaît, vous permettant de modifier l’ordre des entrées :
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 .
You can run your algorithm any time by clicking on the 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.
26.5.2.3. Documenting your model
You need to document your model, and this can be done from the modeler itself. Click on the Edit model help button, and a dialog like the one shown next will appear.
Sur la partie droite apparaîtra une simple page HTML, créée à partir de la description des paramètres d’entrées et des sorties de l’algorithme, ainsi que d’autres éléments tels que la description générale du modèle ou ses auteurs. À la première ouverture de l’éditeur d’aide, ces champs seront vides, mais vous pouvez les éditer à partir des éléments situés à gauche de la fenêtre. Sélectionnez un élément dans la partie supérieure puis remplissez sa description dans la partie inférieure.
L’aide d’un modèle est enregistrée comme une partie intégrante du modèle.
26.5.3. Sauvegarder et charger des modèles
26.5.3.1. Saving models
Utilisez le bouton Sauvegarder le modèle pour enregistrer le modèle actuel et le bouton ouvrir modèle pour ouvrir un modèle précédemment enregistré. Les modèles sont enregistrés avec l’extension .model3
. Si le modèle a déjà été sauvegardé à partir de la fenêtre du modeleur, aucun nom de fichier ne vous sera demandé. Comme il y a déjà un fichier associé au modèle, ce fichier sera utilisé pour les sauvegardes ultérieures.
Avant de sauvegarder un modèle, il faudra définir son nom et le groupe auquel il appartient. Pour cela, remplissez les deux champs texte situés sur la partie haute de la fenêtre.
Les modèles sauvegardés dans le répertoire models
(le répertoire par défaut) apparaîtront dans la boîte à outils dans le groupe correspondant. Lorsque la boîte à outils est ouverte, tous les fichiers portant l’extension .model3
du répertoire models
sont chargés. Comme le modèle fait maintenant partie des algorithmes, il peut être utilisé comme tous les autres depuis la boite à outils ou depuis le modeleur.
Les modèles peuvent également être enregistrés dans le fichier de projet via le bouton Enregistrer le modèle dans le projet. Les modèles sauvegardés par ce biais ne seront pas enregistrés dans un fichier .model3
mais directement intégrés au fichier du projet.
Project models are available in the Project models menu of the toolbox and in the menu item.
Le répertoire par défaut des modèles peut être défini dans les configurations du Module de Traitements, dans le groupe Modèles.
Les modèles sauvegardés dans le répertoire models
apparaîtront dans la boîte à outils dans le groupe correspondant ainsi que dans la liste des Algorithmes proposés dans le modeleur. Cela signifie que vous pouvez utiliser un modèle depuis un autre modèle, comme tous les algorithmes.
Les modèles apparaîtront dans le panneau Browser et pourront être exécutés à partir de là.
26.5.3.2. Exporter le modèle en script Python
Comme nous le verrons dans un chapitre ultérieur, les algorithmes de traitement peuvent être appelés depuis la console Python de QGIS, et de nouveaux algorithmes de traitement peuvent être créés à l’aide de Python. Un moyen rapide de créer un tel script Python est de créer un modèle et de l’exporter ensuite sous forme de fichier Python.
Pour ce faire, cliquez sur le bouton Exporter comme Algorithme de script… dans le canevas du modeleur ou faites un clic droit sur le nom du modèle dans la boîte à outils de traitement et choisissez Exporter le modèle comme Algorithme Python….
26.5.3.3. Exporter un modèle comme image, PDF ou SVG.
Un modèle peut également être exporté en tant qu’image, SVG ou PDF (à des fins d’illustration) en cliquant sur Exporter en tant qu’image, Exporter en PDF ou Exporter en SVG.
26.5.4. Éditer un modèle
Vous pouvez éditer le modèle sur lequel vous travaillez, en redéfinissant la chaîne de traitements et les relations entre algorithmes et données d’entrée.
Si vous faites un clic-droit sur un algorithme dans le canevas, le menu contextuel suivant apparaîtra :
Choisissez l’option Supprimer pour supprimer l’algorithme sélectionné. Un algorithme ne peut être enlevé que si aucun autre algorithme ne dépend de lui, c’est-à-dire si aucune de ses sorties n’est utilisée par ailleurs. Si vous tentez de supprimer un algorithme utilisé par ailleurs, le message d’avertissement suivant s’affichera :
En sélectionnant l’option Editer…, le dialogue de paramétrage de l’algorithme s’affichera, ce qui vous permettra de modifier les entrées et les valeurs des paramètres. Tous les éléments d’entrée disponibles dans le modèle n’apparaîtront pas comme des entrées disponibles. Les couches ou les valeurs générées à une étape plus avancée du flux de travail défini par le modèle ne seront pas disponibles si elles provoquent des dépendances circulaires.
Sélectionnez les nouvelles valeurs et validez avec le bouton OK. Les liens entre les éléments du modèle seront actualisés sur le canevas du modeleur.
ajouter commentaire… vous permet d’ajouter un commentaire à l’algorithme pour mieux décrire le comportement.
Un modèle peut être exécuté partiellement en désactivant certains de ses algorithmes. Pour ce faire, sélectionnez l’option désactiver dans le menu contextuel qui apparaît lorsque l’on clique avec le bouton droit de la souris sur un élément de l’algorithme. L’algorithme sélectionné, et tous ceux du modèle qui en dépendent, seront affichés en gris et ne seront pas exécutés en tant que partie du modèle.
Si vous faîtes un clic-droit sur un algorithme qui n’est pas actif, vous verrez alors l’option Activer du menu que vous pouvez utiliser pour le rendre actif.