XII. Télédétection

XII.2 Extraction de l'information spectrale


Les objectifs de ce chapitre sont les suivants :

  • Extraire les signatures spectrales d’objets géographiques sur une image satellitaire
  • Interprétez vos signatures spectrales
  • Extraire et analyser des indices spectraux : NDVI (Normalized Difference Vegetation Index) et NBR (Normalized Burn Ratio)

Extraction de signature spectrale

Ouvrez un nouveau projet QGIS. Ajoutez-y la couche raster Sentinel2_2021_08_17.tif.

Pour en savoir plus sur cette image, voir le chapitre précédent !

Nous allons ici digitaliser (dessiner) des polygones dans des zones avec différents types d'occupation du sol (eau, urbain, forêt...), afin de voir ensuite la signature spectrale de chacune de ces classes.

Ces polygones sont souvent nommés ROI en télédétection pour « Region Of Interest ».

Définition du jeu de bandes en entrée dans l'extension SCP

Il faut tout d'abord définir l'image satellite en entrée pour l'extension SCP.

icône jeu de bandes du plugin SCPMenu SCP → Jeu de bandes ou bien cliquez sur l'icône correspondante dans le panneau SCP :

Choix du jeu de bandes dans le plugin SCP
  • Sélectionnez l'image Sentinel2_2021_08_17.tif dans la liste déroulante en haut de la fenêtre (si vous ne la voyez pas, rafraîchissez la liste au moyen du bouton à droite)
  • En bas de la fenêtre, dans la liste Wavelength quick settings, sélectionnez Sentinel-2.

Il est inutile de cliquer sur le bouton Run. Vous pouvez maintenant fermer cette fenêtre.

L'extension SCP est maintenant paramétrée pour travailler sur notre image, qui est reconnue comme une image Sentinel-2.

La dernière chose à faire avant de commencer à dessiner les polygones d'entraînement est de choisir une composition colorée permettant de bien voir les différentes catégories d'occupation du sol. Ici, afin de bien voir la végétation, les zones brûlées et les feux, nous allons afficher les bandes 13, 8 et 4 (propriétés de la couche → symbologie) :

Composition colorée 13-8-4 de l'image Sentinel 2 : la végétation est en vert, les zones brûlées en rouge

Nous allons pouvoir dessiner nos ROI !

Création des polygones d'entraînement (ROI)

Nous allons créer ici une couche de polygones d'entraînement. Si vous désirez sauter cette étape, ou bien comparer vos résultats, vous trouverez également en téléchargement la couche de ROI "prête à l'emploi" ROI_S2_2021_08_17.scpx.

Attention, les couches de ROI ont l'extension SCP avec la version 7 de l'extension SCP, et l'extention SCPX avec la version 8. Dans les données du tutoriel, vous trouverez les 2 versions.

Dans le panneau SCP (s'il n'est pas visible, menu Vue → Panneaux → Menu SCP), cliquez sur l'onglet vertical Training input :

onglet 'entrée données d'entrainement' du panneau SCP

icône ouvrir un jeu d'entrainement dans le panneau SCPCliquez sur l'icône Créer une nouvelle donnée d'entraînement en haut du panneau SCP. Choisir l'emplacement et le nom de la couche SCP qui sera créée et qui contiendra les ROIs.

Cette couche est ajoutée à QGIS (ici, elle se nomme ROI_S2_2021_08_17) :

liste des couches dans QGIS, avec l'image sentinel-2 et la couche scp

Cette couche semble une couche temporaire (icône grise à côté de son nom), mais il s'agit bien d'une couche sauvegardée sur votre disque, comme vous pouvez vous en assurer dans votre explorateur de fichiers. Elle possède l'extension .scp (v7) ou .scpx (v8) propre à l'extension QGIS SCP.

Nous allons maintenant ajouter des polygones dans cette couche !

Tout d’abord, dans le bas du panneau SCP, écrire le type d’objet géographique que l’on souhaite digitaliser, par exemple :

  • Nom de MC : Surface en eau
  • Nom de C : Eau
Nom de MC et Nom de C remplis par 'Surface en eau' et 'Eau'

MC signifie Macro-Classe, et C Classe : une macro-classe peut regrouper plusieurs classes (par exemple, on pourrait avoir une macro-classe surface en eau et 2 classes eau douce et mer).

Il ne reste plus maintenant qu'à digitaliser un polygone correspondant à cette classe.

icône de création de ROICliquez sur l'icône Create a ROI polygon dans la barre d'outil SCP working toolbar.

Si vous ne voyez pas cette barre d'outils, menu Vue → Barres d'outils → SCP Working Toolbar.

