Statistiques de Zone et calcul d’aire

Site: OpenCourseWare for GIS
Cours: QGIS pour l’analyse de la productivité de l’eau
Livre: Statistiques de Zone et calcul d’aire
Imprimé par: Guest user
Date: mercredi 15 janvier 2025, 16:49

1. Introduction

Dans ce chapitre, vous apprendrez à utiliser les statistiques de zone.

Avec les statistiques de zone, vous pouvez calculer les statistiques d'un raster pour chaque polygone dans un fichier vecteur de polygones.

Tout d'abord, vous allez télécharger une image Sentinel 2 récente. Ensuite, vous calculerez le NDVI (Indice de végétation par différence normalisée) à partir des bandes Sentinel 2 en utilisant la calculatrice raster de QGIS. Enfin, vous utiliserez la couche contenant les parcelles pour calculer la moyenne, l'écart type, le minimum et le maximum pour les valeurs de NDVI pour chaque parcelle. Vous ajouterez également la taille (aire et périmètre) des polygones de parcelles comme attribut dans le fichier des parcelles.

Vous répéterez l'opération de statistiques de zone sur les données WaPOR 3 de 20 m.

2. Chargement des données de parcelles

1. Ouvrez un nouveau projet QGIS Desktop

2. Allez au panneau Explorateur et cherchez les données de la Leçon 2.

3. Cliquez droit sur le dossier avec les données et choisissez Ajouter aux marque-pages depuis le menu.


4. Ce marque page apparaitra maintenant en haut de l’Explorateur ce qui vous permet un accès rapide aux dossiers que vous utilisez souvent.


5. Développez polygone_308UE.shp en cliquant la flèche noire. Développez ensuite Champs.

Vous pouvez ainsi facilement explorer les attributs des couches vecteurs avant de les ouvrir dans QGIS.

6. Cliquez droit sur polygone_308UE.shp et choisissez Propriétés de la couche….


  • Vérifiez les Propriétés de la couche. Quelle est la projection de la couche ?

7. Faites glisser la couche depuis l’Explorateur vers la canevas de carte.

Pour obtenir plus de contexte nous allons ajouter une carte haute résolution de Google en arrière-plan avec le plugin QuickMapServices.

8. Dans le menu principal, sélectionnez Extensions | Installer/Gérer les extensions.


9. Recherchez le plugin QuickMapServices et cliquez Installer le plugin.



10. Cliquez Fermer.

11. Dans le menu principal sélectionnez Internet | QuickMapServices | Settings.



12. Dans la fenêtre de dialogue de QuickMapServices allez à l’onglet More services et cliquez Get contributed pack.



13. Cliquez OK dans la fenêtre popup puis Enregistrer.

Vous avez maintenant accès à de nombreux raster (XYZ tiles).

14. Retournez au menu principal et sélectionnez Internet | QuickMapServices | Google | Google Satellite.



Vous pouvez maintenant voir les parcelles superposées sur l'image satellite de haute résolution.



15. Dans le panneau Couches, sélectionnez la couche polygone_308UE et ouvrez le style de couche en cliquant .

16. Dans le panneau Style de couche sélectionnez Catégorisé. Dans Valeur, sélectionnez crop_type. Utilisez ‘random colors’ (couleurs aléatoires) et cliquez Classer.





Vous voyez maintenant les différentes cultures de différentes couleurs sur la carte.

Notez que le dernier élément de la légende toutes les autres valeurs est ajouté pour représenter les polygones avec des valeurs nulles (NULL).

3. Créer un GeoPackage

La couche de polygones couvre une zone trop large. Concentrons-nous sur la zone représentée ci-dessus.

1. Zoomez sur les parcelles de l’image.


2. Dans la barre d’outils cliquez sur  pour sélectionnez les parcelles sur la carte.

3. Dans le panneau Couches, cliquez droit sur polygone_308UE et choisissez Exporter | Sauvegarder les entités sélectionnées sous….


