22.5. Le modeleur graphique

Le modeleur graphique vous permet de créer des modèles complexes en utilisant une interface simple et facile à utiliser. Dans un SIG, la plupart des opérations d’analyses ne sont pas simples mais font parties d’une chaîne de traitements. En utilisant le modeleur graphique, cette chaîne de traitements peut être regroupée dans une tâche, qui est plus simple à exécuter et peut être réutilisée sur d’autres jeux de données. Peu importe le nombre d’étapes et d’algorithmes impliqués, un modèle est exécuté comme un seul algorithme, permettant ainsi d’économiser temps et effort.

Le modeleur graphique s’ouvre depuis le menu Traitement (Traitement ▶ Modeleur graphique…).

Le modeleur possède un espace de travail où sont représentés la structure du modèle et le flux de traitement. Sur la partie gauche se trouve un panneau avec deux onglets pour ajouter de nouveaux éléments au modèle.

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

Fig. 22.18 Modeleur

Deux étapes sont nécessaires pour la création d’un modèle:

  1. Définir les entrées nécessaires. Ces entrées seront ajoutées à la fenêtre des paramètres, afin que l’utilisateur puisse y fixer les valeurs nécessaires à l’excéution du modèle. Le modèle en lui-même est un algorithme. Ainsi la fenêtre des paramètres est générée automatiquement comme cela est le cas pour tous les algorithmes fournis avec le Module de Traitements.

  2. Définir la chaîne de traitements. A partir des données d’entrée du modèle, la chaîne de traitements est défini 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.

22.5.1. Définition des données d’entrée

La première étape est de définir les données d’entrées du modèle. Vous trouverez les éléments suivants dans l’onglet Entrées dans la partie gauche de la fenêtre du modeleur :

  • Configuration de l’authentification

  • Booléen

  • SCR

  • Couleur

  • Distance

  • Énumération

  • Expression

  • Etendue

  • Mappage de champs

  • Fichier/Dossier

  • Couche

  • Table

  • Sources multiples

  • Nombre

  • Point

  • Mise en page de cartes

  • Objet d’une mise en page de cartes

  • Plage

  • Bande raster

  • Couche raster

  • Échelle

  • Chaîne de caractères

  • Entités vectorielles

  • Champs vectoriel

  • Couche vecteur

Lorsque l’on double-clique sur un élément, une fenêtre apparaît et vous permet de définir ses caractéristiques. Selon le paramètre, cette fenêtre contiendra au moins un élément (la description que l’utilisateur verra à l’exécution du modèle). A l’ajout d’une valeur numérique, comme on peut le voir sur la figure suivante, en plus de la description du paramètre, vous devez définir une valeur par défaut et une plage de valeurs.

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

Fig. 22.19 Définition des Paramètres du Modèle

Votre entrée peut être obligatoire pour votre modèle en cochant l’option checkboxObligatoire et en cochant la case uncheckedAvancé, l’entrée fera partie des paramètres avancés. Ceci est particulièrement pratique lorsque le modèle à de nombreux paramètres dont certains non triviaux mais que vous souhaitez les choisir. Pour chaque entrée ajoutée, un nouvel élément est ajouté au canevas.

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

Fig. 22.20 Paramètres du modèle

Vous pouvez également ajouter des données d’entrée en faisant glisser le type choisi depuis la liste et en le déposant à l’endroit souhaité dans le canevas du modèle.

22.5.2. Définition d’un flux de traitements

Une fois les données d’entrée définies, il faut à présent définir les algorithmes du modèle. Ils se situent dans l’onglet Algorithmes, regroupés de la même manière que dans la boîte à outils de traitements.

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

Fig. 22.21 Entrées du modèle

Pour ajouter un algorithme, double-cliquez sur son nom ou faites le glisser comme pour les données d’entrée. Une boîte d’exécution apparaît, semblable à celle qui apparaît lorsque l’on lance ce même algorithme à partir de la boîte à outils. Celles montrées ci-après correspondent aux algorithmes de QGIS “Drapé (régler la valeur z du raster)” et “Dénivelés le long de lignes 3D”.

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

Fig. 22.22 Paramètres du modèle de l’algorithme

Comme vous pouvez le voir, quelques différences existent entre les deux fenêtres. Ainsi, le nom de fichier en sortie de l’algorithme est remplacé par un simple champ texte. Pour créer une couche temporaire en sortie pour être utilisée par un autre algorithme et supprimée à la fin, laissez le champ texte vide. Dans le cas contraire, la couche résultante sera un résultat final de l’algorithme et portera le nom défini dans le champ de texte. C’est ce nom que verra l’utilisateur du modèle à son exécution.