SCP working toolbar avec l'outil de création de ROIs entouré en rouge

Le curseur est maintenant une croix. Dans QGIS, zoomez sur une zone avec de l'eau et dessinez un polygone contenant uniquement de l'eau, en faisant un clic droit pour terminer (contrairement à la numérisation dans QGIS, le clic droit final est pris en compte) :

ROI temporaire eau, orange transparent

Ce ROI est temporaire ; s'il ne vous convient pas, dessinez-en simplement un autre et le premier sera supprimé.

Une fois satisfait-e de votre ROI, cliquez sur le bouton en bas à droite du panneau SCP Sauvez les ROI temporaires dans les données d'entraînement :

bas du panneau SCP avec l'icône pour sauver les ROIs entourée en rouge

Si le calcul de la signature est trop long, vous pouvez décocher la case Signature pour les calculer ultérieurement.

Patientez... Le ROI est ajouté dans le haut du panneau SCP :

haut du panneau SCP avec le 1er ROI visible

Il a aussi changé d'aspect dans la fenêtre de QGIS :

fenêtre de QGIS : ROI sauvegardé, en noir avec contour en pointillés blancs

Une couleur par défaut lui est attribuée. Cependant, dans la fenêtre de QGIS, il est représenté en noir avec un contour en pointillés blanc. En fait, il est représenté suivant le style de la couche de signatures spectrales, que vous pouvez modifier comme pour n'importe quelle couche (double clic sur son nom → Symbologie). Les couleurs du panneau SCP seront quant à elles utilisées pour les graphiques, comme nous allons le voir très bientôt !

De la même manière, digitalisez un polygone pour chacune des macro-classes suivantes :

  • Surface bâtie
  • Surface en forêt
  • Surface en culture
  • Surface brulée
  • Feux

N'oubliez pas d'incrémenter l'ID de la macro-classe (MC ID) à chaque nouveau polygone ! Sinon, il est possible de le faire par la suite en double-cliquant sur la case à modifier, puis en tapant un chiffre. L'ID de la classe (C ID) peut rester à 1, nous ne créerons à chaque fois qu'une seule classe par macro-classe.

Pensez à sauvegarder après chaque polygone, si vous décochez "signature" la sauvegarde sera plus rapide !

Au final, votre panneau SCP doit ressembler à ceci :

panneau SCP avec les 6 ROIs correspondant aux 6 classes définies + haut

Nous allons maintenant afficher les signatures spectrales de nos ROIs.

Affichage des signatures spectrales

icône d'ajout des singatures spectrales au graphique Sélectionnez par exemple un polygone par classe, puis cliquez sur l'icône Ajouter les signatures spectrales surlignées au graphique dans la partie gauche du panneau :

panneau SCP avec les 6 classes sélectionnées et le bouton de signature spectrale entouré en rouge

La fenêtre suivante s'ouvre (cliquez si vous voulez la voir en plus grand) :

Fenêtre du graphique des signatures spectrales, pour chacune des 6 classes

La signature spectrale de chacune des 6 classes est représentée sous forme d'un graphique, de la couleur spécifiée dans le panneau SCP. Testez les différentes possibilités, par exemple :

  • cochez/décochez une ligne dans le tableau en haut de la fenêtre pour afficher/masquer une courbe
  • cochez/décochez la case étendue des valeurs du graphique ou Plot value range en bas de la fenêtre pour voir l'amplitude des signatures spectrales

Tous vos polygones sont sauvegardés dans la couche au format SCP ROI_S2_2021_08_17 (ou le nom que vous lui avez donné). Il est possible de charger une couche SCP au moyen du bouton Ouvrir un fichier de données d'entraînement.

haut du panneau SCP, onglet 'entrée données d'entraînement', avec le bouton 'ouvrir un fichier de données d'entraînement' entouré en rouge

Vous pouvez par exemple charger la couche de polygones d'entraînement ROI_S2_2021_08_17.scpx.

Interprétation de signature spectrale

Les signatures spectrales sont représentées sur un graphique avec en abscisse les bandes spectrales (ici les 13 bandes spectrales de Sentinel-2) et en ordonnée les valeurs de pixels (en réflectance au sol entre 0 et 1 ou 0 et 100%). Nous représentons ici les signatures spectrales de 6 classes d’occupation des sols :

  1. surface en eau
  2. surface bâtie
  3. surface en forêt
  4. surface en culture
  5. surface brûlée
  6. feux