4. Modifiez le Format pour sélectionner GeoPackage.

5. Cliquez  pour choisir le dossier où les données de cet exercice sont sauvegardées. Enregistrez le GeoPackage sous le nom database.gpkg.

6. Tapez parcels pour Nom de la couche.

7. Changez le SCR à EPSG:30791.

8. Cliquez OK.

L’outil va maintenant reprojeter les polygones sélectionnés et les enregistrer dans un nouveau GeoPackage.


Vous avez probablement remarqué que la nouvelle couche a maintenant un style par défaut. Nous pouvons copier le style de la couche originale et l’appliquer à la nouvelle couche.

9. Dans le panneau Couches, cliquez droit sur polygone_308UE et choisissez Styles | Copier le style | Toutes les catégories de style.


10. Cliquez droit sur database – parcels et choisissez Styles | Coller le style | Toutes les catégories de style.


11. Retirez la couche polygone_308UE.

Sauvegardons aussi notre projet dans le GeoPackage.

12. Dans le menu principal, sélectionnez Projet | Enregistrer sous | GeoPackage….


13. Dans la fenêtre popup naviguez jusqu’à votre GeoPackage et enregistrez-y votre projet.


L’image satellite haute résolution n’est pas appropriée pour faire les calculs dont nous avons besoin. Nous allons donc télécharger une autre image.



4. Téléchargement d’une image Sentinel 2 récente

Pour commencer, nous allons télécharger une image récente de Sentinel 2 pour notre zone d’étude. Nous utiliserons les bandes rouge et infrarouge proche (near infrared, NIR) pour calculer le NDVI. La résolution spatiale des bandes rouge et NIR est de 10m.

Pour télècharger les bandes de Sentinel 2, nous allons utiliser l’extension (plugin) STAC API Browser. STAC signifie SpatioTemporal Asset Catalogs ou Catalogue de ressources spatio-temporelles ce qui est un standard pour partager les données spatio-temporelles.

1. Installez l’extension STAC API Browser à partir du gestionnaire d’extensions : dans le menu principal, allez à Extensions | Installer/gérer les extensions....



2. Dans la barre d’outils, cliquez sur l’icône  pour ouvrir la fenêtre de dialogue du STAC API Browser.

3. Choisissez Microsoft Planetary Computer STAC APIFetch collections, puis Sentinel-2 Level-2A.

4. Cochez la case Filter by date et choisissiez un intervalle de dates dans le mois passé.

5. Cochez la case  Extent et utilisez l’étendue de la couche parcels que vous avez crée précédemment.

6. Cliquez sur Search.



Vous verrez maintenant les résultats de la recherche. Vous aurez un aperçu de l'image ainsi qu'une description comprenant la date d'acquisition et le pourcentage de couverture nuageuse. Si vous ne voyez que des images nuageuses, veuillez étendre la plage de dates.

7. Si vous avez trouvé une image sans nuages , cliquez sur View assets.

Maintenant, vous verrez les bandes disponibles. Pour le calcul du NDVI, nous avons besoin des bandes rouge (R) et proche infrarouge (NIR) , qui sont respectivement les bandes 4 et 8.

8. Nous les ajouterons comme couches temporaires: cochez les cases Bande 4 et Bande 8 devant Select to add as layer. Cliquez ensuite sur Add selected assets as layers (2).



9. Les bandes sont maintenant ajoutées à la carte.

Notez qu'il s'agit de couches temporaires. Si vous souhaitez les conserver, vous devez choisir Select to download. Vous pouvez aussi les rendre permanentes en les exportant vers un GeoTIFF sur votre disque dur.

5. Empiler et découper les images

L'image téléchargée couvre une zone plus étendue que notre zone d'étude et chaque bande est dans un raster séparé.

L'avantage d'utiliser un raster virtuel est qu'il n'est pas nécessaire de copier toutes les données ; seul un petit fichier est créé. Il est idéal pour les données intermédiaires pendant que vous suivez une suite d'opérations de traitement.


