Le modeleur
Définition :
Le modeleur est un outil qui permet de préparer une chaîne de géotraitements. L'avantage d'un tel outil est double :
conserver une architecture des traitements et pouvoir changer un paramètre d'un des traitements facilement, sans devoir relancer tous les traitements postérieurs à la modification un à un ;
créer une chaîne de traitements adaptée à des besoins spécifiques et métiers.
Exemple :
Un agent doit faire subir une dizaine de traitements à une couche annuelle, et ce, une seule fois par an. L'outil Modeleur graphique lui permet de préparer ce travail, puis, une fois par an, de renseigner simplement les nouveaux noms des couches et lancer l'ensemble des traitements pré-paramétrés.
1 – Propriétés du modèle
Permet de donner un nom et un nom de groupe au modèle. Ils doivent être renseignés pour pouvoir enregistrer et lancer l'outil.
2 – Entrées
Intègre tous les éléments à paramétrer en entrée lorsque l'outil sera lancé.
3 – Algorithmes (de traitements)
Reprend tous les outils disponibles au travers de la boîte à outils de traitements pour les utiliser dans le modèle. Certains outils ne sont présents et disponibles que dans le modeleur.
4 – Fenêtre de traitement
Les éléments (entrées et algorithmes) s'ajoutent par double-clic, ce qui ouvre une fenêtre de paramétrage pour ensuite ajouter l'élément à la fenêtre de traitement.
Après avoir saisi un nom et un groupe (pour regrouper les modèles), il est possible d'enregistrer le modèle en utilisant les boutons Sauvegarder
et Sauvegarder sous
de la barre d'outils du modeleur. Le chemin proposé par défaut permet de retrouver ensuite le modèle directement dans QGIS (Boite à outils de traitements > Modèles). Si le modèle est enregistré dans un autre dossier, il faudra le récupérer avec le bouton .
Le bouton Exécuter le modèle
active le lancement du modèle ; une boite de dialogue s'ouvre pour demander où sont les couches d'entrée (Input A et B) et où doit se faire l'enregistrement des sorties (Output C). Vous pouvez aussi exécuter le modèle par double-clic sur son nom (Boite à outils de traitements > Modèles > Nom du groupe >Nom du modèle) ou par clic-droit -> Exécuter. Pour modifier le modèle : clic-droit -> Éditer.
Le bouton Éditeur d'aide
offre la possibilité de créer une aide qui sera disponible lors du lancement de l'outil.
Il est également possible d'exporter le schéma du modèle sous forme d'image, PDF ou SVG
Exemple : Construction d'une chaîne de traitement automatisée
On voudrait repérer les zones de végétation à domination hydrophile dans la commune de Clermont-Créans. Les critères que nous retiendrons ont valeur d'exemple et ne prétendent pas être exhaustifs pour répondre à cette problématique.
Pour reproduire cet exemple, ouvrir les couches COMMUNES.SHP et TRONCON_HYDROGRAPHIQUE.SHP de la BDCarto, ainsi que la couche ZONE_VEGETATION.SHP de la BdTOPO.
Le modèle retenu est le suivant :
Donner au cours d'eau une largeur estimée de 50 m en utilisant un tampon.
Définir la zone d'étude à partir de la couche COMMUNE.shp de la BdCarto
Extraire les zones de végétation de la couche ZONE_VEGETATION.shp qui intersectent les cours d'eau.
Menu Traitements -> Modeleur graphique ouvre une nouvelle fenêtre de modèle de traitement
Créer les 3 entrées pour les couches vecteurs, sur lesquelles les traitements seront effectués, en cliquant sur Couche de vecteur dans le panneau des Entrées. Il est conseillé d'entrer un nom de couche évocateur pour mieux retrouver les couches lors du lancement de l'outil. Spécifier le type de géométrie ne listera que les couches correspondant au type lors du lancement de l'outil. Spécifier si l'entrée est obligatoire ou non pour lancer le traitement :
Traitement 1 : Créer une zone tampon de 25m pour affecter une largeur de 50 mètres aux rivières.
Dans le panneau Algorithmes, rechercher l’algorithme de géométrie vectorielle Tampon avec la barre de recherche située en haut. Cliquer sur l'outil et, après avoir donné une description significative au traitement, renseigner les paramètres :
Les paramètres peuvent être de différentes natures (réglés par le bouton déroulant ) :
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.
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 (maxx, maxy, minx, miny) 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
Entrée du modèle : Le paramètre provient d'une entrée du modèle que vous avez défini. Vous obtenez une liste de toutes les entrées appropriées pour le paramètre
Sortie d'un algorithme : est utile lorsque le paramètre d'entrée de l'algorithme est une sortie d'un autre algorithme (la liste des algorithmes du modèle est disponible)
Dans notre cas nous choisissons : Entrée du modèle puis Hydro
Traitement 2 : Filtrer les entités de la couche de Communes en gardant uniquement Clermont-Créans
Dans le panneau Algorithmes, rechercher l’algorithme de Table vecteur filtre d'entité avec la barre de recherche située en haut. Cliquer sur l'outil et, après avoir donné une description significative au traitement, renseigner les paramètres :
Traitement 3 : Conserver les tronçons de 50 mètres de large situés dans la zone d'étude.
Dans le panneau Algorithmes, rechercher l’algorithme de recouvrement de vecteur Couper avec la barre de recherche située en haut. Cliquer sur l'outil et, après avoir donné une description significative au traitement, renseigner les paramètres :
Traitement 4 : Extraire les zones de végétation qui intersectent les tronçons hydrographique de 50m de large de la commune de Clermont-Créans (issus du traitement précédent).
Dans le panneau Algorithmes, rechercher l’algorithme de sélection dans un vecteur Extraire par localisation avec la barre de recherche située en haut. Cliquer sur l'outil et renseigner les paramètres. Cette fois, il faut donner un nom à la couche résultante (Extrait (localisation)) afin qu'elle soit créée en sortie du lancement du modèle :
nb : on choisit la valeur du prédicat géométrique en choisissant 'Valeur' comme type d'entrée et intersect après avoir cliqué sur le bouton
Aperçu de la chaîne de traitement :
Enregistrer le modèle et cliquer sur Exécuter
ou fermer, puis, dans la boîte à outils de traitements, parcourir l'arborescence jusqu'au modèle créé (Modèles / Végétation / Zone végétation hydrophile) et double-cliquer dessus.
Renseigner les couches demandées (elles peuvent être déjà chargées dans QGIS, ou sinon il faut indiquer le chemin d'accès au dossier), puis exécuter l'outil.
Conseil :
1) Pour une utilisation optimale de l'outil Modeleur graphique, il est important de renseigner une description détaillée des entrées, mais aussi et surtout des traitements réalisés. Dans le cas de la construction d'une longue chaîne de traitement, cela évite les confusions au moment de renseigner des couches issues de traitements antérieurs, cela permet aussi de revenir plus facilement sur certains traitements pour en modifier les paramètres.
Il est donc recommandé de compléter l'aide à l'utilisation du modèle : Menu Modèle / Éditer l'aide du modèle. Exemple :
2) Lorsqu'on construit une longue chaîne de traitement, il peut être utile, en phase de mise au point, de créer des couches en sortie aux étapes clés du modèle afin d'identifier plus aisément d'éventuelles erreurs. Pour ce faire, il suffit de renseigner un nom de couche en sortie au moment du paramétrage du traitement.
3) Mettre en page le modèle.
Il est possible pour une meilleure lecture d'utiliser une grille d'accrochage (Menu Vue / Activer l'accrochage) et a posteriori de placer les élements sélectionnés sur la grille (Menu Éditer / Accrocher les éléments sélectionnés à la grille)
On peut ajouter des zones de groupes (Editer / ajouter zone de groupe).
On peut ajouter des commentaires sur un élément par clic droit / Ajouter un commentaire
Exemple de modèle avec mise en page et commentaires :
Conclusion :
La création d'un modèle lorsque l'on a plusieurs algorithmes à lancer apporte de nombreux avantages :
Disposer d'un aperçu général de tous les traitements, ce qui est plus pratique à manipuler en cas d'erreur dans le traitement ;
Le changement d'un paramètre d'un des algorithmes (exemple : la largeur du tampon qui aurait pu être choisi comme une entrée de l'algorithme) ne nécessite pas de relancer tous les traitements suivants un par un ;
Relancer le modèle de traitement pour une autre zone considérée est aussi facilité.
Complément : Enregistrement des modèles de traitement dans les fichiers projets
Certains modèles de traitement sont intrinsèquement liés à la logique d'un projet et n'ont pas de signification en dehors de ce projet (par exemple, des modèles qui reposent sur la présence de couches, de relations, etc.).
A partir de QGIS 3.4, les modèles de traitement peuvent être stockés dans des fichiers de projet QGIS. Tous les modèles stockés dans un projet sont rendus disponibles dès que ce projet est ouvert.
On utilise pour cela le bouton dans la barre de dialogue du modeleur :
Complément : Le plugin Append Features to Layer
Ce plugin permet d'ajouter un algorithme qui permet d'ajouter des entités dans une couche existante.
Il est particulièrement utile dans une chaîne de traitement du modeleur. Ce plugin installe également à titre d'exemple un modèle de traitement qui utilise aussi l'algorithme 'Refactoriser les champs'
Complément : Utilisation d'un modèle ou d'un algorithme en mode de commande
Il est possible depuis QGIS 3.14 d'utiliser un traitement en mode 'ligne de commande' sans avoir à lancer QGIS avec l’exécutable qgis_process.
On peut par exemple dans la console shell
Rédiger une commande qui ressemble à la suivante en tenant compte de vos paramètres locaux:
qgis_process-qgis-ltr run "F:\corona\FOAD_QGIS_PERF_2022\solution modeleur graphique\zone_vegetation_hydrophile.model3" -- commune=F:\corona\data_foad_qgis\BD_CARTO\ADMINISTRATIF\COMMUNE.SHP hydo=F:\corona\data_foad_qgis\BD_CARTO\HYDROGRAPHIE\TRONCON_HYDROGRAPHIQUE.SHP vgtation=F:\corona\data_foad_qgis\BD_TOPO\F_VEGETATION\ZONE_VEGETATION.SHP "native:extractbylocation_1:Zone vegetation hydrophile"=C:\ZONE_VEGETATION_HYDROPHILE.SHP
Détails et recommandations :
qgis_process-qgis-ltr est le nom du .bat qui doit être présent sous : C:\Program Files\QGIS 3.22\bin. Ce nom peut-être différent selon la version installée mais doit commencer par qgis_process.
run : est la commande indiquant que l'on exécute un algorithme ou un modèle
"F:\corona\FOAD_QGIS_PERF_2022\solution modeleur graphique\zone_vegetation_hydrophile.model3" est le nom complet du modèle à exécuter entre ""
-- indique que l'on va ensuite passer les paramètres du modèle ou de l'algorithme.
commune= permet de spécifier la valeur du paramètre commune
hydo et vgtation sont les noms des paramètres attendu par la commande. Il se peut qu'ils ne correspondent pas tout à fait aux valeurs indiquées dans le modèle (en particulier les caractères accentués posent problème). Pour connaître les valeurs attendues, il faut lancer la commande et analyser le retour en cas d'erreur :
Dans le cas ci-dessus, on observe que nous avons fourni un paramètre hydro et végétation, alors que le modèle attendait des paramètres hydo (faute de frappe) et vgtation (problème d'accent)
de plus le paramètre en sortie n'est pas simplement Zone vegetation hydrophile, mais native :extractbylocation_1 :Zone vegetation hydrophile que l'on doit mettre entre "" dans la commande, car il comporte des espaces dans son nom.