Pour chaque bande, on représente la moyenne de valeurs de pixels extrait pour chaque ROI (Region of Interest). Ainsi, pour les surfaces en eau, représentée par une courbe bleue sur le graphique, nous avons des valeurs moyennes de réflectance très faibles quelle que soit la longueur d’onde, la signature spectrale de l’eau correspond ainsi à une ligne décroissante (plus forte valeur de réflectance dans le bleu et les plus faibles dans l’infrarouge).

La signature spectrale des cultures est typique de celle de la végétation caractérisée par une forte activité chlorophyllienne (culture certainement irriguée car l’image a été prise durant l’été dans le sud de la France) qui se traduit par de fortes réflectances dans le PIR (entre 30 et 35%).

Les surfaces brûlées, ici en rouge sur le graphique, sont caractérisés par des valeurs homogènes (autour de 10 % de réflectance) du bleu jusqu’au PIR (bande 9). En revanche, les valeurs de réflectance dans les bandes 12 et 13 (Infrarouge moyen) sont plus importantes (autour de 20 – 25 %), typique d’une réflectance d’une surface brûlée. Comme pour les autres classes d’occupation des sols, les bandes d’absorption de l’eau (Bande 10 et 11) sont caractérisées par de très faibles valeurs de réflectance, elles sont utilisées pour les corrections atmosphériques (cf. Lien CNES pour plus d’informations sur les modèles de correction atmosphérique).

Concernant les feux, les valeurs de réflectance dans l’infrarouge moyen sont très importantes, certains pixels dans la bande 13 saturent à 1, soit 100 % de réflectance. Cette bande spectrale apparaît ainsi particulièrement pertinente pour la détection et la localisation des feux en cours.

Extraction et analyse d'indices spectraux

Indice de végétation NDVI

L'indice de végétation ou NDVI (Normalized Difference Vegetation Index) permet de mesurer et spatialiser le taux de couverture de la végétation au sol ainsi que son activité chlorophyllienne.

Il se calcule à partir des bandes Proche Infra-Rouge (PIR) et Rouge (R) de la manière suivante :

NDVI = (PIR - R) / (PIR + R)

Ici, nous allons calculer cet indice de 2 manières différentes : avec l'extension SCP, et avec la calculatrice raster de QGIS.

Voici tout d'abord comment calculer le NDVI avec SCP :

Ouvrez un nouveau projet QGIS, ajoutez-y la couche Sentinel2_2021_08_17.tif.

Il faut d'abord si ça n'est pas déjà fait définir le jeu de bandes pour SCP : Menu SCP → Jeu de bande :

SCP, jeu de bandes
  • Cliquez éventuellement sur le bouton actualiser la liste pour voir apparaître le nom de l'image dans la liste déroulante
  • Sélectionnez l'image dans la liste déroulante
  • En bas de la fenêtre, choisissez Sentinel-2 pour le paramétrage rapide des longueurs d'onde

Vous pouvez maintenant aller dans la partie Calcul de bande de SCP, les bandes de notre raster seront listées dans le tableau en haut de la fenêtre. Si ça n'est pas le cas, utilisez le bouton Actualiser à droite de la liste des bandes.

SCP, calcul de bandes, liste des bandes en haut de la fenêtre entourée de rouge