1. Dans le menu principal, allez à Raster | Divers | Construire un raster virtuel....



2. Dans la boite de dialogue, cliquez sur  à côté de Input layers et sélectionnez les 2 bandes Sentinel.



3. Cliquez la flèche bleue où OK pour revenir à la fenêtre principale.

4. Cochez la case Place each input file into a separate band.

5. Enregistriez le résultat sous le nom Sentinelb4_b8.vrt et cliquez Exécuter.



Nous allons maintenant découper le raster pour couvrir seulement la zone de la couche de parcelles.

6. Dans le panneau Couches, cliquez droit sur Sentinelb4_b8 et choisissez Exporter | Enregister sous....

7. Dans la boite de dialogue, choisisses Sentinelb4_b8.tif comme Nom de fichier et modifiez le SCR de sortie en EPSG:30791.

8. Sous Emprise choisissez Calculer depuis Couche puis database – parcels.



9. Changez la Résolution à 10 m.



10. Cliquez sur OK.

11. Retirez le raster virtuel avec les bandes Sentinel et retirez les bandes individuelles.

Nous pouvons maintenant calculer le NDVI.

6. Calcul du NDVI

Avec les bandes Sentinel 2 téléchargées dans la section précédente, nous pouvons maintenant calculer l'indice de végétation par différence normalisée (NDVI). L’équation du NDVI est la suivante :


NIR est la bande proche  infrarouge et Red est la bande rouge. L'équation donne des valeurs comprises entre -1 et 1. Les valeurs de 0 à 1 indiquent une augmentation de la végétation verte/couverture végétale.

Nous allons utiliser la Calculatrice Raster pour calculer le NDVI.

1. Ouvrez la Calculatrice Raster depuis le menu principal Raster | Calculatrice Raster....



2. Dans Calculatrice Raster tapez l’expression telle quelle est ci-dessous et enregistrez les résultats en GeoTIFF sous le nom ndvi.tif.



Sous Raster Bandes, les couches raster sont répertoriées. S'il s'agit d'un raster multibandes, le @ permet d'indiquer le numéro de bande. Notez que nous ne pouvons pas stocker les noms des bandes, ce qui constitue une limitation importante.

3. Cliquez sur OK pour effectuer l’opération.

Une fois l’opération effectuée, le résultat apparait sur la carte.

Ouvrez la fenetre de Style de Couche et utilisez Pseudo-couleur à bande unique pour choisir une échelle de couleurs utile à la représentation du NDVI.



Certains pixels ont des valeurs négatives et selon la définition du NDVI, ceux-ci ne doivent pas avoir de végétation.

Créons un raster booléen, avec Vrai (1) pour le NDVI négatif et Faux (0) pour le NDVI positif.

5. Revenez à la Calculatrice raster et créez l'expression
"ndvi@1" < 0

6. Au lieu de sauvegarder le résultat de l’opération en tant que couche permanente, cochez la case Créer un raster à la volée au lieu d’écrire la couche sur le disque. Utilisez nonveg comme Nom de la couche.



7. Cliquez sur OK pour effectuer l’opération.

8. Ouvrez la fenêtre de Style de Couche et assurez-vous que la couche nonveg est activée.

  • Quel type de représentation doit-on utiliser pour la couche nonveg ?

9. Modifiez la représentation de Bande grise unique à Palette/Valeurs uniques

10. Cliquez sur Classer.

11. Retirez les zeros en sélectionnant la rangée et en cliquant sur Choisissez le rouge pour la valeur 1.


12. Cachez toutes les couches sauf nonveg et Google satellite.

13. Inspectez les pixels sans végétation

  • à quoi correspondent-ils?


7. Calcul des statistiques de zone

