Structure des collections Landsat
L'USGS produit des données en trois niveaux (catégories) pour chaque satellite:
- Niveau 1 (T1) : données qui respectent les exigences de qualité géométrique et radiométrique
- Niveau 2 (T2) : données qui ne répondent pas aux exigences de niveau 1
- En temps réel : données qui n'ont pas encore été évaluées (cela peut prendre jusqu'à un mois).
Pour en savoir plus, consultez la documentation de l'USGS sur les niveaux de la collection 2.
Pour permettre d'accéder à la fois aux données T1 validées et aux données en temps réel les plus récentes, nous avons regroupé les scènes en collections par niveau et par satellite. Voici des exemples pour Landsat 8:
ID | Description |
---|---|
LANDSAT/LC08/C02/T1_RT | Landsat 8, collection 2, niveau 1 et temps réel |
LANDSAT/LC08/C02/T1 | Landsat 8, collection 2, niveau 1 uniquement |
LANDSAT/LC08/C02/T2 | Landsat 8, collection 2, niveau 2 uniquement |
Les scènes nouvellement acquises sont ajoutées à la collection T1_RT chaque jour. Une fois qu'une scène RT est retravaillée et classée en tant que T1 ou T2, elle est supprimée de la collection T1_RT et la nouvelle version est ajoutée à la ou aux collections appropriées. Si votre travail est sensible aux suppressions ou aux scènes potentiellement mal enregistrées, vous pouvez vous en tenir à la collection T1. En général, il est très rare qu'une mauvaise mise au point soit suffisamment importante pour être remarquée sur les scènes nouvellement acquises.
Chacune des collections précédentes contient les données brutes (c'est-à-dire la radiance au niveau du capteur, à l'échelle). De plus, pour chaque collection contenant des images T1 ou T2, des produits TOA (réflectance au sommet de l'atmosphère), SR (réflectance de la surface) et LST (température de la surface terrestre) sont proposés. Le tableau suivant décrit l'ID de collection pour les collections TOA et SR/LST à l'aide de données Landsat 8.
ID | Description |
---|---|
LANDSAT/LC08/C02/T1_RT_TOA | Landsat 8, collection 2, niveau 1 + temps réel, TOA |
LANDSAT/LC08/C02/T1_TOA | Landsat 8, collection 2, niveau 1 uniquement, TOA |
LANDSAT/LC08/C02/T1_L2 | Landsat 8, collection 2, niveau 1 uniquement, SR et LST |
LANDSAT/LC08/C02/T2_TOA | Landsat 8, collection 2, niveau 2 uniquement, TOA |
Ces données existent pour Landsat 4, 5, 7, 8 et 9. Remplacez "LC08" dans les définitions de collection précédentes par les ID du tableau suivant pour récupérer les collections des différents satellites.
ID | Description |
---|---|
LT04 | Landsat 4, Thematic Mapper (TM) |
LT05 | Landsat 5, Thematic Mapper (TM) |
LE07 | Landsat 7, Enhanced Thematic Mapper Plus (ETM+) |
LC08 | Landsat 8, Operational Land Imager (OLI) |
LC09 | Landsat 9, Operational Land Imager 2 (OLI-2) |
État de la collection Landsat
Pré-collection 1: ne sont plus produites ni distribuées par l'USGS, non compatibles avec Earth Engine et seront supprimées de Data Catalog en 2024.
Collection 1: n'est plus produite ni distribuée par l'USGS, n'est pas prise en charge par Earth Engine et sera supprimée de Data Catalog en 2024. Utilisez le guide de migration pour mettre à jour vos scripts, modules et applications Earth Engine vers la collection 2 d'ici le 1er juillet 2024 afin d'éviter les requêtes non abouties.
Collection 2: collection actuelle produite par l'USGS. Disponibilité complète dans le catalogue de données Earth Engine.
Méthodes de traitement Landsat
Earth Engine contient diverses méthodes de traitement spécifiques à Landsat. Plus précisément, il existe des méthodes pour calculer la radiance au niveau du capteur, la réflectance au sommet de l'atmosphère (TOA), la réflectance de la surface (SR), le score de nuage et les composites sans nuage.
Rayonnement au niveau du capteur et réflectance TOA
Les scènes "brutes" d'Earth Engine contiennent des images avec des nombres numériques (DN) qui représentent la radiance mise à l'échelle. La conversion des DN en radiance au niveau du capteur est une transformation linéaire à l'aide de coefficients stockés dans les métadonnées de la scène (Chander et al., 2009). La méthode ee.Algorithms.Landsat.calibratedRadiance()
effectue cette conversion. La conversion en réflectance TOA (ou au niveau du capteur) est une transformation linéaire qui tient compte de l'élévation du Soleil et de la distance Terre-Soleil variable selon les saisons. La conversion TOA est gérée par la méthode ee.Algorithms.Landsat.TOA()
. La méthode TOA convertit les bandes thermiques en température de luminosité. Pour en savoir plus sur le calcul de la réflectance TOA ou de la température de brillance, consultez Chander et al. (2009) (ou ce site de l'USGS pour Landsat 8). L'exemple suivant montre la conversion de données brutes en radiance et en réflectance TOA pour une image Landsat 8:
Éditeur de code (JavaScript)
// Load a raw Landsat scene and display it. var raw = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318'); Map.centerObject(raw, 10); Map.addLayer(raw, {bands: ['B4', 'B3', 'B2'], min: 6000, max: 12000}, 'raw'); // Convert the raw data to radiance. var radiance = ee.Algorithms.Landsat.calibratedRadiance(raw); Map.addLayer(radiance, {bands: ['B4', 'B3', 'B2'], max: 90}, 'radiance'); // Convert the raw data to top-of-atmosphere reflectance. var toa = ee.Algorithms.Landsat.TOA(raw); Map.addLayer(toa, {bands: ['B4', 'B3', 'B2'], max: 0.2}, 'toa reflectance');
import ee import geemap.core as geemap
Colab (Python)
# Load a raw Landsat scene and display it. raw = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318') m = geemap.Map() m.center_object(raw, 10) m.add_layer( raw, {'bands': ['B4', 'B3', 'B2'], 'min': 6000, 'max': 12000}, 'raw' ) # Convert the raw data to radiance. radiance = ee.Algorithms.Landsat.calibratedRadiance(raw) m.add_layer(radiance, {'bands': ['B4', 'B3', 'B2'], 'max': 90}, 'radiance') # Convert the raw data to top-of-atmosphere reflectance. toa = ee.Algorithms.Landsat.TOA(raw) m.add_layer(toa, {'bands': ['B4', 'B3', 'B2'], 'max': 0.2}, 'toa reflectance') m
Réflectance de la surface
Les données de réflectance de surface (SR) Landsat sont disponibles dans Earth Engine en tant que copie de l'archive de niveau 2 de la collection 2 de l'USGS. Notez que les données SR de Landsat 4, 5 et 7 sont générées à l'aide de l'algorithme LEDAPS, tandis que les données SR de Landsat 8 et 9 sont générées à l'aide de l'algorithme LaSRC. Découvrez ces algorithmes et leurs différences avec l'USGS.
Pour accéder à une image Landsat 8 de la collection 2 de l'USGS, procédez comme suit:
Éditeur de code (JavaScript)
var srImage = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20201028');
import ee import geemap.core as geemap
Colab (Python)
sr_image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20201028')
Les ensembles de données de réflectance de la surface pour la collection 2 Landsat 4 à 9 sont les suivants:
Éditeur de code (JavaScript)
var surfaceReflectanceL4 = ee.ImageCollection('LANDSAT/LT04/C02/T1_L2'); var surfaceReflectanceL5 = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2'); var surfaceReflectanceL7 = ee.ImageCollection('LANDSAT/LE07/C02/T1_L2'); var surfaceReflectanceL8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2'); var surfaceReflectanceL9 = ee.ImageCollection('LANDSAT/LC09/C02/T1_L2');
import ee import geemap.core as geemap
Colab (Python)
surface_reflectance_l4 = ee.ImageCollection('LANDSAT/LT04/C02/T1_L2') surface_reflectance_l5 = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2') surface_reflectance_l7 = ee.ImageCollection('LANDSAT/LE07/C02/T1_L2') surface_reflectance_l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2') surface_reflectance_l9 = ee.ImageCollection('LANDSAT/LC09/C02/T1_L2')
Score cloud simple
Pour évaluer les pixels Landsat en fonction de leur couverture nuageuse relative, Earth Engine fournit un algorithme rudimentaire d'évaluation des nuages dans la méthode ee.Algorithms.Landsat.simpleCloudScore()
. (Pour en savoir plus sur l'implémentation, consultez cet exemple de script de l'éditeur de code.) L'exemple suivant utilise l'algorithme d'évaluation des nuages pour masquer les nuages dans une image Landsat 8:
Éditeur de code (JavaScript)
// Load a cloudy Landsat scene and display it. var cloudy_scene = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140926'); Map.centerObject(cloudy_scene); Map.addLayer(cloudy_scene, {bands: ['B4', 'B3', 'B2'], max: 0.4}, 'TOA', false); // Add a cloud score band. It is automatically called 'cloud'. var scored = ee.Algorithms.Landsat.simpleCloudScore(cloudy_scene); // Create a mask from the cloud score and combine it with the image mask. var mask = scored.select(['cloud']).lte(20); // Apply the mask to the image and display the result. var masked = cloudy_scene.updateMask(mask); Map.addLayer(masked, {bands: ['B4', 'B3', 'B2'], max: 0.4}, 'masked');
import ee import geemap.core as geemap
Colab (Python)
# Load a cloudy Landsat scene and display it. cloudy_scene = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140926') m = geemap.Map() m.center_object(cloudy_scene) m.add_layer( cloudy_scene, {'bands': ['B4', 'B3', 'B2'], 'max': 0.4}, 'TOA', False ) # Add a cloud score band. It is automatically called 'cloud'. scored = ee.Algorithms.Landsat.simpleCloudScore(cloudy_scene) # Create a mask from the cloud score and combine it with the image mask. mask = scored.select(['cloud']).lte(20) # Apply the mask to the image and display the result. masked = cloudy_scene.updateMask(mask) m.add_layer(masked, {'bands': ['B4', 'B3', 'B2'], 'max': 0.4}, 'masked') m
Si vous exécutez cet exemple dans l'éditeur de code, essayez d'activer/de désactiver la visibilité des calques TOA pour comparer les images masquées et non masquées. (Pour savoir comment procéder, consultez la section Gestionnaire de calques de la documentation de l'éditeur de code.) Notez que l'entrée de simpleCloudScore()
est une seule scène TOA Landsat. Notez également que simpleCloudScore()
ajoute une bande appelée 'cloud'
à l'image d'entrée. La bande nuageuse contient l'indice nuageux compris entre 0 (pas de nuage) et 100 (nuage le plus dense). L'exemple précédent utilise un seuil arbitraire (20) sur le score de nuage pour masquer les pixels nuageux. Pour appliquer cet algorithme à une mosaïque Earth Engine de scènes Landsat, définissez la propriété SENSOR_ID
:
Éditeur de code (JavaScript)
// Load a Landsat 8 TOA collection, make 15-day mosaic, set SENSOR_ID property. var mosaic = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA') .filterDate('2019-06-01', '2019-06-16').mosaic() .set('SENSOR_ID', 'OLI_TIRS'); // Cloud score the mosaic and display the result. var scored_mosaic = ee.Algorithms.Landsat.simpleCloudScore(mosaic); Map.addLayer(scored_mosaic, {bands: ['B4', 'B3', 'B2'], max: 0.4}, 'TOA mosaic');
import ee import geemap.core as geemap
Colab (Python)
# Load a Landsat 8 TOA collection, make 15-day mosaic, set SENSOR_ID property. mosaic = ( ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA') .filterDate('2019-06-01', '2019-06-16') .mosaic() .set('SENSOR_ID', 'OLI_TIRS') ) # Cloud score the mosaic and display the result. scored_mosaic = ee.Algorithms.Landsat.simpleCloudScore(mosaic) m = geemap.Map() m.add_layer( scored_mosaic, {'bands': ['B4', 'B3', 'B2'], 'max': 0.4}, 'TOA mosaic', ) m
SENSOR_ID
est une propriété des images individuelles. Lorsque Earth Engine crée une mosaïque de nombreuses images, il doit supprimer les métadonnées de chaque image, y compris la propriété SENSOR_ID
. Pour évaluer la couverture nuageuse d'une mosaïque, Earth Engine recherche cette propriété et ne la trouve pas, ce qui entraîne une erreur. Définissez la propriété manuellement pour éviter cela. Les ID des capteurs de Landsat 5, 7 et 8(9) sont respectivement "TM", "ETM" et "OLI_TIRS".
Composite simple
Pour créer des composites Landsat simples sans nuages, Earth Engine fournit la méthode ee.Algorithms.Landsat.simpleComposite()
. Cette méthode sélectionne un sous-ensemble de scènes à chaque emplacement, convertit en réflectance TOA, applique le score de nuage simple et prend la médiane des pixels les moins nuageux. Cet exemple crée un composite simple à l'aide de paramètres par défaut et le compare à un composite à l'aide de paramètres personnalisés pour le seuil de score dans le cloud et le percentile:
Éditeur de code (JavaScript)
// Load a raw Landsat 5 ImageCollection for a single year. var collection = ee.ImageCollection('LANDSAT/LT05/C02/T1') .filterDate('2010-01-01', '2010-12-31'); // Create a cloud-free composite with default parameters. var composite = ee.Algorithms.Landsat.simpleComposite(collection); // Create a cloud-free composite with custom parameters for // cloud score threshold and percentile. var customComposite = ee.Algorithms.Landsat.simpleComposite({ collection: collection, percentile: 75, cloudScoreRange: 5 }); // Display the composites. Map.setCenter(-122.3578, 37.7726, 10); Map.addLayer(composite, {bands: ['B4', 'B3', 'B2'], max: 128}, 'TOA composite'); Map.addLayer(customComposite, {bands: ['B4', 'B3', 'B2'], max: 128}, 'Custom TOA composite');
import ee import geemap.core as geemap
Colab (Python)
# Load a raw Landsat 5 ImageCollection for a single year. collection = ee.ImageCollection('LANDSAT/LT05/C02/T1').filterDate( '2010-01-01', '2010-12-31' ) # Create a cloud-free composite with default parameters. composite = ee.Algorithms.Landsat.simpleComposite(collection) # Create a cloud-free composite with custom parameters for # cloud score threshold and percentile. custom_composite = ee.Algorithms.Landsat.simpleComposite( collection=collection, percentile=75, cloudScoreRange=5 ) # Display the composites. m = geemap.Map() m.set_center(-122.3578, 37.7726, 10) m.add_layer( composite, {'bands': ['B4', 'B3', 'B2'], 'max': 128}, 'TOA composite' ) m.add_layer( custom_composite, {'bands': ['B4', 'B3', 'B2'], 'max': 128}, 'Custom TOA composite', ) m
Notez que l'entrée de la composition simple est une collection d'images brutes. Notez également que, par défaut, la sortie de la bande réfléchissante est une réflectance à 8 bits et la sortie de la bande thermique est Kelvin moins 100, pour s'adapter à la plage de 8 bits. Vous pouvez modifier ce comportement en définissant le paramètre asFloat
sur "true" pour obtenir une sortie de type float non mise à l'échelle et non décalée.