Contrairement à ce qu'on aurait pu penser, il n'y a pas 13 bandes dans ce tableau mais 40 ! Pourquoi ? Sont listées dans cet outil :

  • Les 13 bandes du jeu de bandes actuel, sous la forme bandset#b1, bandset#b2 etc. (raster1 à raster13)
  • Les 13 bandes du jeu de bande 1 (donc identiques à celles ci-dessus), sous la forme bandset1b1, bandset2b2 etc. (raster14 à raster26)
  • bandset1b* (raster27) : toutes les bandes du jeu de bande 1 (toutes les bandes de l'image Sentinel-2)
  • bandset*b1, bandset*b2 etc. (raster28 à raster40) : toutes les bandes 1 de tous les jeux de bandes, toutes les bandes 2 de tous les jeux de bandes etc. (ici nous n'avons qu'un seul jeu de bandes, donc il s'agit encore des 13 mêmes bandes)

Certaines de ces « bandes » sont donc en réalité des listes de bandes et pourront être utilisées dans des expressions acceptant ces listes.

Ici, nous utiliserons uniquement les 13 premiers éléments de la liste correspondant aux 13 bandes de notre image !

SCP, calcul de bandes, partie Fonctions : NDVI

Dans la partie Fonctions à droite de la fenêtre, descendez pour arriver jusqu'à la rubrique Indices et double-cliquez sur NDVI.

La formule suivante s'affiche dans la partie Expression :

( "#NIR#" - "#RED#" ) / ( "#NIR#" + "#RED#" ) @NDVI

Dans cette formule, @NDVI sera le nom de la couche qui sera créée.

Vous pouvez également choisir de taper la formule du NDVI « à la main » en double-cliquant sur les bandes dans la partie haute de la fenêtre :

("raster8" - "raster4") / ("raster8" + "raster4") @NDVI

Le résultat sera le même en utilisant bandset#b8 et bandset#b4, ou bien bandset1b8 et bandset1b4...

bouton Lancer en bas à droite du panneau SCPPour lancer le calcul du NDVI, cliquez sur le bouton Lancer en bas à droite de la fenêtre.

Une nouvelle fenêtre s'ouvre pour vous demander l'emplacement où enregistrer la couche qui sera créee (son nom est défini par le texte à droite de l'arobase dans la formule, ici ce sera NDVI).

Patientez... Le nouveau raster est ajouté à QGIS :

image NDVI

Dans les propriétés de la couche, on peut voir l'histogramme des valeurs du NDVI :

image NDVI

Pour mieux visualiser ce NDVI, on peut utiliser une gamme de couleur allant du rouge au vert, en choisissant le type de rendu Pseudo-couleur à bande unique :

style pseudo-couleur de -1 à 1 avec la galle RdYlGn pour le NDVI

Ce qui permet d'observer :

  • en rouge-orange les valeurs inférieures à 0 : ce sont les surfaces non couvertes par les végétaux (eau, nuages...), les valeurs des pixels sont plus grandes dans le rouge que dans le proche infra-rouge
  • en jaune les valeurs autour de 0 correspondant au sol nu : les valeurs des pixels sont à peu près les mêmes dans le rouge et dans le proche infra-rouge
  • en vert les valeurs supérieures à 0 correspondant aux zones avec de la végétation, un vert plus foncé traduisant un couvert plus dense : les pixels ont une valeur plus forte dans le proche infra-rouge que dans le rouge.

TODO : interprétation NDVI à compléter/modifier ?

image NDVI du rouge (-1) au vert (1)

Bravo, vous venez de calculer un indice de végétation avec l'extension SCP !

On peut également calculer le NDVI sans utiliser l'extension SCP, directement dans QGIS, à l'aide de la calculatrice raster.

Dans la boîte à outils → Analyse raster → Raster Calculator :

calcul du NDVI dans la calculatrice raster
  • Dans Expressions prédéfinies, sélectionnez NDVI puis cliquez sur Ajouter... pour sélectionner les bandes rouges et proche infra-rouges
  • Dans la case Expression, la formule est maintenant la suivante : (Sentinel2_2021_08_17@8 - Sentinel2_2021_08_17@4) / (Sentinel2_2021_08_17@8 + Sentinel2_2021_08_17@4)
  • Dans Reference layer(s), cliquez sur les ... à droite et sélectionnez l'image Sentinel, pour que la couche NDVI en sortie aie la même emprise, résolution et SCR
  • Dans Output en bas de la fenêtre, laissez la valeur par défaut Enregistrer dans un fichier temporaire

Exécutez... La couche temporaire est ajoutée à QGIS, elle est similaire à celle créée avec SCP.

TODO : calcul NDVI pour les surfaces en eau, forêt etc.

Normalized Burn Ratio (NBR)

L'indice normalisé des surfaces brûlées (Normalized Burn Ratio ou NBR) est utilisé pour identifier les surfaces brûlées et donner une mesure de l'intensité des feux.

De la même manière que le NDVI, c'est un ratio basé sur 2 bandes, mais cette fois il s'agit des bandes Proche Infra-Rouge (PIR) et Infra-Rouge Court (SWIR) :

NBR = (NIR - SWIR) / (NIR + SWIR)

graphique NBR, réflectance en fonction de la longueur d'onde
Source: U.S. Forest service.

Comme indiqué sur le site UN-SPIDER Knowledge Portal :

Cet indice est basé sur le fait que la végétation saine a une forte réflectance dans le PIR et une faible réflectance dans le SWIR, à l'inverse de la végétation brûlée.

Comme pour le NDVI, les valeurs du NBR varient de -1 à 1. Une valeur élevée indique une végétation saine, une valeur faible indique du sol nu et des zones récemment brûlées.

De la même manière que vous avez calculé le NDVI, à vous de calculer le NBR, avec l'extension SCP et/ou avec la calculatrice raster !

Vous devez obtenir un résultat similaire à ceci :

image NBR
Ici, les valeurs élevées sont représentées en blanc et les valeurs faibles en noir.

TODO : analyse et interprétation NBR


chapitre précédent chapitre suivant
haut de page
b1