Tutoriel : Calcul du pourcentage de l'occupation des sols par sous-bassin
Site: | OpenCourseWare for GIS |
Cours: | QGIS et Applications en Hydrologie |
Livre: | Tutoriel : Calcul du pourcentage de l'occupation des sols par sous-bassin |
Imprimé par: | Guest user |
Date: | samedi 21 décembre 2024, 19:12 |
Table des matières
- 1. Introduction
- 2. Préparation de la couche des sous-bassins versants
- 3. Préparation des données de l'occupation des sols
- 4. Intersection de la couche de l'occupation des sols avec la couche du sous-bassin
- 5. Calculer la superficie de la classe d'occupation des sols par sous-bassin
- 6. Créer des diagrammes circulaires à l'aide du plugin Data Plotly
- 7. Conclusions
1. Introduction
Pour les études sur l'hydrologie des bassins versants, il est souvent important de connaître le pourcentage de l'occupation des sols par sous-bassin.
Après ce chapitre, vous pourrez :
- Ajouter des valeurs uniques aux couches vectorielles
- Calculer les surfaces des polygones dans la table d'attributs
- Définir le style d'une couche vectorielle à l'aide d'un fichier .qml
- Découper, reprojeter et exporter des couches vectorielles vers un autre format
- Utiliser les conditions dans la Calculatrice de champ
- Appliquer des Outils de géotraitement de vecteurs tels que le Regroupement, l'intersection et la Distance tampon
- corriger les erreurs de géométrie
- créer des diagrammes circulaires à l'aide du plugin DataPlotly
Cette leçon se déroulera suivant ce flux de travail :
Dans cette leçon, nous allons utiliser :
- le shapefile
polygone_bassins.shp
: des sous-bassins - L'inventaire biophysique de l’occupation des sols CORINE 2018 Land Cover
Le premier fichier a été créé en délimitant les sous-bassins de la Roer à l'aide des méthodes décrites dans la leçon 4.
Dans cette leçon, vous apprendrez comment télécharger les données CORINE 2018. Un sous-ensemble des données est également fourni dans le ensemble de données du cours, qui peut être téléchargé à partir de la page principale de la leçon.
1.1. Théorie des outils de superposition de vecteurs
Dans cette leçon, nous utiliserons quelques outils de superposition de vecteurs.
Regardez cette vidéo pour apprendre les concepts.
2. Préparation de la couche des sous-bassins versants
Nous allons commencer par un nouveau projet QGIS.
1. Téléchargez le shapefile polygone_bassins.shp
et ajoutez-le à un projet QGIS vide.
2. Ouvrez la table d'attributs de la couche polygone_bassins.
Cette couche a été calculée en utilisant l'approche de délimitation des bassins versants de la leçon 4. Le résultat est que chaque sous-bassin a une valeur de 100. Pour notre objectif, cependant, chaque sous-bassin a besoin d'un identifiant unique.
3. Basculez en mode d'édition en utilisant le bouton
4. Dans la Calculatrice de champ, formuler l'équation DN = $id
et cliquer sur Mettre à jour tout. Cliquez sur le bouton pour enregistrer les modifications de la couche.
La fonction $id
attribue un identifiant unique à chaque entité dans la table d'attributs.
Nous devons maintenant ajouter un attribut avec la surface pour chaque polygone de sous-bassin.
5. Cliquez sur le bouton pour ajouter une colonne dans la table d'attributs.
6. Appelez le nouveau champ SurfBassin
, indiquez qu'il contient un Nombre décimal (réel) avec une Longueur de 10
chiffres et une Précision de 2
décimales. Cliquez sur OK pour créer la colonne.
7. Dans la Calculatrice de champs, formulez l'équation SurfBassin = $area
et cliquez sur Tout mettre à jour.
La table d'attributs contient maintenant les identifiants et les surfaces uniques de chaque sous-bassin.
8. Cliquez sur le bouton pour enregistrer les modifications et basculer hors mode d'édition.
Nous devons maintenant préparer les données d'occupation des sols.
3. Préparation des données de l'occupation des sols
Nous devons maintenant préparer les données relatives à I' occupation des sols, qui se composent des étapes suivantes que vous allez suivre dans les sections suivantes :
- Télécharger les données CORINE 2018
- Définir le style de la couche de l'occupation des sols
- Découper et reprojeter la couche de l'occupation des sols
- Agréger les classes de l'occupation des sols
- Regrouper les entités de la couverture terrestre
3.1. Téléchargement des données CORINE 2018
Dans le chapitre précédent, nous avons utilisé les données du WMS CORINE 2012. Pour les calculs, cependant, nous ne pouvons pas utiliser les images issues de WMS, nous avons besoin d'accéder aux données. Les données CORINE 2018 peuvent être téléchargées sur Internet.
1. Ouvrez votre navigateur et allez sur https://land.copernicus.eu/pan-european/corine-land-cover.
2. Cliquez sur CLC 2018.
Vous verrez une carte en ligne avec un aperçu de la couche.
3. Cliquez sur l'onglet Download (c-à-d Télécharger).
4. Pour télécharger les données, vous devez disposer d'un compte. Cliquez sur le lien pour vous inscrire.
Une fois connecté, vous pouvez choisir parmi différents formats de données.
Nous utiliserons ici le format GeoPackage, car nous avons besoin de données vectorielles.
5. Cochez la case précédant le format GeoPackage.
6. Cliquez sur le bouton Download pour télécharger.
Le fichier est de 3,5 Go. Si vous disposez d'une faible bande passante, vous pouvez également télécharger un sous-ensemble de l'ensemble de données à partir des supports de cours à la page principale des leçons.
7. Décompressez le contenu dans un nouveau dossier que vous utiliserez pour cet exercice.
8. Faites glisser la couche GeoPackage U2018_CLC2018_V2020_20u1 sur le Canevas de la Carte.
9. Dans le popup de Select Transformation cliquez simplement sur OK pour utiliser l'équation de transformation par défaut.
10. Rendez les polygones de la couche polygone_bassins transparents avec un contour noir et une largeur de trait de 0.66 mm et assurez-vous qu'ils se trouvent au-dessus de la couche d'occupation des sols.
3.2. Définir le style de la carte de l'occupation des sols CORINE 2018
Nous allons maintenant définir le style de la carte de l'occupation des sols CORINE 2018 Land Cover. Dans le ensemble de données téléchargées, vous trouverez un dossier Legend. Ce dossier contient des fichiers de légende dans différents formats. Nous utiliserons ici le fichier clc_legend.qml, un fichier de style de couche QGIS.
1. Faites un clic droit sur la couche de l'occupation des sols et choisissez Propriétés. Allez dans l'onglet Symbologie.
2. Au bas de la boîte de dialogue, allez à Style | Charger le style.
3. Vous êtes maintenant dans la boite de dialogue du Gestionnaire des styles. Naviguez jusqu'au fichier legend\clc_legend.qml et cliquez sur Charger le style.
La légende est maintenant appliquée avec les bons paramètres à la couche d'occupation des sols.
4. Cliquez sur OK pour accepter et revenir à au canevas de la carte.
3.3. Découper et reprojeter la carte de l'occupation des sols
La couche de couverture terrestre est encore trop large (même si vous avez téléchargé le sous-ensemble fourni), nous allons donc préparer un sous-ensemble qui ne couvre que les sous-bassins. En outre, nous allons également reprojeter la couche de l'occupation des sols (EPSG : 3035) selon la même projection que la couche polygone_bassins (EPSG:32632). Les deux opérations peuvent être réalisées avec un seul outil.
1. Faites un clic droit sur la couche U2018_CLC2018_V2020_20u1 et choisissez Exporter | Sauvegarder les entités sous.
2. Choisissez comme Format GeoPackage, tapez pour le Nom de la couche Corine2018_repr
et pour le SCR le SCR du projet (EPSG:32632).
3. Cochez la case avant Emprise et cliquez sur Calculer à depuis de la couche et choisissez polygone_bassins. Cliquez sur OK.
4. Copiez le style de la couche U2018_CLC2018_V2020_20u1 sur la couche Corine2018_repr et supprimez la couche U2018_CLC2018_V2020_20u1.
Le résultat devrait être comme suit :
3.4. Agréger les classes d'occupation des sols
CORINE a différents niveaux de classes de couverture du sol. Les données CORINE que nous avons sont des données dites de niveau 3. Dans la table des attributs, le champ code_18 a des valeurs pour le niveau 3, indiquées par 3 chiffres. Dans cette section, nous allons agréger la classification détaillée de niveau 3 au niveau 1. Nous devons donc créer un nouveau champ avec seulement le premier chiffre pour chaque caractéristique.
1. Ouvrez la table des attributs de la couche Corine2018_repr et passez en mode édition.
2. Ajouter un nouveau champ. Donnez à l'attribut le Nom Niveau1
, choisissez pour le Type le Nombre entier (entier).
3. Utilisez le bouton pour ouvrir le Calculateur d'Expressions.
Nous allons écrire une expression qui recode toutes les classes de niveau 3 au niveau 1.
4. Écrivez l'expression comme indiqué dans la figure ci-dessous.
La fonction left
renvoie un extrait de chaîne de caractères contenant les n caractères les plus à gauche de la chaîne initiale. Ici, nous avons besoin du premier caractère, donc nous choisissons 1
pour la longueur. Nous utilisons la fonction to_int
pour convertir la chaîne de caractères en nombre entier.
5. Mettez à jour le champ Niveau1.
La table d'attributs devrait maintenant ressembler à ceci :
6. Désactivez le mode d'édition et enregistrez les modifications.
3.5. Regrouper les entités de la couverture terrestre
Maintenant, il y a beaucoup de polygones contigus avec la même classe de niveau 1. Ils doivent être fusionnés en une seule entité. Ceci est fait avec l'opération de regroupement via l'outil Regrouper.
1. Dans le menu principal, allez à Vecteur | Outils de géotraitement | Regrouper.
2. Dans la boite de dialogue Regrouper, choisissez corine2018_repr comme Couche d'entrée et sélectionnez le champ Niveau1 comme Couche regroupée. Enregistrez le fichier sous le nom corine2018_regroup et cliquez sur Exécuter.
3. Cliquez sur Fermer pour revenir au Canevas de la carte lorsque le calcul est terminé.
4. Ouvrez la table d'attributs de corine2018_regroup pour vérifier le résultat. Elle ne devrait maintenant montrer que 5 entités avec les classes de niveau 1 de 1 à 5. Notez que vous pouvez cliquer sur le nom du champ pour trier les entités.
5. Supprimez corine2018_repr du Panneau des couches et définissez le style de la couche corine2018_regroup avec des couleurs basées sur la légende originale de CORINE niveau 3.
4. Intersection de la couche de l'occupation des sols avec la couche du sous-bassin
Maintenant que nous avons préparé les couches polygonales de l'occupation des sols et des sous-bassins, l'étape suivante consiste à intersecter les deux couches pour ajouter les limites des sous-bassins à la carte de l'occupation des sols.
1. Dans le menu principal, allez à Vecteur | Outils de géo-traitement | Intersection.
2. Choisissez la couche corine2018_regroup comme Couche d'entrée, choisissez polygone_bassins comme Couche de superposition. Choisissez corine_bassins_intersect.shp
comme nom de fichier de sortie et cliquez sur Exécuter.
Vous verrez l'erreur suivante:
Ceci est lié aux erreurs de géométrie qui peuvent se produire dans le processus de délimitation des bassins versants où nous polygonisons une trame.
L'erreur peut être corrigée.
3. Dans la Boîte à outils de traitement, recherchez l'outil "Réparer les géométries".
4. Dans la boîte de dialogue Réparer les géométries, choisissez polygone_bassins comme Couche source et choisissez polygone_bassins_corrig.shp
comme nom de fichier de sortie et cliquez sur Exécuter.
5. Cliquez sur Fermer une fois le traitement terminé.
6. Copiez le style de la couche polygone_bassins dans la couche polygone_bassins_corrig et supprimez la couche polygone_bassins.
7. Répétez les étapes 1 et 2 et appelez le nom de fichier de sortie de la couche d'intersection corine_bassins_intersect_cor.shp
8. Définissez le style de la couche corine_bassins_intersect_cor en copiant le style précédemment définie de la couche corine2018_regroup. Vérifiez le résultat de l'intersection.
9. Supprimez la couche corine2018_regroup du Panneau des couches.
5. Calculer la superficie de la classe d'occupation des sols par sous-bassin
Nous devons maintenant calculer la superficie de la classe CORINE niveau 1 par sous-bassin.
1. Ouvrez la table des attributs de la couche corine_bassins_intersect_cor.
Dans la table d'attributs, nous pouvons trouver le champ SurfBassin avec la superficie de chaque sous-bassin, le champ DN avec l'ID unique de chaque sous-bassin, et le champ Niveau1 avec la classe CORINE de niveau 1 pour chaque entité.
Nous allons ajouter un nouveau champ et calculer la superficie de chaque entité qui correspond à la superficie de chaque classe de niveau 1 dans un sous-bassin, de la même manière que nous l'avons fait précédemment pour les sous-bassins.
2. Basculez en mode édition.
3. Ajouter un champ SurfClass
avec comme Type, Nombre décimal (réel), une Longueur 10
, et Précision 2
.
4. Utilisez la Calculatrice de champ pour calculer SurfClass = $area
et cliquez sur Tout mettre à jour.
5. Ajoutez maintenant un champ pour le pourcentage de chaque classe CORINE niveau 1 dans chaque sous-bassin. Appelez le champ Pourcentage
avec le Type ; Nombre décimal (réel), Longueur 4
, et Précision 1
.
6. Utilisez le calculateur de champ pour calculer le pourcentage comme suit: Pourcentage = (SurfClass/SurfBassin) * 100
. Vous pouvez utiliser le Calculateur d'expression pour formuler l'équation.
7. Cliquez sur Tout mettre à jour pour attribuer le pourcentage à chaque entité.
8. Pour compléter la table des attributs, ajoutez un champ avec les noms correspondant aux classes de niveau 1 sous forme de texte. Appelez-le OccupSol
. Utilisez la fonction CASE...WHEN
(c-à-d Cas ..... quand) pour cela.
Cette fonction vous permet de rédiger des conditions. Cela signifie par exemple : si l'attribut " Niveau1" est égal à la valeur 1, le résultat est la chaîne de caractères "Surfaces artificielles", etc.
9. Enregistrer les modifications et sortez du mode d'édition.
La table des attributs devrait maintenant ressembler à ceci :
6. Créer des diagrammes circulaires à l'aide du plugin Data Plotly
Maintenant que nous avons le pourcentage de l'occupation des sols pour chaque sous-bassin, nous pouvons créer des diagrammes circulaires. Une façon de le faire est de copier les colonnes et de les coller dans un logiciel de tableur pour un traitement plus avancé. Une autre façon est d'utiliser l'extension Data Plotly, que nous utiliserons ici.
1. Installez l'extension Data Plotly à partir du gestionnaire des extension : Extension | Installer/Gérer les extensions.
Nous allons créer un graphique circulaire pour chaque sous-bassin. Nous avons précédemment attribué un identifiant unique à chaque sous-bassin dans le champ DN.
2.Dans la table des attributs de la couche corine_bassin_intersect_cor sélectionnez toutes les entités avec DN = 0. Vous pouvez utiliser la fonction Sélectionner les entités en utilisant une expression en cliquant sur le bouton . Vous pouvez également trier la table d'attributs sur DN et utiliser le bouton Ctrl
pour sélectionner plusieurs entités avec DN = 0
.
3. Cliquez sur le bouton Data Plotly pour ouvrir le panneau Data Plotly.
4. Pour le Type de graphique, choisissez Pie Chart (c-à-d Diagramme circulaire). Sous Paramètres du diagramme, choisissez la couche corine_bassin_intersect_cor, cochez la case devant Utiliser seulement les entités sélectionnées, pour le Champ de Groupement, choisissez OccupSol, et pour le Champ Y, choisissez Pourcentage .
5.Cliquez sur le bouton pour définir les propriétés de la légende.
6. Cliquez sur le bouton "Créer le graphique" et vérifiez le résultat.
7. Avec le bouton Exporter (image) vous pouvez exporter le graphique vers un fichier .png.
Le résultat devrait ressembler à ceci :
Vous pouvez répéter cela pour les autres sous-bassins versants.
7. Conclusions
Dans cette leçon, vous avez appris à :