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...

Analyse spatiale

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

Analyse spatiale vectorielle

Analyse spatiale vectorielle

Statistiques 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 Panneau Statistique également accessible dans Vue/Panneaux/Statistiques.

Le menu Vecteur/Outils de recherche agrège plusieurs outils dont Emprise de la couche Extraire l'emprise de la couche qui génère le rectangle englobant tous les objets de la couche.

Grille 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 :

  • Intersecter Intersection
  • Union Union
  • Regrouper Regrouper
  • Couper Couper (couche source = couche à découper)
  • Différence 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)
  • Bouton TamponTampon : 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 dans data/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 dans data/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.

Tampon A61

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 dans data/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.

Voir la solution

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

Analyse spatiale raster

1. Menu Raster/Extraction

Découper 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

Fusionner 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 (dans data/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 (dans data/mon_travail/1_7_analyse_spatiale)

Attribuez le même système de coordonnées au projet (SCR Lambert 93 (EPSG 2154)).

Voir la solution

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 Courbe de niveaux.

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 (dans data/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.

Voir la solution

Voici une "suggestion de présentation" réalisée avec QGIS 3.10.

Pente

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 (dans data/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.

Voir la solution

Voici une "suggestion de présentation" réalisée avec QGIS 3.10.

Orientation

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 Polygoniser (raster vers vecteur)
  • Rasteriser 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 (dans data/mon_travail/1_7_analyse_spatiale)

Enregistrez le projet.

Voir la solution

Occupation du sol rasterisée

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 (dans data/mon_travail/1_7_analyse_spatiale)

Enregistrez le projet.

Voir la solution

Cours d'eau rasterisés

5. Menu Raster/Calculatrice raster

Bouton 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 (dans data/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 :

Calculatrice raster

Enregistrez le projet.

Voir la solution

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.

Bouton Point Sampling Tool 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.

Voir la solution

7. Menu Traitement/Boîte à outils/Analyse Raster/Statistiques de zone

Statististiques zonales 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.

Voir la solution

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 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 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.