23.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 partie 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 dispose d’un canevas de travail où la structure du modèle et le flux de travail qu’il représente sont indiqués. La partie gauche de la fenêtre est une section avec cinq panneaux qui peuvent être utilisés pour ajouter de nouveaux éléments au modèle :

  1. Propriétés du modèle : vous pouvez spécifier le nom du modèle et le groupe qui le contient

  2. Entrées : toutes les entrées qui formeront votre modèle

  3. Algorithmes : les algorithmes de traitement disponibles

  4. Variables : vous pouvez également définir des variables qui ne seront disponibles que dans le modeleur de traitement

  5. Annuler historique : ce panneau enregistre tout ce qui se passe dans le modeleur, ce qui permet d’annuler facilement les choses que vous avez mal réalisées.

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

Fig. 23.16 Modeleur

La création d’un modèle comporte deux étapes fondamentales :

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

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

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

  • Configuration de l’authentification

  • Booléen

  • Couleur

  • Nom de la connexion

  • Coordonner l’opération

  • SCR

  • Schéma de la base de données

  • Table de la base de données

  • Datetime

  • Distance

  • Énumération

  • Expression

  • Emprise

  • Agrégats de champ

  • Mappage de champs

  • Fichier/Dossier

  • Géométrie

  • Couche

  • Thème de la carte

  • Table

  • Couche de maillage

  • 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

  • Création de couches TIN

  • Entités vectorielles

  • Champs vectoriel

  • Couche vecteur

  • Couches de tuiles vecteur

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.

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

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

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.

L’onglet Commentaires vous permet de marquer l’entrée avec plus d’informations, pour mieux décrire le paramètre. Les commentaires ne sont visibles que dans le canevas du modeleur et non dans le dialogue final de l’algorithme.

Pour chaque entrée supplémentaire, un nouvel élément est ajouté au canevas du modeleur.

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

Fig. 23.18 Paramètres du modèle

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.

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

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

Fig. 23.19 Entrées du modèle

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.

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

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

Comme vous pouvez le constater, il y a quelques différences.

Vous avez quatre choix pour définir l’algorithme source :

  • integer Valeur : permet de définir le paramètre à partir d’une couche chargée dans le projet QGIS ou de parcourir une couche à partir d’un dossier

  • expression Valeur pré-calculée : avec cette option, vous pouvez ouvrir le générateur d’expression et définir votre propre expression pour remplir le paramètre. Les entrées du modèle ainsi que certaines autres statistiques de couche sont disponibles sous forme de variables et sont listées en haut de la boîte de dialogue de recherche du générateur d’expression

  • processingModel Modèle source : choisissez cette option si le paramètre provient d’une entrée du modèle que vous avez défini. Une fois que vous aurez cliqué sur cette option, vous obtiendrez une liste de toutes les entrées appropriées pour le paramètre

  • processing Algorithme sortie : est utile lorsque le paramètre d’entrée d’un algorithme est une sortie d’un autre algorithme

Les sorties de l’algorithme ont l’option supplémentaire processingOutput Modèle de sortie qui rend la sortie de l’algorithme disponible dans le modèle.

Si une couche générée par l’algorithme ne doit être utilisée qu’en entrée d’un autre algorithme, ne modifiez pas cette zone de texte.

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 :

../../../_images/models_parameters5.png

Fig. 23.21 Paramètres d’entrée et de sortie de l’algorithme

Dans tous les cas, vous trouverez un paramètre supplémentaire appelé Dépendances qui n’est pas disponible lorsque vous appelez l’algorithme depuis la boîte à outils. Ce paramètre vous permet de définir l’ordre dans lequel les algorithmes sont exécutés, en définissant explicitement un algorithme comme parent de l’algorithme courant. Cela obligera l’algorithme parent à être exécuté avant l’algorithme actuel.

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.

Les éléments peuvent être glissés dans une position différente sur le canevas. Cela est utile pour rendre la structure du modèle plus claire et plus intuitive. Vous pouvez également redimensionner les éléments. Ceci est particulièrement utile si la description de l’entrée ou de l’algorithme est longue.

