Masquer des nuages sur les images Landsat 8/9
Introduction
Contexte et objectifs
Cette documentation vise à détailler l’utilisation de la bande QA_PIXEL fournie par l’USGS pour les images satellites Landsat 8 et 9.
L’objectif principal est de fournir une méthodologie complète permettant d’exploiter la bande QA_PIXEL afin d’éliminer les nuages et leurs ombres des images satellites, garantissant ainsi une analyse de meilleure qualité.
Cette documentation est organisée en trois parties :
Principes généraux de la bande QA_PIXEL : Présentation de la structure et du fonctionnement de cette bande de contrôle qualité
Méthodologie d’application : Guide pratique des étapes à suivre pour créer et appliquer un masque de nuages
Analyse et interprétation : Exemple concret d’application avec visualisation d’une image nettoyée
Principe Général
Cette partie présente le principe général du masquage des nuages. Les nuages constituent des éléments complexes qui affectent fortement l’interprétation des images, car les valeurs de réflectance associées aux zones couvertes par des nuages sont difficiles à analyser et à interpréter correctement.
Le masquage des nuages permet donc de traiter ces zones en transformant les valeurs de pixels « complexes » en valeurs no data. Cette opération simplifie l’analyse des images en excluant les pixels affectés par la présence de nuages.
Cette méthode est particulièrement adaptée aux images présentant une couverture nuageuse faible à modérée, où les zones masquées ne représentent qu’une part limitée de l’image. En revanche, elle devient peu pertinente lorsque la couverture nuageuse est trop importante, car une grande partie des pixels serait transformée en no data, rendant l’analyse ultérieure difficile, voire impossible. La bande QA_PIXEL est une bande de « qualité » et de « probabilité ».
Les valeurs de la bande QA_PIXEL sont codées en nombres binaires sur 16 bits, dont l’ordre de présente ainsi (du bit numéro 15 à gauche au bit numéro 0 à droite) :
15 – 14 – 13 – 12 – 11- 10 – 9 – 8 – 7 – 6 – 5 – 4 – 3 – 2 – 1 – 0
Chaque bit peut être allumé (mis à 1) ou éteint (mis à 0). La signification de chaque bit est rappelée dans la figure Figure 1.
Méthodologie
1. Données et préparation
1.1 Type de données requis
Le téléchargement des scènes et la récupération des fichiers QA_PIXEL associées peut se faire à partir du portail EarthExplorer. Voir la section relative au téléchargement des données Landsat avec Earth Explorer.
1.2 Décompression du fichier (zip) et organisation
Après téléchargement, le produit est généralement fourni sous forme d’archive (.zip ou .tar selon la plateforme).
La procédure consiste à :
- Décompresser l’archive dans un dossier de travail.
- Vérifier la présence des fichiers essentiels :
- QA_PIXEL.TIF
- SR_B2.TIF, SR_B3.TIF, … (au moins une bande SR_Bx)
- Conserver QA_PIXEL et les bandes SR_Bx dans le même répertoire (ou une structure claire) pour faciliter l’import dans QGIS.
2. Implémentation sur QGIS (analyse d’un pixel)
2.1 Importer les rasters dans QGIS
Dans QGIS : - Layer → Add Layer → Add Raster Layer - Charger QA_PIXEL.TIF et une bande SR_Bx.TIF
2.2 Récupérer la valeur QA_PIXEL d’un pixel
Pour comprendre le contenu de QA_PIXEL, on commence par analyser un pixel :
- Activer l’outil Identifier des entités (icône “i”).
- Cliquer sur un pixel dans la couche QA_PIXEL.
- Noter la valeur décimale obtenue (ex. 22280, 23888, 21824, etc.).
Cette valeur est codée sur 16 bits, (15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0), dont chaque bit (ou paire de bits) encode une information qualité ou de probabilité.
Le tableau ci-dessus permet de décrire une valeur de pixel. Les différentes colonnes sont relatives aux informations des 16 bits.
2.3 Convertir décimal → binaire en 16 bits (démonstration)
La conversion, de décial à binaire, peut se faire via un convertisseur en ligne (ex. RapidTables).
ex. 22280 en décimal se code par 0101011100001000 en binaire.
La documentation de Landsat Collection 2 – Quality Assessment Bands présente un tableau permettant d’associer chaque valeur de pixel à une information de qualité ou de probabilité. Vous pouvez vous référer à ce tableau via le site : Documentation QA_PIXEL.
- Lire les bits états (1 bit)
Les bits états (0 à 7) indiquent la présence/absence d’éléments (nuage, ombre, cirrus, neige, etc.).
Lecture simple :
- bit = 1 → condition présente
- bit = 0 → condition absente
- Lire les champs de confiance (2 bits)
Certains indicateurs du raster QA_PIXEL sont fournis sous forme de champs de confiance, codés sur 2 bits.
- bits 8–9
- bits 10–11
- bits 12–13
- bits 14–15
3. Construction du masque :
A l’aide de la calculatrice raster sur QGIS nous allons transformer la bande QA_PIXEL en un raster binaire (un “masque”) qui indique, pour chaque pixel, s’il est :
- conservé (pixel exploitable, ciel clair) → valeur 1
- masqué (pixel non exploitable : nuage, ombre, cirrus, neige, etc.) → valeur 0
Ce masque est ensuite appliqué aux bandes de réflectance SR_Bx afin d’obtenir une image “nettoyée” avant analyses (indices, classification, cartographie).
Sortie attendue
Le résultat est un raster mask_clear.tif contenant uniquement :
- 0 : pixels à exclure (nuages/ombres/cirrus/neige/fill/dilated)
- 1 : pixels conservés (ciel clair)
Analyse et interprétation : Méthode sur QGIS avec les valeurs de pixels sans passer par la conversion en bits
Contexte et zone d’étude : Une zone d’étude située en Île-de-France a été sélectionnée pour la date du 6 novembre 2020, afin de travailler sur une image satellite présentant une couverture nuageuse significative, nécessaire à l’analyse de l’efficacité du masque de qualité.
- Étape 1 : Acquisition des données Téléchargement des images Landsat 8/9 via le portail USGS (United States Geological Survey), incluant l’ensemble des bandes spectrales ainsi que la bande de contrôle qualité QA_PIXEL.
- Étape 2 : Importation dans QGIS Ouverture de toutes les bandes téléchargées dans QGIS pour le traitement.
- Étape 3 : Création du masque binaire La bande QA_PIXEL a été traitée à l’aide de la Calculatrice raster afin d’exclure certaines valeurs correspondant à des pixels nuageux, selon l’expression suivante :
“QA_PIXEL@1” != 55052 AND “QA_PIXEL@1” != 22280
55052 correspond à des pixels identifiés comme cirrus,
22280 correspond à des pixels identifiés comme nuages.
Une analyse plus précise du masque QA_PIXEL a été réalisée à l’aide du tableau de référence des bits afin de comprendre la signification de chaque indicateur de qualité et leur combinaison dans les valeurs numériques du raster.
Cette opération permet de produire un masque binaire, dans lequel :
1 correspond aux pixels valides,
0 correspond aux pixels à exclure (nuages, cirrus, etc.).
L’image présentée (figure Figure 2) illustre la première phase du processus de masquage. Les pixels blancs, codés avec la valeur 1, indiquent les zones retenues pour l’analyse, alors que les pixels noirs correspondent à des valeurs 0, représentant les zones non prises en compte dans le traitement.
Le raster QA_PIXEL traité est ensuite divisé par lui-même afin que les pixels à 0, correspondant aux nuages, soient mis en NoData ce qui permet de les exclure des calculs ultérieurs (figure Figure 3), et apparaissent sous forme de zones transparentes (trous) dans l’image générée.
La seconde image (figure Figure 3) présente le résultat final du masquage réalisé sous QGIS, après l’application de l’opération masque divisé par lui-même à l’aide de la calculatrice raster. L’image obtenue est plus perinente car les pixels en NoData ont été totalement supprimées, formant des « trous » dans l’image. La figure finale (Figure 4) correspond à une composition colorée réalisée à partir des bandes traitées en utilisant le masque précédemment créé
- Étape 4 : Application du masque aux bandes spectrales Le masque binaire a ensuite été appliqué à chaque bande spectrale (B2, B3, B4, etc.) par multiplication dans la Calculatrice raster :
“BandeX@1” * “masque_binaire@1”
L’image produite est ensuite utilisée pour la composition colorée. Cette opération permet de conserver uniquement les pixels valides, tandis que les zones nuageuses et leurs ombres apparaissent en noir (valeur 0, assimilée à du NoData).
- Étape 5 : Visualisation en composition colorée
Une composition colorée vraies couleurs a été réalisée à partir des bandes masquées, à l’aide du plugin Rename Bands, afin de visualiser l’image nettoyée des nuages et de leurs ombres.
La figure finale est ensuite réalisée, c’est un composition colorée en vraies couleurs à partir des bandes traitées à partir du masque réalisé précédemment. Les zones conservées apparaissent en couleurs, tandis que les zones en NoData sont supprimées, ce qui crée des vides dans l’image.