1.8 Automatisation avec QGIS

Le module de traitement (menu Traitement) propose une Boîte à outils qui offre différentes fonctionnalités :

  • l'accès à l'ensemble des Algorithmes de traitement issus des menus Vecteur et Raster ainsi que d'autres provenant d'applications tierces. Les modèles ainsi que les scripts créés y sont également listés,
  • le Modeleur graphique qui permet de définir des chaînes de traitements (Modèles) à l'aide d'une interface graphique,
  • les Scripts qui permettent de coder des algorithmes de calculs en Python.

Les autres éléments concernent les options générales du module, l'historique des traitements réalisés et l'outil de visualisation de résultats.

Préparation de l'environnement de travail

Nous allons travailler sur la caractérisation des types d'occupation du sol autour des mâts éoliens en faisant varier le rayon de recherche.

Les fichiers générés dans les exercices suivants seront à enregistrer dans le répertoire data/mon_travail/1_8_automatisation.

Créez un nouveau projet dans data/mon_travail avec comme nom 1_8_automatisation.qgz et assurez vous qu'il soit dans le SCR RGF93 / Lambert 93 (EPSG:2154).
Chargez les couches d'occupation du sol (data/Occitanie/CLC12/CLC12_RLRMP_RGF.shp), de localisation des mâts éoliens en Occitanie (data/Occitanie/DREAL/dreal-occitanie-mats-eoliens-en-occitanie.geojson) et des limites des communes de France métropolitaine (data/IGN_ETALAB/ADMIN-EXPRESS-COG/COMMUNE.shp).
Reprojetez la couche des mâts éoliens dans le même système de coordonnées que les couches d'occupation du sol et des communes (cf. Reprojection d'une couche).
Sélectionnez la commune de Lacaune dans le Tarn et enregistrez la sélection dans une nouvelle couche (cf. Sélection et enregistrement de la sélection).

1.8.1 Traitement par lots

Un traitement par lots permet de lancer le même algorithme sur différentes couches ou avec des paramètres différents. Chaque algorithme, modèle et script peut être exécuté par ce biais en faisant un clic-droit sur son nom. La fenêtre de traitement par lots s'affiche alors et permet de définir les couches d'entrée et les paramètres des traitements qui seront exécutés successivement.

Traitement par lot

Lorsque la couche en sortie est définie via le bouton ..., il faut entrer un nom de couche générique (par exemple Tampon_.shp pour un traitement réalisant des zones tampons) et après avoir validé l'emplacement de cette couche, une fenêtre apparaît et propose de remplir automatiquement les noms des couches des autres lignes avec, soit des chiffres, soit la valeur d'un des paramètres de la ligne de traitement.

Réalisez des zones tampons croissantes autour des mâts éoliens avec des distances de 500, 1000 et 2000 m :

  • Ouvrez l'outil Tampon > Exécuter comme processus de lot...,
  • Remplir les paramètres pour la zone tampon à 500 m, comme indiqué dans la figure ci-dessus, en laissant Mis en tampon vide,
  • Ajoutez deux lignes et utilisez Auto-remplissage > Remplir pour compléter les tampons 1000 et 2000 m,
  • Remplissez Mis en tampon en cliquant sur le bouton ... de la première ligne puis donnez un nom générique aux résultats (par exemple Tampon_.shp), validez et utilisez le remplissage automatique en choisissant le paramètre de distance.

Pour plus d'informations sur les traitements par lots, référez-vous à la documentation de QGIS.

1.8.2 Modeleur graphique

Le Modeleur graphique permet de créer des modèles grâce à une interface graphique. Une fois ouvert (via le menu Traitement), il est possible d'ajouter les paramètres d'entrée du modèle en double-cliquant sur les différents types proposés dans l'onglet Entrées. Une fois ajouté, un paramètre apparaît sur le modèle dans une boîte. Les boîtes peuvent être déplacées à l'aide de la souris.

Les différents traitements sont à choisir parmi les Algorithmes (qui comprennent également les autres modèles et scripts Python) et s'ajoutent en double-cliquant sur leur nom.

Exemple de modèle

Les modèles se sauvegardent en leur précisant leur Nom et leur Groupe puis en cliquant sur le bouton Enregistrer le modèle. Par défaut les modèles sont enregistrés dans le répertoire utilisateur de QGIS (accès via le menu Préférences/Profils utilisateurs/Ouvrir le dossier du profil actif) dans le répertoire QGIS/QGIS3/profiles/default/processing/models. Seuls les modèles présents dans ce répertoire sont chargés automatiquement, il est donc conseillé de les y laisser.

Créez un modèle permettant :

  1. d'extraire les mâts éoliens situés dans la zone d'étude (algorithme Couper sur une couche de points et une couche de zone d'étude),
  2. de générer une zone tampon autour de ces points et dont la distance sera un paramètre d'entrée du modèle (algorithme Tampon sur la sortie de l'algorithme 1),
  3. d'intersecter l'occupation du sol avec cette zone tampon (algorithme Intersection sur la sortie de l'algorithme 2 et une couche d'occupation du sol).

Commencez par ajouter les entrées utilisées par chaque algorithme (points, zone d'étude, distance, occupation du sol) en choisissant les bons types d'entrée avant d'ajouter les algorithmes.

Le modèle solution, modele_1_8_automatisation.model3, se trouve dans data/solutions/1_8_automatisation/.

Les modèles enregistrés dans le répertoire utilisateur de QGIS sont disponibles pour être employés au sein d'autres modèles, ce qui permet donc de modulariser et de réemployer des parties de chaînes de traitements communes à plusieurs modèles.

Comme n'importe quel algorithme, les modèles peuvent être lancés en traitement par lots via un clic-droit sur leur nom.

Lancez un traitement par lots sur le modèle créé précédemment en faisant varier la distance (500, 1000 et 2000 m).

Pour plus d'informations sur le Modeleur graphique, référez-vous à la documentation de QGIS.

1.8.3 Script Python dans QGIS

Des chaînes de traitements peuvent être créées directement sous la forme de scripts Python. Par un clic-droit sur le nom du script puis en sélectionnant Éditer script, on affiche une fenêtre d'édition du script.

Par ailleurs, il est possible d’exporter un modèle issu du Modeleur sous la forme de script : depuis la fenêtre d'édition du modèle, en cliquant sur le bouton Exporter en script Python.

Transformez votre modèle en script.
Le script Python solution, modele_1_8_automatisation.py, se trouve dans data/solutions/1_8_automatisation/.

Enfin, de la même manière qu'un algorithme ou un modèle, un script peut être lancé en traitement par lots via un clic-droit sur son nom.

Pour plus d'informations sur le développement de scripts Python dans QGIS, référez-vous à la documentation de QGIS.

1.8.4 À RETENIR

  • La Boîte à outils du menu Traitement permet d'accéder à l'ensemble des algorithmes disponibles dans QGIS.
  • Tous les algorithmes peuvent être exécutés par lot (par exemple pour un traitement sur une même couche en faisant varier un paramètre ou pour un même traitement sur une série de couches).
  • Le Modeleur graphique permet de créer graphiquement des chaînes de traitement.
  • QGIS permet de créer et d'exécuter des scripts Python directement depuis l'interface. Un Modèle graphique peut être converti en script Python.