Les liens entre les éléments sont mis à jour automatiquement et vous pouvez voir un bouton « plus » en haut et en bas de chaque algorithme. En cliquant sur le bouton, vous obtiendrez la liste de toutes les entrées et sorties de l’algorithme, ce qui vous permettra d’avoir une vue d’ensemble rapide.

Vous pouvez faire un zoom avant et arrière en utilisant la molette de la souris.

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

Fig. 23.22 Un modèle complet

Vous pouvez exécuter votre algorithme à tout moment en cliquant sur le bouton start. Pour pouvoir utiliser l’algorithme de la boîte à outils, il faut l’enregistrer et fermer la boîte de dialogue du modeleur, afin de permettre à la boîte à outils de rafraîchir son contenu.

23.5.3. Interaction canevas et éléments

Vous pouvez utiliser les boutons zoomIn, zoomOut, zoomActual et zoomFullExtent pour zoomer sur le canevas du modeleur. Le comportement des boutons est essentiellement le même que celui de la barre d’outils principale de QGIS.

Le panneau Historique d'annulation ainsi que les boutons undo et redo sont extrêmement utiles pour revenir rapidement à une situation antérieure. Le panneau Historique d'annulation liste tout ce que vous avez fait lors de la création du flux de travai

Vous pouvez déplacer ou redimensionner de nombreux éléments en même temps en les sélectionnant d’abord, en faisant glisser la souris.

Si vous voulez capturer les éléments tout en les déplaçant dans le canevas, vous pouvez choisir Vue ► Activer l’accrochage.

Le menu Modifier contient des options très utiles pour interagir avec les éléments de votre modèle :

  • selectAllSélectionner tous : sélectionner tous les éléments du modèle

  • Accrocher les composants sélectionnés à la grille : accrocher et aligner les éléments dans une grille

  • undoUndo : annuler la dernière action

  • redoRedo : refaire la dernière action

  • editCutcouper : couper les éléments sélectionnés

  • editCopyCopier : copier les éléments sélectionnés

  • editPastecoller : coller les éléments

  • deleteSelectedSupprimer les composants sélectionnés : supprimez tous les éléments sélectionnés du modèle

  • Ajouter une boîte de groupe : ajouter une boîte glissante au canevas. Cette fonctionnalité est très utile dans les grands modèles pour regrouper des éléments dans le canevas du modeleur et pour garder le flux de travail propre. Par exemple, nous pouvons regrouper toutes les entrées de l’exemple :

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

    Fig. 23.23 Boîte de groupe modèle

Vous pouvez changer le nom et la couleur des boites. Les boîtes de groupe sont très utiles lorsqu’elles sont utilisées avec Vue ► Zoomer vers. Cela vous permet de zoomer sur une partie spécifique du modèle.

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 :

../../../_images/model_reorder_inputs.png

Fig. 23.24 Réorganiser les entrées du modèle

23.5.4. Sauvegarder et charger des modèles

Utilisez le bouton fileSaveSauvegarder le modèle pour enregistrer le modèle actuel et le bouton fileOpenouvrir 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 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 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à.

23.5.4.1. 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 saveMapAsImageExporter en tant qu’image, saveAsPDFExporter en PDF ou saveAsSVG:sup:`Exporter en SVG ` .

23.5.5. É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 :

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

Fig. 23.25 Clic-droit sur un algorithme

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 :

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

Fig. 23.26 Impossible de supprimer l’algorithme

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.

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

Fig. 23.27 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.

23.5.6. Éditer l’aide et les métadonnées

Vous pouvez documenter vos modèles à partir du modeleur lui-même. Cliquez sur le bouton processingHelpEditer l’aide du modèle, et une boîte de dialogue comme celle qui suit apparaîtra.

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

Fig. 23.28 É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 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.

23.5.7. 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 saveAsPythonExporter 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 saveAsPythonExporter le modèle comme Algorithme Python….

23.5.8. À 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 bien définie (par exemple, si le nombre de couches en 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 modeleur.