1.7 Analyse spatiale
Certaines requêtes nécessitent des analyses, des opérations spatiales et traitements divers comme les croisements entre plusieurs couches, l'extraction d'informations, le calcul de dérivées...
Astuce
De nombreux outils d'analyse sont fournis dans QGIS dans sa version de base et via la liste de ses extensions. Pour les rechercher facilement par mots clés, le menu Traitement/Boîte à outils offre une fonction Rechercher... très utile.
1.7.1 Analyse spatiale sur les vecteurs
Dans le menu Vecteur/Outils d’analyse, vous trouverez les Statistiques basiques pour les champs dont la fenêtre Résultat affichera un lien vers les statistiques (fichier HTML contenant moyenne, écart-type, max, médiane…). Une autre solution est d'utiliser le menu Vue/Résumé statistique également accessible dans Vue/Panneaux/Statistiques.
Le menu Vecteur/Outils de recherche agrège plusieurs outils dont Extraire l'emprise de la couche qui génère le rectangle englobant tous les objets de la couche.
Le menu Traitement/Boîte à outils/Création de vecteurs permet quant à lui par exemple de Créer une grille, couvrant une étendue donnée.
Le menu Vecteur/Outils de géotraitement contient, entre autres, les analyses suivantes :
- Intersection
- Union
- Regrouper
- Couper (couche source = couche à découper)
- Différence (par exemple, la couche en entrée = la date la plus récente, géométrie la plus large ; la couche de différentiation = la date la moins récente, géométrie la moins large)
- Tampon : zone d'une distance donnée qui épouse la forme des objets d'une couche. La distance peut être unique ou variable. Le menu Traitement/Boîte à outils/Géométrie vectorielle/Tampon de largeur variable permet de choisir l’attribut contenant les valeurs de distance pour chaque objet. Le paramètre Segments permet d’ajuster la précision de la zone tampon. Plus cette valeur est élevée, plus le nombre de sommets sera élevé et donc, plus la zone tampon sera précise.
Les fichiers générés dans les exercices suivants seront à enregistrer dans le répertoire data/mon_travail/1_7_analyse_spatiale
.
Exercice 15. Vous allez créer une zone tampon de 5000 m autour de l'autoroute A61.
Créez un nouveau projet dans data/mon_travail
dénommé 1_7_analyse_buffer.qgz
.
Ouvrez la couche trace-du-reseau-autoroutier-doccitanie.shp
située dans data/Occitanie/Region
(attention encodage UTF-8 à spécifier). Quel est son système de coordonnées ?
Convertissez cette couche dans le système Lambert 93 (EPSG 2154), en l'exportant en tant que couche dans un fichier GeoPackage, avec un clic droit sur la couche + Exporter/Sauvegarder les entités sous ... et les options suivantes :
- Format = GeoPackage
- Nom de fichier =
1_7_exercices.gpkg
(bouton Parcourir pour pointer l'emplacement du fichier dansdata/mon_travail/1_7_analyse_spatiale
) - Nom de la couche =
Réseau autoroutier
- SCR = EPSG:2154
Les couches étant dans le système de coordonnées Lambert 93, vérifiez que le SCR du projet soit le même et modifiez-le si besoin.
Ouvrez la table attributaire de la nouvelle couche 1_7_exercices Réseau autoroutier
. Le champ "num_route" contient le nom des routes : à l'aide d'une expression, sélectionnez les tronçons de l'autoroute A61.
Créez la zone tampon de 5000 m avec l'outil Tampon, et les options suivantes :
- Couche source = Réseau autoroutier
- Cochez "Entité(s) sélectionnée(s) uniquement"
- Distance = 5000
- Segments = 10
- Style d'extrémité = Rond
- Style de jointure = Rond
- Limite de l'angle droit = 2,000000
- Cochez "Regrouper le résultat" (les tampons de chaque tronçon de l'autoroute seront fusionnés en un seul tampon)
- Mise en tampon (fichier en sortie) = Enregistrer dans un fichier Geopackage >
1_7_exercices.gpkg
> nom couche =Tampon A61 5000m
(cliquez sur "Oui" lorsque QGIS demande "1_7_exercices.gpkg already exists. Do you want to replace it?", il s'agira d'une nouvelle couche ajoutée au GeoPackage existant créé précédemment dansdata/mon_travail/1_7_analyse_spatiale
)
Pourquoi est-il nécessaire d'exporter la couche Réseau autoroutier
en Lambert 93 pour créer la zone tampon ? (cf. Adapter le bon SCR en fonction de l'usage de la couche.
Ouvrez le fichier de localisation des éoliennes en Occitanie dreal-occitanie-mats-eoliens-en-occitanie.geojson
située dans data/Occitanie/DREAL
. Convertissez cette couche dans le système Lambert 93 (EPSG 2154), en l'exportant en tant que couche dans un fichier GeoPackage, avec un clic droit sur la couche + Exporter/Sauvegarder les entités sous ... et les options suivantes :
- Format = GeoPackage
- Nom de fichier =
1_7_exercices.gpkg
(bouton Parcourir pour pointer l'emplacement du fichier dansdata/mon_travail/1_7_analyse_spatiale
) - Nom de la couche =
Mats eoliens
- SCR = EPSG:2154
Déterminez le nombre d'éoliennes dans la zone tampon de 5000 m autour de l'A61 ?
Enregistrez le projet.
Rappel
Dans le cas de message concernant des erreurs topologiques, deux outils sont à disposition dans le menu Vecteur/Outils de géométrie/Vérifier la validité et le menu Traitement/Boîte à outils/Géométrie vectorielle/Réparer les géométries.
1.7.2 Analyse spatiale sur les rasters
1. Menu Raster/Extraction
Le menu Raster/Extraction (ou menu Traitement/Boîte à outils/GDAL/Extraction raster) permet de Découper un raster selon une emprise (dessinée) ou selon une couche de masque (emprise d’une autre couche).
2. Menus Raster/Divers et Raster/Projections
Le menu Raster/Divers (ou menu Traitement/Boîte à outils/GDAL/Divers raster) contient l'outil Fusionner afin d'assembler 2 rasters (ayant le même système de coordonnées) pour ne former qu’une image.
Le menu Raster/Projections permet d'Assigner, d'Extraire ou de reprojeter (Projection (warp)) une couche raster. La reprojection offre également la possibilité de modifier la résolution spatiale de l'image et de définir des règles d'agrégation ou d'interpolation des valeurs parmi les nouvelles tailles de pixel. Il existe plusieurs méthodes de rééchantillonnage : Le plus proche, Majorité, Bilinéaire, Cubique, etc. (en savoir plus).
Exercice 16. Créez un nouveau projet dans data/mon_travail
dénommé 1_7_analyse_mnt.qgz
.
Créez un raster unique à partir des 4 fichiers .hgt
inclus dans le dossier data/NASADEM
, que vous allez fusionner :
- Couches en entrée = les 4 rasters
n43e003, n43e004, n44e003, n44e004
(inutile d'importer les couches au préalable) - Type de données en sortie = Int16 ou Float32 (remarque : les rasters en entrée sont de type Int16)
- Fichier en sortie fusionné = Enregistrer vers un fichier >
DEM_assemblage.tif
(dansdata/mon_travail/1_7_analyse_spatiale
)
Enregistrez le projet.
Pour les traitements ultérieurs, vous allez projeter ce raster dans le SCR Lambert 93 (EPSG 2154). Utilisez l'outil de reprojection Projection (warp) du menu Raster/Projections :
- Couche en entrée =
DEM_assemblage.tif
- SCR d'origine = EPSG:4326 (SCR du projet)
- SCR cible = EPSG:2154
- Méthode de ré-échantillonnage à utiliser = Cubique (exécute une convolution cubique et détermine la nouvelle valeur d’une cellule en ajustant une courbe lissée suivant les valeurs des centres des 16 cellules en entrée les plus proches. Méthode appropriée pour les données continues)
- Valeur Nodata pour les bandes de sortie = 0
- Résolution du fichier de sortie = 25
- Fichier en sortie reprojeté = Enregistrer vers un fichier >
DEM_assemblage_l93.tif
(dansdata/mon_travail/1_7_analyse_spatiale
)
Attribuez le même système de coordonnées au projet (SCR Lambert 93 (EPSG 2154)).
3. Menu Raster/Analyse - Outils Pente et Exposition
Le menu Raster/Analyse (ou menu Traitement/Boîte à outils/GDAL/Analyse raster) donne accès aux analyses sur un raster d'altitude MNT (Pente, Exposition, Rugosité), à part l'outil de création des courbes de niveaux qui est dans le menu Raster/Extraction/Contour .
Exercice 17. A partir du MNT, vous allez calculer la pente du terrain en degrés avec les options suivantes :
- Couche source =
DEM_assemblage_l93.tif
- Couche sortie pente = Enregistrer vers un fichier >
DEM_assemblage_l93_pente.tif
(dansdata/mon_travail/1_7_analyse_spatiale
)
Pour mieux faire ressortir les zones escarpées, changez la symbologie avec un rendu de type Pseudo-couleur à bande unique, avec par exemple la palette RdBu (inversée) et les 5 bornes suivantes : 0, 10, 20, 40, 65.
Enregistrez le projet.
Voici une "suggestion de présentation" réalisée avec QGIS 3.10.
Astuce
Pour obtenir un rendu transparent avec le fond de carte OpenStreetMap :
1) affichez la tuile XYZ Esri Topo World
(copiez l'URL et ajoutez cette connexion via le panneau Explorateur/XYZ Tiles),
2) dans les propriétés du raster DEM_assemblage_l93_pente
sélectionnez Symbologie > Rendu de la couleur, choisissez Mode de fusion = Multiplier.
Exercice 18. Toujours à partir du MNT, calculez l'orientation du terrain (exposition), avec les options suivantes :
- Couche source =
DEM_assemblage_l93.tif
- Couche sortie pente = Enregistrer vers un fichier >
DEM_assemblage_l93_orientation.tif
(dansdata/mon_travail/1_7_analyse_spatiale
)
Dans le fichier raster en sortie, les valeurs des pixels correspondent à l'azimuth en degrés (0° = nord, 90° = est, etc.).
Pour mieux visualiser les expositions, changez la symbologie avec un rendu de type Pseudo-couleur à bande unique, avec par exemple la palette Spectral et les 5 bornes suivantes : 0 (bleu), 90 (rouge),180 (jaune clair), 270 (vert), 360 (le même bleu que pour 0).
Enregistrez le projet.
Voici une "suggestion de présentation" réalisée avec QGIS 3.10.
4. Menu Raster/Conversion
Le menu Raster/Conversion (ou menu Traitement/Boîte à outils/GDAL/Conversion vecteur ou Conversion raster) permet la conversion entre les formats raster et vecteur, et ainsi l’utilisation des différentes méthodes d’analyse propres à ces deux formes de données géographiques.
- Polygoniser (raster vers vecteur)
- Rasteriser (vecteur vers raster)
Exercice 19. Dans cet exercice vous allez convertir en raster le shapefile d'occupation du sol data/Occitanie/CLC12/CLC12_RLRMP_RGF.shp
(Corine Land Cover). Pour réduire l'emprise du raster, vous devez zoomer sur une zone dans, par exemple, le département Hérault (cf. figure ci-dessous). Chaque pixel du nouveau raster aura pour valeur le code de l'occupation du sol de "niveau 3" selon la nomenclature CLC, code contenu dans un attribut du shapefile.
Créez un nouveau projet dans data/mon_travail
dénommé 1_7_analyse_conversion.qgz
.
Ouvrez les propriétés de la couche CLC12_RLRMP_RGF
et inspectez les caractéristiques des champs. Le champ "CODE_12" est de type texte. Or, pour convertir le shapefile en raster, il faut que le champ qui porte les valeurs soit de type numérique. Nous allons donc convertir les codes en entier dans un nouveau champ.
Ouvrez la calculatrice de champ, créez un nouveau champ "INTCODE_12" :
- Type = Entier,
- Longueur = 10,
- Expression = to_int("CODE_12").
Cliquez sur OK, Enregistrez la couche et fermez le mode édition.
Avec l'outil Rasteriser (vecteur vers raster) et les options suivantes, lancez la rastérisation :
- Couche en entrée =
CLC12_RLRMP_RGF
- Champ à utiliser pour la valeur des pixels = "INTCODE_12"
- Unité du raster résultat = Unités géoréférencées (afin de pouvoir spécifier une résolution en mètre ci-dessous. Attention, le projet QGIS doit être lui-même dans un SCR projeté)
- Résolutions horizontale et verticale = 25
- Emprise du résultat = cliquez sur Utiliser l'emprise du canevas (le raster généré aura ainsi l'emprise de la zone zoomée)
- Affecter une valeur nulle = -99 (remarque : c'est la valeur des pixels pour Absence de données)
- Paramètres avancés > Type de données en sortie = Int16 (valeurs entières)
- Couche en sortie rastérisée = Enregistrer vers un fichier >
CLC12_34_Rasterise.tif
(dansdata/mon_travail/1_7_analyse_spatiale
)
Enregistrez le projet.
Exercice 20. Nous allons rastériser les cours d'eau data/IGN_ETALAB/BD_Carthage/CoursEau_76_Occitanie
, en prenant comme zone de travail l'étendue des stations du Gard du SNO Karst (OSU OREME), avec comme valeur pour les pixels : 1 s'ils sont traversés par un cours d'eau, sinon Absence de données. Cette fois-ci, on utilise donc une valeur constante au lieu d'un attribut.
Toujours dans le projet 1_7_analyse_conversion.qgz
, ouvrez la couche WFS SNO KARST - ALL STATIONS
du serveur WFS https://sig.oreme.org/geoserver/oreme/wfs
. Sélectionnez les stations du Gard. Avec un clic-droit sur la couche + Exporter/Sauvegarder les entités sélectionnées sous..., exportez les points sélectionnés dans un nouveau shapefile SNOKarst_stations30_l93.shp
(SCR = EPSG:2154) dans data/mon_travail/1_7_analyse_spatiale
.
Avec l'outil Rasteriser (vecteur vers raster), spécifiez les options suivantes et lancez la rastérisation :
- Couche en entrée =
CoursEau_76_Occitanie
- Valeur fixe à utiliser pour les pixels = 1
- Unité du raster résultat = Unités géoréférencées
- Résolutions horizontale et verticale = 25
- Emprise du résultat = cliquez sur Utiliser l'emprise de la couche
SNOKarst_stations30_l93.shp
(le raster généré aura ainsi la même emprise que cette couche) - Affecter une valeur nulle = 0 (c'est la valeur des pixels pour Absence de données)
- Paramètres avancés > Type de données en sortie = Byte (valeurs entières entre 0 et 255)
- Couche en sortie rastérisée = Enregistrer vers un fichier >
CoursEau_Rasterise_SNOKarst_30.tif
(dansdata/mon_travail/1_7_analyse_spatiale
)
Enregistrez le projet.
5. Menu Raster/Calculatrice raster
Le menu Raster/Calculatrice raster (ou menu Traitement/Boîte à outils/GDAL/Divers raster) permet d'effectuer des opérations algébriques sur plusieurs rasters.
Exercice 21. A l'aide de la calculatrice raster, vous allez combiner les couches raster CLC12_34_Rasterise.tif
et DEM_assemblage_l93_orientation.tif
pour rechercher les zones de type 'Forêts de feuillus' (code = '311'), sur des terrains orientés entre le sud-est et le sud-ouest (azimuth compris entre 135° et 225°).
Toujours dans le projet 1_7_analyse_conversion.qgz
, importez la couche DEM_assemblage_l93_orientation.tif
générée dans l'exercice 18.
Pour réduire le temps de traitement, zoomez sur une zone restreinte. Par exemple, dans la barre d'état, attribuez une échelle d'affichage de 1:80000.
Ouvrez la calculatrice et définissez le fichier en sortie :
- Couche en sortie =
terrain_S_P5.tif
(dansdata/mon_travail/1_7_analyse_spatiale
) - Format =
GeoTIFF
Pour l'expression, les 3 prédicats suivants articulés avec l'opérateur booléen AND donneront en sortie des pixels 0 (faux) ou 1 (vrai).
- Expression =
"CLC12_34_Rasterise@1" = 311 AND "DEM_assemblage_l93_orientation@1" >= 135 AND "DEM_assemblage_l93_orientation@1" <= 225
En appliquant sur le raster un rendu de type Palette/valeurs uniques et en n'affichant que la classe de valeur=1, vous obtiendrez une carte de cette apparence :
Enregistrez le projet.
6. Extension Point Sampling Tool
L'extension Point Sampling Tool, à installer par l'intermédiaire du gestionnaire d'extensions de QGIS, permet l'extraction, pour une couche de points, des valeurs des rasters et des couches polygonales à la position des points.
L'outil est accessible soit par le menu Extensions/Analyses/Point Sampling Tool, soit sous la forme d'un nouveau bouton Point Sampling Tool dans la barre d'outils Extensions.
Attention
Pour que cela fonctionne, il faut que toutes les couches partagent le même système de coordonnées.
Exercice 22. Dans cet exercice vous allez extraire des données topographiques et environnementales pour les emplacements des stations SNO-KARST du Gard afin de compléter la table attributaire de ces stations.
Dans le panneau des couches, rendez visibles les couches suivantes : SNOKarst_stations30_l93.shp
, CLC12_RLRMP_RGF.shp
, CoursEau_Rasterise_SNOKarst_30.tif
, DEM_assemblage_l93
(raster altitude), DEM_assemblage_l93_pente
(raster pente), DEM_assemblage_l93_orientation
(raster azimut).
Ouvrez l'outil Point Sampling Tool, choisissez la couche de points SNOKarst_stations30_l93.shp
en entrée, et un nouveau shapefile en sortie : SNOKarst_stations30_l93_PST.shp
dans data/mon_travail/1_7_analyse_spatiale
. Pour les champs et bandes d'où extraire les valeurs, sélectionnez dans la liste avec clic + touche CTRL :
- SNOKarst_stations30_l93:latitude
- SNOKarst_stations30_l93:longitude
- SNOKarst_stations30_l93:city
- SNOKarst_stations30_l93:region
- SNOKarst_stations30_l93:so_long_na
- SNOKarst_stations30_l93:measuremen
- CLC12_RLRMP_RGF:CODE_12
- CoursEau_Rasterise_SNOKarst_30:bande1
- DEM_assemblage_l93:bande1
- DEM_assemblage_l93_pente:bande1
- DEM_assemblage_l93_orientation:bande1
Avant de cliquer sur OK, allez sur l'onglet Champs pour renommer les 3 colonnes résultant des DEM. Les noms des champs étant limités à 10 caractères, renommez les colonnes "alti", "pente" et "orient".
Pour vérifier le résultat, ouvrez la table attributaire du nouveau shapefile SNOKarst_stations30_l93_PST.shp
.
Enregistrez le projet.
7. Menu Traitement/Boîte à outils/Analyse Raster/Statistiques de zone
Le menu Traitement/Boîte à outils/Analyse Raster/Statistiques de zone calcule les statistiques d'une couche raster pour chaque entité d'une couche de polygones qui la recouvre.
Exercice 23. Dans cet exercice nous allons calculer les statistiques relatives à l'altitude pour les communes de l'arrondissement de Lodève : pour chaque commune, nous calculerons les altitudes moyenne, minimale et maximale.
Chargez la couche COMMUNE
et sélectionnez les entités selon l'expression : "INSEE_DEP" = '34' AND "INSEE_ARR" = '2'.
Enregistrez les entités sélectionnées dans un nouveau shapefile COMMUNE_D34_A2.shp
(clic-droit + Exporter/Sauvegarder les entités sélectionnées sous...) dans data/mon_travail/1_7_analyse_spatiale
.
Pour chaque entité de la nouvelle couche, calculez les valeurs agrégées avec l'outil Statistiques de zone.
- Couche raster =
DEM_assemblage_l93
- Couche vecteur =
COMMUNE_D34_A2
- Préfixe = alti_
- Statistiques à calculer = Moyenne, Min, Max
Les 3 nouveaux champs sont ajoutés à la couche COMMUNE_D34_A2
. Inspectez le résultat dans la table attributaire.
Enregistrez le projet.
8. Menu Traitement/Boîte à outils/Interpolation
Pour information, le menu Traitement/Boîte à outils/Interpolation permet l’interpolation spatiale qui est un processus d’utilisation des points avec des valeurs connues pour des valeurs estimées à d’autres points inconnus (cf. doc QGIS interpolation). Ce type de surface d’interpolation obtenu (raster) est souvent appelé surface statistique. Les données d’altitude, de température, de précipitation, d’accumulation de neige, de densité de population sont des exemples de données qui peuvent être calculés par interpolation. Voici les outils disponibles nativement dans QGIS :
- Interpolation IDW (Pondération par Distance inverse) ou Interpolation TIN (Triangulaire). Il s'agit des deux méthodes d'interpolation les plus courantes.
- Carte de chaleur (hotspot, heatmap) à partir d’une couche de points. Paramétrage d’un rayon de recherche pour la détection et l’analyse des points voisins. Possibilité que les valeurs d’un attribut soient une variable pour le calcul de l’interpolation.
1.7.3 À RETENIR
- Le menu Traitement/Boîte à outils est l’élément principal de l’interface graphique de traitement, avec une fonction Rechercher... pour trouver aisément les outils d'analyses, opérations spatiales, géotraitements, statistiques, etc.
- Les menus Vecteur et Raster fournissent des raccourcis, groupés par sous-menus thématiques, pour de nombreux traitements courants et de différents fournisseurs. Si ces sous-menus ne sont pas disponibles, activez l’extension Processing.
- Le gestionnaire d'extensions de QGIS permet d’ajouter facilement de nouvelles fonctionnalités au logiciel.