Dans cette section, nous utiliserons un outil de la Boite à outils de traitement pour calculer les statistiques de zone de la couche NDVI à l'aide des polygones de parcelles. La boîte à outils de traitement de QGIS fournit de nombreux outils pour traiter les données SIG. Outre les outils QGIS, elle propose également des outils de GDAL, GRASS et SAGA qui sont très utiles.

1. Vous pouvez activer la Boite à outils de traitement en choisissant Traitement | Boite à outils depuis le menu principal. Vous pouvez aussi cliquez sur le bouton .

Le panneau Boite à outils de traitement apparaitra.

2. Dans Boite à outils de traitement cliquez sur Analyse raster | Statistiques de zone (où utilisez la barre de recherche):



3. Dans la boite de dialogue, choisissez parcels comme Couche source et ndvi comme Couche raster. Changez le Préfixe de la colonne en sortie à NDVI_ pour pouvoir distinguer ce calcul des autres que nous effectuerons plus tard.

4. Cliquez sur  pour choisir les statistiques que vous souhaitez calculer. Choisissez Moyenne, Ecart-type, Minimum et Maximum et cliquez sur OK.


5. Dans le champ Zonal Statistics, utilisez le menu déroulant pour choisir Enregistrer dans un GeoPackage. Naviguez jusqu’au GeoPackage de ce projet et indiquez dans la fenêtre popup que vous voulez appeler la couche parcels with ndvi.


6. Cliquez sur Executer. Cliquez sur Fermer après l’opération pour fermer la fenêtre.

Vous verrez l’erreur ci-dessous. Cela signifie qu'il existe des erreurs géométriques dans la couche de parcelles que nous devons corriger avant de pouvoir continuer.


7. Allez à la Boite à outils de traitement.

8. Dans la barre d’outils, cliquez sur Éditer les entités sur place .

Une fois cette option activée, nous n'avons pas besoin de créer une copie de notre couche et les modifications seront directement enregistrées dans la couche d'origine.

9. Assurez-vous que la couche des parcelles est activée dans le panneau Couches et sélectionnez Géométrie vectorielle | Réparer les géométries dans le menu principal.

10. Gardez les options par défaut et cliquez sur Modifier toutes les entités.


11. Cliquez sur Fermer après l’opération.

12. Sur la barre d’outils, cliquez sur  pour sortir du mode édition et confirmez que vous voulez enregistrer vos modifications.

13. Répétez les étapes 2 – 6. Vous pouvez facilement le faire en cliquant sur  dans la barre d'outils de Boite à outils de traitement. Cherchez votre exécution précédente des Statistiques de zone et double cliquez dessus. Tout sera déjà rempli comme vous l'avez fait auparavant.

14. Cliquez sur Exécuter.

Maintenant l’opération est réussie.

15. Cliquez sur Fermer.

16. Vérifiez les statistiques calculées par parcelle dans la table attributaire.


17. Modifiez le style de parcels with ndvi en utilisant la représentation Graduée et utilisez une échelle de couleurs verte pour visualiser le NDVI moyen des parcelles.


On peut facilement visualiser les autres statistiques en dupliquant la couche parcelles with ndvi.

18. Dans le panneau Couches, cliquez-droit sur parcels with ndvi et choisissez Dupliquer la couche depuis le menu.


19. Renommez la couche originelle parcels with ndvi avec le nouveau nom : parcels with mean ndvi.

20. Renommez parcels with ndvi copie avec le nouveau nom :  parcels with max ndvi.

21. Cachez parcels with mean ndvi et rendez parcels with max ndvi visible.


22. Modifiez le style de parcels with max ndvi.

23. Répétez cette opération pour les autres statistiques et choisissez une bonne représentation.

8. Téléchargement de données WaPOR

Nous allons maintenant télécharger les données WaPOR et calculer leurs statistiques selon nos parcelles.

1. Allez à :  https://data.apps.fao.org/wapor/?lang=fr

2. Login

3. Cliquez sur Commencer la visite.

4. Allez à Sub-National | Algeria | Mitidja.

