Estrutura da coleção do Landsat
O USGS produz dados em três níveis (categorias) para cada satélite:
- Nível 1 (T1): dados que atendem aos requisitos de qualidade geométrica e radiométrica
- Nível 2 (T2): dados que não atendem aos requisitos do nível 1
- Tempo real (RT): dados que ainda não foram avaliados (leva até um mês).
Consulte a documentação do USGS sobre os níveis da coletânea 2 para mais informações.
Para permitir o acesso aos dados T1 validados e aos dados mais recentes em tempo real, agrupamos as cenas em coleções por nível e satélite. Confira alguns exemplos para o Landsat 8:
ID | Descrição |
---|---|
LANDSAT/LC08/C02/T1_RT | Landsat 8, Coleção 2, Nível 1 + Tempo real |
LANDSAT/LC08/C02/T1 | Landsat 8, Coleção 2, somente nível 1 |
LANDSAT/LC08/C02/T2 | Landsat 8, Coleção 2, nível 2 |
As cenas recém-adquiridas são adicionadas à coleção T1_RT diariamente. Quando uma cena de RT é reprocessada e categorizada como T1 ou T2, ela é removida da coleção T1_RT e a nova versão é adicionada às coleções adequadas. Se o seu trabalho for sensível a remoções ou cenas possivelmente registradas incorretamente, talvez seja melhor usar a coleção T1, mas, em geral, é muito raro que qualquer registro incorreto seja grande o suficiente para ser notado em cenas recém-adquiridas.
Cada uma das coleções anteriores contém os dados brutos (ou seja, o brilho no sensor dimensionado). Além disso, para cada coleção que contém imagens T1 ou T2, são oferecidos produtos de TOA (reflexão da atmosfera superior), SR (reflexão da superfície) e LST (temperatura da superfície terrestre). A tabela a seguir descreve o ID de coleta para as coleções TOA e SR/LST usando os dados do Landsat 8 como exemplo.
ID | Descrição |
---|---|
LANDSAT/LC08/C02/T1_RT_TOA | Landsat 8, Coleção 2, Nível 1 + Tempo real, TOA |
LANDSAT/LC08/C02/T1_TOA | Landsat 8, Coleção 2, apenas nível 1, TOA |
LANDSAT/LC08/C02/T1_L2 | Landsat 8, Coleção 2, apenas nível 1, SR e LST |
LANDSAT/LC08/C02/T2_TOA | Landsat 8, Coleção 2, somente nível 2, TOA |
Esses dados existem para os satélites Landsat 4, 5, 7, 8 e 9. Substitua "LC08" nas definições de coleção anteriores por IDs da tabela a seguir para recuperar coleções dos vários satélites.
ID | Descrição |
---|---|
LT04 | Landsat 4, Mapper temático (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) |
Status da coleta do Landsat
Pré-Coleção 1: não é mais produzida nem distribuída pelo USGS, não é compatível com o Earth Engine e será removida do Catálogo de dados em 2024.
Coleção 1: não é mais produzida nem distribuída pelo USGS, não é compatível com o Earth Engine e será removida do Data Catalog em 2024. Use o guia de migração para atualizar os scripts, módulos e apps do Earth Engine para a Coleção 2 até 1º de julho de 2024 e evitar falhas nas solicitações.
Coleção 2: coleção atual produzida pelo USGS. Disponibilidade total no Catálogo de dados do Earth Engine.
Métodos de processamento do Landsat
O Earth Engine contém vários métodos de processamento específicos do Landsat. Especificamente, há métodos para calcular a radiância no sensor, a refletância da atmosfera superior (TOA, na sigla em inglês), a refletância da superfície (SR, na sigla em inglês), a pontuação de nuvens e os compostos sem nuvens.
Brilho no sensor e refletância TOA
As cenas "brutas" no Earth Engine contêm imagens com números digitais (DNs) que representam radiância dimensionada. A conversão de DNs para radiância no sensor é uma transformação linear que usa coeficientes armazenados nos metadados da cena (Chander et al. 2009). O método ee.Algorithms.Landsat.calibratedRadiance()
realiza essa conversão. A conversão para reflectância (ou no sensor) de TOA é uma transformação linear que considera a elevação solar e a distância variável sazonal entre a Terra e o Sol. A conversão de TOA é processada pelo método ee.Algorithms.Landsat.TOA()
. O método TOA converte as faixas térmicas em temperatura de brilho. Consulte
Chander et
al. (2009) (ou este
site do USGS para o Landsat 8) para mais informações sobre como calcular a refletância da TOA ou
a temperatura de brilho. O exemplo a seguir mostra a conversão de dados brutos para
radiância e refletância TOA de uma imagem Landsat 8:
// 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
# 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
Reflexão da superfície
Os dados de refletância de superfície (SR) do Landsat estão disponíveis no Earth Engine como uma cópia do arquivo da Coletânea 2, Nível 2 do USGS. Os dados SR do Landsat 4, 5 e 7 são gerados usando o algoritmo LEDAPS, enquanto os dados SR do Landsat 8 e 9 são gerados usando o algoritmo LaSRC. Saiba mais sobre esses algoritmos e as diferenças deles em relação ao USGS.
É possível acessar uma imagem do Landsat 8, nível 2, da Coleção 2 do USGS assim:
var srImage = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20201028');
import ee import geemap.core as geemap
sr_image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20201028')
Os conjuntos de dados de refletância de superfície da Coleção 2 do Landsat 4 a 9 são:
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
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')
Pontuação simples da nuvem
Para classificar os pixels do Landsat pela nebulosidade relativa, o Earth Engine fornece um algoritmo rudimentar de classificação de nuvens no método ee.Algorithms.Landsat.simpleCloudScore()
. Para saber mais sobre a
implementação, consulte
este
script de exemplo do editor de código. O exemplo a seguir usa o algoritmo de pontuação de nuvens para mascarar nuvens em uma imagem Landsat 8:
// 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
# 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
Se você executar esse exemplo no editor de código, tente alternar a visibilidade das camadas de TOA
para comparar a diferença entre as imagens mascaradas e não mascaradas. Consulte a seção Layer Manager (em inglês) dos documentos do editor de código para instruções sobre como fazer isso. A entrada para simpleCloudScore()
é uma única cena TOA do Landsat. Além disso, simpleCloudScore()
adiciona uma
banda chamada 'cloud'
à imagem de entrada. A faixa de nuvens contém a pontuação de nuvens de 0 (sem nuvens) a 100 (muitas nuvens). O exemplo anterior usa um
limite arbitrário (20) na pontuação de nuvens para mascarar pixels nublados. Para aplicar esse algoritmo a um mosaico do Earth Engine de cenas do Landsat, defina a propriedade SENSOR_ID
:
// 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
# 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
é uma propriedade de imagens individuais. Quando o Earth Engine cria um mosaico de muitas imagens, ele precisa descartar os metadados de cada imagem, incluindo a propriedade SENSOR_ID
. Para atribuir uma pontuação de nuvem a um mosaico, o Earth Engine procura essa propriedade, mas não a encontra, o que resulta em um erro. Defina a propriedade manualmente para evitar
isso. Os IDs dos sensores do Landsat 5, 7 e 8(9) são "TM", "ETM" e "OLI_TIRS", respectivamente.
Composto simples
Para criar composições simples do Landsat sem nuvens, o Earth Engine oferece o método ee.Algorithms.Landsat.simpleComposite()
. Esse método seleciona um subconjunto de cenas em cada local, converte para refletância TOA, aplica a pontuação simples de nuvens e considera a mediana dos pixels menos nublados. Este exemplo cria um composto simples usando parâmetros padrão e o compara a um composto usando parâmetros personalizados para o limite de pontuação da nuvem e o percentil:
// 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
# 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
A entrada para a composição simples é uma coleção de imagens brutas. Além disso,
por padrão, a saída da banda reflexiva é a refletância dimensionada para 8 bits, e a saída da banda térmica
é Kelvin menos 100, para caber no intervalo de 8 bits. É possível mudar esse comportamento
definindo o parâmetro asFloat
como verdadeiro para receber uma saída
de ponto flutuante sem escala e sem deslocamento.