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 d’opérations. 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, notamment sur de plus grands modèles.
Le modeleur peut être ouvert à partir du menu Traitements.
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.
Figure Processing 17:
Deux étapes sont nécessaires pour la création d’un modèle:
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.
Définir le flux de traitements. A partir des données d’entrée du modèle, le flux 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.
La première étape pour créer un modèle est de définir les données d’entrées nécessaires. Vous trouverez les éléments suivants dans l’onglet Entrées dans la partie gauche de la fenêtre du modeleur :
Couche raster
Couche vectorielle
Chaîne de caractères
Champ d’une table
Etendue
Nombre
Booléen
Fichier
Double cliquez sur ces éléments pour faire apparaître une fenêtre avec leurs détails. Selon le paramètre, cette fenêtre peut contenir une simple description (que l’utilisateur verra à l’exécution du modèle) ou d’autres informations. Par exemple, à l’ajout d’une valeur numérique, à la description devront être définies la valeur par défaut ainsi que la liste des valeurs valides. La figure suivante illustre cette fenêtre.
Figure Processing 18:
Pour chaque donnée d’entrée ajoutée, un nouvel élément apparaît dans l’espace de travail du modeleur.
Figure Processing 19:
Vous pouvez également ajouter des données d’entrée en faisant glisser le type choisi depuis la liste et en le déposant dans le modèle à l’endroit souhaité.
Une fois les données d’entrée définies, il faut à présent ajouter les algorithmes de traitement. Ces algorithmes se situent dans l’onglet Algorithmes, regroupés par fournisseur comme dans la boîte à outils.
Figure Processing 20:
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. L’illustration suivante montre celle correspondant à l’algorithme ‘Index de convergence’ de SAGA.
Figure Processing 21:
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.
Les valeurs numériques. Les valeurs littérales peuvent être directement indiquées dans le champ correspondant. Mais ce dernier peut aussi être rempli à partir d’une donnée d’entrée du modèle. Dans ce cas, la valeur sera paramétrée par l’utilisateur à l’exécution du modèle.
Les chaînes de caractères. Comme pour les valeurs numériques, les chaînes peuvent être fixées une fois pour toute ou à l’exécution du modèle.
Un champ de table. Les champs d’une table ou d’une couche 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 des tables déjà présentes dans le modèle. 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 le bouton [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.
Les éléments peuvent être disposés et rangés en les glissant dans l’espace de travail. Cela améliore la lecture et la compréhension du modèle. Les liens entre éléments sont mis à jour automatiquement. Vous pouvez zoomer et dé-zoomer avec la molette de la souris.
Vous pouvez à tout moment exécuter votre algorithme en cliquant que le bouton [Exécuter]. Toutefois, 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.
Utilisez le bouton [Sauvegarder] pour sauvegarder le modèle courant et le bouton [Ouvrir] pour restaurer un précédent modèle. Les modèles sont sauvegardés dans un fichier avec l’extension .model. Si le modèle a précédemment été sauvegardé à partir du modeleur, vous n’aurez pas à redonner de nom de fichier, ce nom étant déjà associé au modèle sera réutilisé.
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 .model 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.
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 qu’il peut être utilisé comme tous les autres depuis la boite à outils ou depuis le modeleur.
Vous pouvez éditerle modèle sur lequel vous travaillez, en redéfinissant le flux de traitements et les relations entre algorithmes et données d’entrée.
Si vous cliquez avec le bouton droit sur un algorithme de l’espace de travail du modèle, le menu contextuel suivant apparaîtra:
Figure Processing 22:
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 :
Figure Processing 23:
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 dans l’espace de travail 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.
Figure Processing 24:
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.
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.
Figure Processing 25:
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.
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 également 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 ce faire, cliquez sur le bouton Exporter en script Python. Sélectionnez le fichier de sortie dans le dialogue de sélection de fichiers et le module de Traitements va y écrire les commandes Python qui correspondent aux opérations effectuées par le modèle.
Vous remarquerez que certains algorithmes présents dans la boîte à outils n’apparaissent pas dans la liste depuis le modeleur. Pour pouvoir être utilisé dans un modèle, un algorithme doit présenter une syntaxe correcte pour pouvoir être lié aux autres traitements. Si cela n’est pas le cas, par exemple si le nombre de couche en sortie n’est pas connu à l’avance, alors il ne sera pas possible de l’utiliser au sein d’un modèle et n’apparaîtra donc pas dans la liste du modeleur.
De même, certains algorithmes du modeleur ne sont pas disponibles dans la boîte à outils. Ils sont destinés à être utilisés dans un modèle et n’ont que peu d’intérêt en dehors de ce contexte. C’est par exemple le cas de la ‘Calculatrice’ : c’est un simple calculateur arithmétique qui vous permet de modifier une valeur numérique (saisie par l’utilisateur ou générée par un autre algorithme). Cet outil peut être utile dans un modèle, mais n’a que peu d’intérêt en dehors de ce contexte.