5. Cliquez sur  Actual evapotranspiration and interception (Mitidja, Algeria – Monthly – 20m) – WaPOR v3.

6. Lisez les métadonnées.

7. Cliquez sur Download the data from the bucket.

8. Téléchargez le fichier .tiff pour le même mois que votre image NDVI (où aussi proche que possible) en cliquant sur .

9. Localisez la couche dans l’Explorateur sous Marque-pages et faites la glisser sur la carte.


Les données WaPOR ne sont pas dans la même projection que la couche parcelles. Elles couvrent également une zone beaucoup plus vaste. Rectifions cela.

10. Cliquez droit sur le raster WaPOR choisissez Exporter | Enregistrer sous….


11. Dans la fenêtre de dialogue, enregistrez le résultat en GeoTIFF (utilisez la date dans le nom), avec le SCR EPSG:30791. Sous Emprise, cliquez sur Calculer depuis Couche choisissez la couche des parcelles. Tapez la valeur de 20 m pour la résolution.


12. Allez au panneau Style de couche et modifiez le style de la couche.

  • Le raster est-il booléen, discret ou continu ?
  • Quelle représentation faut-il utiliser ?


13. Calculez maintenant les statistiques zonales pour cette couche WaPOR pour les parcelles. Utilisez la couche  parcelles with ndvi comme entrée, afin que les statistiques soient ajoutées à la table attributaire avec AETI_ comme préfixe.

14. Répétez l’opération pour la production primaire nette de WaPOR : WaPOR Net primary production (Mitidja, Algeria – Monthly – 20m) – WaPOR v3.

15. Modifiez le style de tous les rasters et résultats sur parcelles pour avoir des couleurs intuitives.

9. Calcul d’aires et de périmètres

Outre les statistiques zonales, nous souhaitons souvent connaître la superficie et le périmètre des parcelles.

1. Ouvrez la table attributaire de la couche  des parcelles, qui contient toutes les statistiques calculées dans la section précédente.

2. Cliquez sur  pour activer le mode édition.

3. Cliquez sur  pour ouvrir la calculatrice de champ.

4. Tapez surface en tant que Nom. Changez Type à Nombre décimal (réel).

5. Dans le panneau du milieu, développez Géométrie et double-cliquez sur $area. Vous pouvez lire l'explication de la fonction dans le panneau de droite.

Le dialogue devrait maintenant ressembler à ceci :


6. Cliquez sur OK.

7. Vérifiez les resultats.

  • Quelles sont les unités?
  • Quelle expression doit-on utiliser pour calculer la surface en ha ?

8. Essayez maintenant d’ajouter le périmètre à la table attributaire.

9. Cliquez sur  pour désactiver le mode édition et confirmer que vous souhaitez enregistrer le résultat.

10. Fermez la table attributaire.

10. Créer des nuages de points

Vous pouvez exporter les tables attributaires vers une feuille de calcul pour effectuer une analyse plus approfondie. Ici, nous utiliserons le plugin Data Plotly pour créer un nuage de points.

1. Installez l’extension Data Plotly depuis le gestionnaire d’extensions.

2. Cliquez sur  pour ouvrir le panneau Data Plotly. Fermez les autres panneaux s'ils vous bloquent.

Créons d'abord un nuage de points entre la moyenne du NDVI et la NPP.

3. Assurez-vous que le Type de graphique est défini sur Scatter Plot et que Couche est la couche contenant toutes les statistiques (NDVI, AETI et NPP).

4. Pour Champ X, choisissez NDVI_mean et pour Champ Y, choisissez NPP_mean. Modifiez les autres paramètres si vous le souhaitez.


5. Cliquez sur .

6. Donnez un titre au graphique et modifiez les étiquettes X et Y.


7. En bas du panneau, cliquez sur Créer le graphique.

8. Vérifiez le résultat.

9. Cliquez sur Effacer le graphique  puis répétez l'opération pour AETI versus NDVI et AETI versus NPP.