La sélection des valeurs de chaque paramètre s’effectue également différemment, en raison de la différence de contexte entre le modeleur et la boite à outils. Détaillons les valeurs pour chaque type de paramètre.

  • Les couches raster et vectorielles et les tables. Elles sont à choisir dans une liste, non pas des couches ou tables déjà chargées dans QGIS, mais soit des entrées du modèle, soit des couches et/ou tables générées par les algorithmes déjà présents dans le modèle.

  • Valeurs numériques. Les valeurs littérales peuvent être introduites directement dans la zone de texte. En cliquant sur le bouton à côté de la zone de texte, des expressions peuvent être saisies. Les variables disponibles pour les expressions incluent les entrées numériques du modèle, les sorties des algorithmes du modèle et également les valeurs statistiques des couches disponibles dans le modèle.

  • Chaîne. Les chaînes littérales peuvent être saisies dans la zone de texte correspondante. En cliquant sur le bouton à côté de la zone de texte, les expressions peuvent être saisies, comme pour les valeurs numériques.

  • Champ vectoriel. Les champs de la table d’une couche vecteur ne sont pas connus au moment de la conception du modèle, puisqu’ils seront définis à l’exécution du modèle. Pour remplir ce paramètre, entrez le nom du champ directement dans le champ texte correspondant ou sélectionnez-le dans la liste des champs. La validité du champ sélectionné sera vérifiée à l’exécution.

Dans tous les cas, vous trouverez un paramètre supplémentaire nommé Algorithme parent qui n’est pas disponible lors de l’appel de l’algorithme via la boîte à outils. Ce paramètre vous permet de choisir dans quel ordre seront exécutés les algorithmes, en définissant explicitement un algorithme qui sera parent d’un autre, son exécution sera forcée en premier.

Lorsque vous utilisez les sorties d’un algorithme comme entrée de votre algorithme, le premier est implicitement défini comme l’algorithme parent du votre (et ajoute la flèche correspondante sur le modèle). Cependant, dans certains cas, un algorithme peut dépendre d’un autre même s’il n’en utilise pas les sorties (par exemple un algorithme qui exécute une requête 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, sélectionnez le simplement dans le paramètre Algorithme parent et l’exécution se fera 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.

Les éléments peuvent être disposés et déplacés en les glissant dans le canevas. Cela s’avère utile pour rendre la structure du modèle plus claire et plus lisible. Les liens entre éléments sont mis à jour automatiquement. Vous pouvez zoomer et dé-zoomer avec la molette de la souris.

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

Fig. 22.23 Un modèle complet

Vous pouvez à tout moment exécuter votre algorithme en cliquant que le bouton Exécuter. Pour pouvoir l’utiliser à partir de la boîte à outils, le modèle doit être sauvegardé et le modeleur fermé. La boîte à outils pourra alors mettre à jour les traitements disponibles.

22.5.3. Sauvegarder et charger les modèles

Utilisez le bouton Sauvegarder pour sauvegarder le modèle courant et le bouton Ouvrir pour ouvrir un modèle existant. Les modèles sont sauvegardés dans un fichier avec l’extension .model3. Si le modèle a précédemment été sauvegardé à partir du modeleur, vous n’aurez pas à redonner de nom de fichier. Ce fichier étant déjà associé au modèle, il sera utilisé pour les sauvegardes suivantes.

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

Les modèles associés au projet sont disponibles depuis le menu qgsProjectFileModèles du projet de la boîte à outils.

Le répertoire par défaut des modèles peut être défini dans les configurations du Module de Traitements, dans le groupe Modeles.

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 apparaissent dans le panneau Browser et peuvent y être lancés directement.

22.5.3.1. Exporter un modèle comme image, PDF ou SVG.

Un modèle peut également être exporté en tant qu’image, fichier SVG ou PDF (pour des besoins d’illustration).

22.5.4. Editer 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 :

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

Fig. 22.24 Clic-droit sur un algorithme

Choisissez l’option Enlever 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 :

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

Fig. 22.25 Impossible de supprimer l’algorithme

Choisissez l’option Éditer pour afficher la fenêtre des paramètres de l’algorithme, pour changer les données en entrée et les paramètres. Tous les paramètres d’entrée ne seront pas systématiquement affichés. Les couches ou les valeurs générées en amont dans le flux de traitement ne seront ainsi pas disponibles, pour éviter les références 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.

Un modèle peut tourner partiellement en désactivant certains de ses algorithmes. Pour ce faire, sélectionnez l’option Désactiver qui figure dans le menu contextuel qui apparaît en faisant un clic-droit sur un algorithme. Celui-ci et tous les autres qui en dépendent figureront en gris et ne seront pas exécutés par le modèle.

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

Fig. 22.26 Modèle dont un algorithme a été désactivé

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.

22.5.5. Editer l’aide et les métadonnées

Vous pouvez documenter vos modèles. Cliquez sur le bouton Éditer l’aide du modèle et une fenêtre semblable à celle-ci apparaîtra.

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

Fig. 22.27 Éditer la documentation

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 description générale du modèle ou ses auteurs. A 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.

22.5.6. Exporter le modèle en script Python

Comme nous le verrons dans un des chapitres suivants, les algorithmes peuvent être appelés depuis la console Python de QGIS et de nouveaux algorithmes peuvent être créés directement en Python. Une manière rapide de créer un script Python est de créer un modèle puis de l’exporter en Python.

Pour cet export, faites un clic-droit sur le nom du modèle dans la Boîte à outils de traitements et cliquez sur Exporter le modèle comme un Algorithme Python….

22.5.7. A propos des algorithmes disponibles

Vous remarquerez peut-être que certains algorithmes pouvant ê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 sémantique aussi 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 la boîte de dialogue du modeleur.