` `
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.
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.
Pour chaque donnée d’entrée ajoutée, un nouvel élément apparaît dans l’espace de travail du modeleur.
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.
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.
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.
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.
Once all the parameters have been assigned valid values, click on [OK] and the algorithm will be added to the canvas. It will be linked to all the other elements in the canvas, whether algorithms or inputs, that provide objects that are used as inputs for that algorithm.
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.
You can run your algorithm any time by clicking on the [Run] button. However, 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.
Use the [Save] button to save the current model and the [Open] button to open any model previously saved. Models are saved with the .model extension. If the model has been previously saved from the modeler window, you will not be prompted for a filename. Since there is already a file associated with that model, the same file will be used for any subsequent saves.
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 éditer le 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:
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 :
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.
Select the new values and then click on the [OK] button as usual. The connections between the model elements will change accordingly in the modeler canvas.
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.
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.
You can document your models from the modeler itself. Just 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 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.
As we will see in a later chapter, Processing algorithms can be called from the QGIS Python console, and new Processing algorithms can be created as well using Python. A quick way of creating such a Python script is to create a model and then to export is as a Python file.
To do so, click on the Export as Python script button. Select the output file in the file chooser dialog, and Processing will write in it the Python commands that perform the same operations defined in the current model.
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.
Additionally, you will see some algorithms in the modeler that are not found in the toolbox. These algorithms are meant to be used exclusively as part of a model, and they are of no interest in a different context. The ‘Calculator’ algorithm is an example of that. It is just a simple arithmetic calculator that you can use to modify numerical values (entered by the user or generated by some other algorithm). This tool is really useful within a model, but outside of that context, it doesn’t make too much sense.