Структура коллекции Landsat
Геологическая служба США предоставляет данные по 3 уровням (категориям) для каждого спутника:
- Уровень 1 (T1) — данные, соответствующие требованиям геометрического и радиометрического качества.
- Уровень 2 (T2) — данные, не соответствующие требованиям уровня 1.
- Реальное время (RT) — данные, которые еще не были оценены (на это уходит около месяца).
Дополнительную информацию см. в документации USGS по уровням сбора 2.
Чтобы обеспечить доступ как к проверенным данным T1, так и к новейшим данным в реальном времени, мы сгруппировали сцены в коллекции по уровням и спутникам. Примеры для Landsat 8 следующие:
ИДЕНТИФИКАТОР | Описание |
---|---|
LANDSAT/LC08/C02/T1_RT | Landsat 8, Коллекция 2, Уровень 1 + Реальное время |
ЛЭНДСАТ/LC08/C02/T1 | Landsat 8, Коллекция 2, только уровень 1 |
ЛЭНДСАТ/LC08/C02/T2 | Landsat 8, Коллекция 2, только уровень 2 |
Новые сцены добавляются в коллекцию T1_RT ежедневно. Как только сцена RT будет повторно обработана и отнесена к категории T1 или T2, она будет удалена из коллекции T1_RT, а новая версия будет добавлена в соответствующую коллекцию(и). Если ваша работа чувствительна к удалениям или потенциально неправильной регистрации сцен, возможно, вы захотите придерживаться коллекции T1, но в целом очень редко случается, что какая-либо неправильная регистрация настолько велика, что ее можно заметить во вновь приобретенных сценах.
Каждая из предыдущих коллекций содержит необработанные данные (т. е. масштабированное излучение на датчике). Кроме того, для каждой коллекции, содержащей изображения T1 или T2, предлагаются продукты TOA (отражательная способность верхней части атмосферы), SR (отражательная способность поверхности) и LST (температура поверхности суши). В следующей таблице описаны идентификаторы коллекций TOA и SR/LST на примере данных Landsat 8.
ИДЕНТИФИКАТОР | Описание |
---|---|
LANDSAT/LC08/C02/T1_RT_TOA | Landsat 8, Коллекция 2, Уровень 1 + Реальное время, TOA |
LANDSAT/LC08/C02/T1_TOA | Landsat 8, Коллекция 2, только уровень 1, TOA |
ЛЭНДСАТ/LC08/C02/T1_L2 | Landsat 8, Коллекция 2, только уровень 1, SR и LST |
LANDSAT/LC08/C02/T2_TOA | Landsat 8, Коллекция 2, только уровень 2, TOA |
Эти данные существуют для Landsat 4, 5, 7, 8 и 9. Замените «LC08» в предыдущих определениях коллекций на идентификаторы из следующей таблицы, чтобы получить коллекции для различных спутников.
ИДЕНТИФИКАТОР | Описание |
---|---|
ЛТ04 | Landsat 4, Тематический картограф (TM) |
ЛТ05 | Landsat 5, Тематический картограф (TM) |
ЛЕ07 | Landsat 7, Enhanced Thematic Mapper Plus (ETM+) |
LC08 | Landsat 8, оперативный наземный имиджер (OLI) |
LC09 | Landsat 9, Оперативный Land Imager 2 (OLI-2) |
Статус сбора данных Landsat
Предварительная коллекция 1 : больше не производится и не распространяется Геологической службой США, не поддерживается Earth Engine и будет удалена из каталога данных в 2024 году.
Коллекция 1 : больше не производится и не распространяется Геологической службой США, не поддерживается Earth Engine и будет удалена из каталога данных в 2024 году. Используйте руководство по переходу , чтобы обновить сценарии, модули и приложения Earth Engine до Коллекции 2 к 1 июля 2024 года, чтобы избежать неудачных запросов.
Коллекция 2 : текущая коллекция, созданная Геологической службой США. Полная доступность в каталоге данных Earth Engine .
Методы обработки Landsat
Earth Engine содержит множество методов обработки, специфичных для Landsat. В частности, существуют методы расчета яркости на датчике, отражательной способности верхней части атмосферы (TOA), поверхностного отражения (SR), оценки облачности и безоблачных композитов.
Излучение на датчике и коэффициент отражения TOA
«Необработанные» сцены в Earth Engine содержат изображения с цифровыми числами (DN), которые представляют масштабированное излучение . Преобразование DN в яркость датчика представляет собой линейное преобразование с использованием коэффициентов, хранящихся в метаданных сцены ( Чандер и др., 2009 ). Это преобразование выполняет метод ee.Algorithms.Landsat.calibratedRadiance()
. Преобразование в коэффициент отражения TOA (или на датчике) представляет собой линейное преобразование, которое учитывает высоту Солнца и сезонно изменяющееся расстояние между Землей и Солнцем. Преобразование TOA выполняется методом ee.Algorithms.Landsat.TOA()
. Метод TOA преобразует тепловые полосы в яркостную температуру. См. Чандер и др. (2009) (или этот сайт Геологической службы США для Landsat 8) для получения дополнительной информации о вычислении коэффициента отражения TOA или яркостной температуры. В следующем примере показано преобразование необработанных данных в яркость и коэффициент отражения TOA для изображения Landsat 8:
Редактор кода (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
Колаб (Питон)
# 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
Отражательная способность поверхности
Данные об отражательной способности поверхности (SR) Landsat доступны в Earth Engine в виде копии архива USGS Collection 2, Level 2. Обратите внимание, что данные Landsat 4, 5 и 7 SR генерируются с использованием алгоритма LEDAPS, а данные Landsat 8 и 9 SR генерируются с использованием алгоритма LaSRC. Узнайте об этих алгоритмах и их отличиях от USGS .
Вы можете получить доступ к изображению Landsat 8 USGS Collection 2, Level 2 следующим образом:
Редактор кода (JavaScript)
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')
Наборы данных по отражению поверхности для коллекции 2 Landsat с 4 по 9:
Редактор кода (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
Колаб (Питон)
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')
Простая облачная оценка
Для оценки пикселей Landsat по их относительной облачности Earth Engine предоставляет элементарный алгоритм оценки облаков в методе ee.Algorithms.Landsat.simpleCloudScore()
. (Подробные сведения о реализации см. в этом примере сценария редактора кода ). В следующем примере используется алгоритм оценки облаков для маскировки облаков на изображении Landsat 8:
Редактор кода (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
Колаб (Питон)
# 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
Если вы запустите этот пример в редакторе кода, попробуйте переключить видимость слоев TOA, чтобы сравнить разницу между замаскированными и немаскированными изображениями. (Инструкции о том, как это сделать, см. в разделе «Диспетчер слоев» в документации по редактору кода). Обратите внимание, что входные данные для simpleCloudScore()
представляют собой одну сцену TOA Landsat. Также обратите внимание, что simpleCloudScore()
добавляет полосу под названием 'cloud'
к входному изображению. Полоса облаков содержит оценку облачности от 0 (без облачности) до 100 (максимальная облачность). В предыдущем примере используется произвольный порог (20) для оценки облачности для маскировки облачных пикселей. Чтобы применить этот алгоритм к мозаике Earth Engine сцен Landsat, установите свойство SENSOR_ID
:
Редактор кода (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
Колаб (Питон)
# 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
— это свойство отдельных изображений. Когда Earth Engine создает мозаику из множества изображений, ему приходится выбрасывать отдельные метаданные изображения, включая свойство SENSOR_ID
. Чтобы оценить мозаику по облаку, Earth Engine ищет это свойство и не может его найти, что приводит к ошибке. Чтобы избежать этого, установите свойство вручную. Идентификаторы датчиков Landsat 5, 7 и 8(9) — «TM», «ETM» и «OLI_TIRS» соответственно.
Простой композит
Для создания простых безоблачных композитов Landsat Earth Engine предоставляет метод ee.Algorithms.Landsat.simpleComposite()
. Этот метод выбирает подмножество сцен в каждом месте, преобразует его в коэффициент отражения TOA, применяет простую оценку облаков и берет медиану наименее облачных пикселей. В этом примере создается простой составной элемент с использованием параметров по умолчанию и сравнивается с составным элементом с использованием пользовательских параметров для порогового значения оценки облака и процентиля:
Редактор кода (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
Колаб (Питон)
# 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
Обратите внимание, что входными данными для простой композиции является набор необработанных изображений. Также обратите внимание, что по умолчанию выходной сигнал отражающей полосы представляет собой коэффициент отражения, масштабированный до 8 бит, а выходной сигнал тепловой полосы равен Кельвину минус 100, чтобы соответствовать 8-битному диапазону. Вы можете изменить это поведение, установив для параметра asFloat
значение true, чтобы получить немасштабированный и несмещенный вывод с плавающей запятой.