Объявление : Все некоммерческие проекты, зарегистрированные для использования Earth Engine до
15 апреля 2025 года, должны
подтвердить некоммерческое право на сохранение доступа к Earth Engine.
Алгоритмы Sentinel-1
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Sentinel-1 — космическая миссия, финансируемая Европейским Союзом и осуществляемая Европейским космическим агентством (ЕКА) в рамках программы «Коперник». Sentinel-1 собирает изображения радара с синтезированной апертурой (SAR) C-диапазона с различными поляризациями и разрешениями. Поскольку радиолокационные данные требуют нескольких специализированных алгоритмов для получения калиброванных ортотрансформированных изображений, в этом документе описывается предварительная обработка данных Sentinel-1 в Earth Engine.
Данные Sentinel-1 собираются с помощью нескольких различных конфигураций приборов, разрешений и комбинаций диапазонов как на восходящей, так и на нисходящей орбите. Из-за этой неоднородности перед началом обработки обычно необходимо отфильтровать данные до однородного подмножества. Этот процесс описан ниже в разделе «Метаданные и фильтрация» .
Чтобы создать однородное подмножество данных Sentinel-1, обычно необходимо отфильтровать коллекцию с использованием свойств метаданных. Общие поля метаданных, используемые для фильтрации, включают следующие свойства:
-
transmitterReceiverPolarisation
: ['VV'], ['HH'], ['VV', 'VH'] или ['HH', 'HV'] -
instrumentMode
: «IW» (интерферометрическая широкая полоса обзора), «EW» (сверхширокая полоса обзора) или «SM» (полосовая карта). Подробнее см. в этой ссылке . -
orbitProperties_pass
: «ВОСХОДЯЩИЙ» или «ВНИЗУЮЩИЙ» -
resolution_meters
: 10, 25 или 40 -
resolution
: «M» (среднее) или «H» (высокое). Подробнее см. в этой ссылке .
Следующий код фильтрует коллекцию Sentinel-1 по свойствам transmitterReceiverPolarisation
, instrumentMode
и orbitProperties_pass
, а затем вычисляет составные значения для нескольких комбинаций наблюдений, которые отображаются на карте, чтобы продемонстрировать, как эти характеристики влияют на данные.
Редактор кода (JavaScript)
// Load the Sentinel-1 ImageCollection, filter to Jun-Sep 2020 observations.
var sentinel1 = ee.ImageCollection('COPERNICUS/S1_GRD')
.filterDate('2020-06-01', '2020-10-01');
// Filter the Sentinel-1 collection by metadata properties.
var vvVhIw = sentinel1
// Filter to get images with VV and VH dual polarization.
.filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
.filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
// Filter to get images collected in interferometric wide swath mode.
.filter(ee.Filter.eq('instrumentMode', 'IW'));
// Separate ascending and descending orbit images into distinct collections.
var vvVhIwAsc = vvVhIw.filter(
ee.Filter.eq('orbitProperties_pass', 'ASCENDING'));
var vvVhIwDesc = vvVhIw.filter(
ee.Filter.eq('orbitProperties_pass', 'DESCENDING'));
// Calculate temporal means for various observations to use for visualization.
// Mean VH ascending.
var vhIwAscMean = vvVhIwAsc.select('VH').mean();
// Mean VH descending.
var vhIwDescMean = vvVhIwDesc.select('VH').mean();
// Mean VV for combined ascending and descending image collections.
var vvIwAscDescMean = vvVhIwAsc.merge(vvVhIwDesc).select('VV').mean();
// Mean VH for combined ascending and descending image collections.
var vhIwAscDescMean = vvVhIwAsc.merge(vvVhIwDesc).select('VH').mean();
// Display the temporal means for various observations, compare them.
Map.addLayer(vvIwAscDescMean, {min: -12, max: -4}, 'vvIwAscDescMean');
Map.addLayer(vhIwAscDescMean, {min: -18, max: -10}, 'vhIwAscDescMean');
Map.addLayer(vhIwAscMean, {min: -18, max: -10}, 'vhIwAscMean');
Map.addLayer(vhIwDescMean, {min: -18, max: -10}, 'vhIwDescMean');
Map.setCenter(-73.8719, 4.512, 9); // Bogota, Colombia
Настройка Python
См. страницу «Среда Python» для получения информации об API Python и использовании geemap
для интерактивной разработки.
import ee
import geemap.core as geemap
Колаб (Питон)
# Load the Sentinel-1 ImageCollection, filter to Jun-Sep 2020 observations.
sentinel_1 = ee.ImageCollection('COPERNICUS/S1_GRD').filterDate(
'2020-06-01', '2020-10-01'
)
# Filter the Sentinel-1 collection by metadata properties.
vv_vh_iw = (
sentinel_1.filter(
# Filter to get images with VV and VH dual polarization.
ee.Filter.listContains('transmitterReceiverPolarisation', 'VV')
)
.filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
.filter(
# Filter to get images collected in interferometric wide swath mode.
ee.Filter.eq('instrumentMode', 'IW')
)
)
# Separate ascending and descending orbit images into distinct collections.
vv_vh_iw_asc = vv_vh_iw.filter(
ee.Filter.eq('orbitProperties_pass', 'ASCENDING')
)
vv_vh_iw_desc = vv_vh_iw.filter(
ee.Filter.eq('orbitProperties_pass', 'DESCENDING')
)
# Calculate temporal means for various observations to use for visualization.
# Mean VH ascending.
vh_iw_asc_mean = vv_vh_iw_asc.select('VH').mean()
# Mean VH descending.
vh_iw_desc_mean = vv_vh_iw_desc.select('VH').mean()
# Mean VV for combined ascending and descending image collections.
vv_iw_asc_desc_mean = vv_vh_iw_asc.merge(vv_vh_iw_desc).select('VV').mean()
# Mean VH for combined ascending and descending image collections.
vh_iw_asc_desc_mean = vv_vh_iw_asc.merge(vv_vh_iw_desc).select('VH').mean()
# Display the temporal means for various observations, compare them.
m = geemap.Map()
m.add_layer(vv_iw_asc_desc_mean, {'min': -12, 'max': -4}, 'vv_iw_asc_desc_mean')
m.add_layer(
vh_iw_asc_desc_mean, {'min': -18, 'max': -10}, 'vh_iw_asc_desc_mean'
)
m.add_layer(vh_iw_asc_mean, {'min': -18, 'max': -10}, 'vh_iw_asc_mean')
m.add_layer(vh_iw_desc_mean, {'min': -18, 'max': -10}, 'vh_iw_desc_mean')
m.set_center(-73.8719, 4.512, 9) # Bogota, Colombia
m
Предварительная обработка Sentinel-1
Изображения в Earth Engine 'COPERNICUS/S1_GRD'
ImageCollection
Sentinel-1 состоит из сцен уровня 1 с обнаружением расстояния до земли (GRD), обработанных с учетом коэффициента обратного рассеяния (σ°) в децибелах (дБ). Коэффициент обратного рассеяния представляет собой целевую площадь обратного рассеяния (поперечное сечение радара) на единицу площади земли. Поскольку оно может изменяться на несколько порядков, оно преобразуется в дБ как 10*log 10 σ°. Он измеряет, рассеивает ли излучаемая местность падающее микроволновое излучение преимущественно в сторону от датчика SAR (дБ < 0) или в сторону датчика SAR (дБ > 0). Такое поведение рассеяния зависит от физических характеристик местности, прежде всего от геометрии элементов местности и их электромагнитных характеристик.
Earth Engine использует следующие шаги предварительной обработки (реализованные Sentinel-1 Toolbox ) для получения коэффициента обратного рассеяния в каждом пикселе:
- Применить файл орбиты
- Обновляет метаданные орбиты с помощью восстановленного файла орбиты (или файла точной орбиты, если восстановленный файл недоступен).
- Удаление шума границ GRD
- Удаляет шум низкой интенсивности и неверные данные по краям сцены. (По состоянию на 12 января 2018 г.)
- Удаление теплового шума
- Удаляет аддитивный шум в дополнительных полосах, чтобы помочь уменьшить разрывы между дополнительными полосами для сцен в режимах съемки с несколькими полосами. (Эту операцию нельзя применить к изображениям, созданным до июля 2015 г.)
- Применение значений радиометрической калибровки
- Вычисляет интенсивность обратного рассеяния, используя параметры калибровки датчика в метаданных GRD.
- Коррекция рельефа (орторектификация)
- Преобразует данные из геометрии наземного диапазона, которая не учитывает рельеф местности, в σ° с использованием SRTM 30-метровой матрицы высот или ASTER DEM для высоких широт (больше 60° или меньше -60°).
Примечания к набору данных
- Радиометрическое выравнивание ландшафта не применяется из-за артефактов на горных склонах.
- Безразмерный коэффициент обратного рассеяния преобразуется в дБ, как описано выше.
- Данные SLC Sentinel-1 в настоящее время не могут быть приняты, поскольку Earth Engine не поддерживает изображения со сложными значениями из-за невозможности усреднить их во время построения пирамид без потери информации о фазе.
- Ресурсы GRD SM не принимаются, поскольку функция
computeNoiseScalingFactor()
в операции удаления граничного шума в наборе инструментов S1 не поддерживает режим SM.
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-25 UTC.
[null,null,["Последнее обновление: 2025-07-25 UTC."],[[["\u003cp\u003eSentinel-1, part of the Copernicus Programme, provides C-band SAR data for various applications.\u003c/p\u003e\n"],["\u003cp\u003ePre-processing of Sentinel-1 data in Earth Engine involves filtering by metadata and applying specific algorithms.\u003c/p\u003e\n"],["\u003cp\u003eMetadata filtering is crucial for creating a homogeneous subset of data based on polarization, instrument mode, and orbit properties.\u003c/p\u003e\n"],["\u003cp\u003eEarth Engine automatically applies preprocessing steps including orbit file application, noise removal, radiometric calibration, and terrain correction to Sentinel-1 GRD data.\u003c/p\u003e\n"],["\u003cp\u003eThe data represents backscatter coefficient (σ°) in decibels (dB) and undergoes several processing steps to derive this value.\u003c/p\u003e\n"]]],["Sentinel-1 data, collected by the European Space Agency, is pre-processed in Earth Engine to obtain calibrated imagery. Key actions include filtering the heterogeneous data using metadata properties like `transmitterReceiverPolarisation`, `instrumentMode`, `orbitProperties_pass`, `resolution_meters`, and `resolution`. This is demonstrated in code examples using JavaScript and Python, calculating temporal means for visualization. Preprocessing steps involve applying orbit files, removing noise, radiometric calibration, and terrain correction to derive the backscatter coefficient in decibels (dB).\n"],null,["# Sentinel-1 Algorithms\n\n[Sentinel-1](https://earth.esa.int/web/sentinel/missions/sentinel-1) is a\nspace mission funded by the European Union and carried out by the European Space Agency\n(ESA) within the Copernicus Programme. Sentinel-1 collects C-band synthetic aperture\nradar (SAR) imagery at a variety of polarizations and resolutions. Since radar data\nrequires several specialized algorithms to obtain calibrated, orthorectified imagery,\nthis document describes pre-processing of Sentinel-1 data in Earth Engine.\n\nSentinel-1 data is collected with several different instrument configurations,\nresolutions, band combinations during both ascending and descending orbits. Because\nof this heterogeneity, it's usually necessary to filter the data down to a\nhomogeneous subset before starting processing. This process is outlined below in the\n[Metadata and Filtering](/earth-engine/guides/sentinel1#metadata-and-filtering) section.\n\nMetadata and Filtering\n----------------------\n\nTo create a homogeneous subset of Sentinel-1 data, it will usually be necessary to\nfilter the collection using metadata properties. The common metadata fields used for\nfiltering include these properties:\n\n1. `transmitterReceiverPolarisation`: \\['VV'\\], \\['HH'\\], \\['VV', 'VH'\\], or \\['HH', 'HV'\\]\n2. `instrumentMode`: 'IW' (Interferometric Wide Swath), 'EW' (Extra Wide Swath) or 'SM' (Strip Map). See [this\n reference](https://sentinel.esa.int/web/sentinel/user-guides/sentinel-1-sar/acquisition-modes) for details.\n3. `orbitProperties_pass`: 'ASCENDING' or 'DESCENDING'\n4. `resolution_meters`: 10, 25 or 40\n5. `resolution`: 'M' (medium) or 'H' (high). See [this\n reference](https://sentinel.esa.int/web/sentinel/user-guides/sentinel-1-sar/resolutions/level-1-ground-range-detected) for details.\n\nThe following code filters the Sentinel-1 collection by\n`transmitterReceiverPolarisation`, `instrumentMode`, and\n`orbitProperties_pass` properties, then calculates composites for several\nobservation combinations that are displayed in the map to demonstrate how these\ncharacteristics affect the data.\n\n### Code Editor (JavaScript)\n\n```javascript\n// Load the Sentinel-1 ImageCollection, filter to Jun-Sep 2020 observations.\nvar sentinel1 = ee.ImageCollection('COPERNICUS/S1_GRD')\n .filterDate('2020-06-01', '2020-10-01');\n\n// Filter the Sentinel-1 collection by metadata properties.\nvar vvVhIw = sentinel1\n // Filter to get images with VV and VH dual polarization.\n .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))\n .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))\n // Filter to get images collected in interferometric wide swath mode.\n .filter(ee.Filter.eq('instrumentMode', 'IW'));\n\n// Separate ascending and descending orbit images into distinct collections.\nvar vvVhIwAsc = vvVhIw.filter(\n ee.Filter.eq('orbitProperties_pass', 'ASCENDING'));\nvar vvVhIwDesc = vvVhIw.filter(\n ee.Filter.eq('orbitProperties_pass', 'DESCENDING'));\n\n// Calculate temporal means for various observations to use for visualization.\n// Mean VH ascending.\nvar vhIwAscMean = vvVhIwAsc.select('VH').mean();\n// Mean VH descending.\nvar vhIwDescMean = vvVhIwDesc.select('VH').mean();\n// Mean VV for combined ascending and descending image collections.\nvar vvIwAscDescMean = vvVhIwAsc.merge(vvVhIwDesc).select('VV').mean();\n// Mean VH for combined ascending and descending image collections.\nvar vhIwAscDescMean = vvVhIwAsc.merge(vvVhIwDesc).select('VH').mean();\n\n// Display the temporal means for various observations, compare them.\nMap.addLayer(vvIwAscDescMean, {min: -12, max: -4}, 'vvIwAscDescMean');\nMap.addLayer(vhIwAscDescMean, {min: -18, max: -10}, 'vhIwAscDescMean');\nMap.addLayer(vhIwAscMean, {min: -18, max: -10}, 'vhIwAscMean');\nMap.addLayer(vhIwDescMean, {min: -18, max: -10}, 'vhIwDescMean');\nMap.setCenter(-73.8719, 4.512, 9); // Bogota, Colombia\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# Load the Sentinel-1 ImageCollection, filter to Jun-Sep 2020 observations.\nsentinel_1 = ee.ImageCollection('COPERNICUS/S1_GRD').filterDate(\n '2020-06-01', '2020-10-01'\n)\n\n# Filter the Sentinel-1 collection by metadata properties.\nvv_vh_iw = (\n sentinel_1.filter(\n # Filter to get images with VV and VH dual polarization.\n ee.Filter.listContains('transmitterReceiverPolarisation', 'VV')\n )\n .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))\n .filter(\n # Filter to get images collected in interferometric wide swath mode.\n ee.Filter.eq('instrumentMode', 'IW')\n )\n)\n\n# Separate ascending and descending orbit images into distinct collections.\nvv_vh_iw_asc = vv_vh_iw.filter(\n ee.Filter.eq('orbitProperties_pass', 'ASCENDING')\n)\nvv_vh_iw_desc = vv_vh_iw.filter(\n ee.Filter.eq('orbitProperties_pass', 'DESCENDING')\n)\n\n# Calculate temporal means for various observations to use for visualization.\n# Mean VH ascending.\nvh_iw_asc_mean = vv_vh_iw_asc.select('VH').mean()\n# Mean VH descending.\nvh_iw_desc_mean = vv_vh_iw_desc.select('VH').mean()\n# Mean VV for combined ascending and descending image collections.\nvv_iw_asc_desc_mean = vv_vh_iw_asc.merge(vv_vh_iw_desc).select('VV').mean()\n# Mean VH for combined ascending and descending image collections.\nvh_iw_asc_desc_mean = vv_vh_iw_asc.merge(vv_vh_iw_desc).select('VH').mean()\n\n# Display the temporal means for various observations, compare them.\nm = geemap.Map()\nm.add_layer(vv_iw_asc_desc_mean, {'min': -12, 'max': -4}, 'vv_iw_asc_desc_mean')\nm.add_layer(\n vh_iw_asc_desc_mean, {'min': -18, 'max': -10}, 'vh_iw_asc_desc_mean'\n)\nm.add_layer(vh_iw_asc_mean, {'min': -18, 'max': -10}, 'vh_iw_asc_mean')\nm.add_layer(vh_iw_desc_mean, {'min': -18, 'max': -10}, 'vh_iw_desc_mean')\nm.set_center(-73.8719, 4.512, 9) # Bogota, Colombia\nm\n```\n\nSentinel-1 Preprocessing\n------------------------\n\nImagery in the Earth Engine `'COPERNICUS/S1_GRD'` Sentinel-1\n`ImageCollection` is consists of Level-1 Ground Range Detected\n(GRD) scenes processed to backscatter coefficient (σ°) in\ndecibels (dB). The backscatter coefficient represents\ntarget backscattering area (radar cross-section) per unit ground area. Because it can\nvary by several orders of magnitude, it is converted to dB as\n10\\*log~10~σ°. It measures whether the radiated terrain scatters\nthe incident microwave radiation preferentially away from the SAR sensor\ndB \\\u003c 0) or towards the SAR sensor dB \\\u003e 0). This scattering behavior depends on the\nphysical characteristics of the terrain, primarily the geometry of the terrain elements\nand their electromagnetic characteristics.\n\nEarth Engine uses the following preprocessing steps (as implemented by the\n[Sentinel-1 Toolbox](https://sentinel.esa.int/web/sentinel/toolboxes/sentinel-1))\nto derive the backscatter coefficient in each pixel:\n\n1. **Apply orbit file**\n - Updates orbit metadata with a restituted [orbit file](https://sentinel.esa.int/web/sentinel/technical-guides/sentinel-1-sar/pod/products-requirements) (or a precise orbit file if the restituted one is not available).\n2. **GRD border noise removal**\n - Removes low intensity noise and invalid data on scene edges. (As of January 12, 2018)\n3. **Thermal noise removal**\n - Removes additive noise in sub-swaths to help reduce discontinuities between sub-swaths for scenes in multi-swath acquisition modes. (This operation cannot be applied to images produced before July 2015)\n4. **Application of radiometric calibration values**\n - Computes backscatter intensity using sensor calibration parameters in the GRD metadata.\n5. **Terrain correction** (orthorectification)\n - Converts data from ground range geometry, which does not take terrain into account, to σ° using the [SRTM 30 meter DEM](/earth-engine/datasets/catalog/USGS_SRTMGL1_003) or the [ASTER DEM](https://asterweb.jpl.nasa.gov/gdem.asp) for high latitudes (greater than 60° or less than -60°).\n\nDataset Notes\n-------------\n\n- Radiometric Terrain Flattening is not being applied due to artifacts on mountain slopes.\n- The unitless backscatter coefficient is converted to dB as described above.\n- Sentinel-1 SLC data cannot currently be ingested, as Earth Engine does not support images with complex values due to inability to average them during pyramiding without losing phase information.\n- GRD SM assets are not ingested because the `computeNoiseScalingFactor()` function in the [border noise removal operation in the S1 toolbox](https://github.com/senbox-org/s1tbx/blob/master/s1tbx-op-calibration/src/main/java/org/esa/s1tbx/calibration/gpf/RemoveGRDBorderNoiseOp.java) does not support the SM mode."]]