الگوریتم های Sentinel-1

Sentinel-1 یک ماموریت فضایی است که توسط اتحادیه اروپا تأمین مالی می شود و توسط آژانس فضایی اروپا (ESA) در برنامه کوپرنیک انجام می شود. Sentinel-1 تصاویر رادار دیافراگم مصنوعی (SAR) باند C را در قطبش‌ها و وضوح‌های مختلف جمع‌آوری می‌کند. از آنجایی که داده‌های رادار به چندین الگوریتم تخصصی برای به دست آوردن تصاویر کالیبره‌شده و اصلاح‌شده نیاز دارند، این سند پیش پردازش داده‌های Sentinel-1 را در Earth Engine شرح می‌دهد.

داده های Sentinel-1 با چندین پیکربندی ابزار مختلف، وضوح، ترکیب باند در طول هر دو مدار صعودی و نزولی جمع آوری می شود. به دلیل این ناهمگونی، معمولاً لازم است قبل از شروع پردازش، داده ها را به یک زیر مجموعه همگن فیلتر کنید. این فرآیند در زیر در بخش Metadata and Filtering توضیح داده شده است.

فراداده و فیلترینگ

برای ایجاد یک زیرمجموعه همگن از داده‌های Sentinel-1، معمولاً لازم است مجموعه با استفاده از ویژگی‌های ابرداده فیلتر شود. فیلدهای متادیتا رایجی که برای فیلتر کردن استفاده می‌شوند شامل این ویژگی‌ها هستند:

  1. transmitterReceiverPolarisation : ['VV']، ['HH']، ['VV'، 'VH']، یا ['HH'، 'HV']
  2. instrumentMode : 'IW' (تداخل سنجی پهن)، 'EW' (Extra Wide Swath) یا 'SM' (نقشه نواری). برای جزئیات بیشتر به این مرجع مراجعه کنید.
  3. orbitProperties_pass : 'ASCENDING' یا 'DESCENDING'
  4. resolution_meters : 10، 25 یا 40
  5. resolution : "M" (متوسط) یا "H" (بالا). برای جزئیات بیشتر به این مرجع مراجعه کنید.

کد زیر مجموعه Sentinel-1 را با ویژگی‌های transmitterReceiverPolarisation ، instrumentMode و orbitProperties_pass فیلتر می‌کند، سپس ترکیب‌های ترکیبی را برای چندین ترکیب مشاهده که در نقشه نمایش داده می‌شوند محاسبه می‌کند تا نشان دهد این ویژگی‌ها چگونه بر داده‌ها تأثیر می‌گذارند.

ویرایشگر کد (جاوا اسکریپت)

// 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

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از 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

تصاویر در موتور زمین 'COPERNICUS/S1_GRD' Sentinel-1 ImageCollection شامل صحنه‌های شناسایی شده با محدوده زمینی سطح 1 (GRD) است که به ضریب پراکندگی پس‌پاشی (σ°) بر حسب دسی‌بل (dB) پردازش شده‌اند. ضریب پراکندگی عقب نشان دهنده سطح پراکندگی عقب هدف (مقطع رادار) در واحد سطح زمین است. از آنجا که می تواند چندین مرتبه تغییر کند، به دسی بل به صورت 10*log 10 σ° تبدیل می شود. اندازه‌گیری می‌کند که آیا زمین تابشی، تشعشعات مایکروویو فرودی را ترجیحاً به دور از حسگر SAR dB <0) یا به سمت سنسور SAR dB > 0 پراکنده می‌کند. این رفتار پراکندگی به ویژگی های فیزیکی زمین، در درجه اول به هندسه عناصر زمین و ویژگی های الکترومغناطیسی آنها بستگی دارد.

Earth Engine از مراحل پیش‌پردازش زیر (همانطور که توسط Sentinel-1 Toolbox پیاده‌سازی شده است) برای استخراج ضریب پراکندگی برگشتی در هر پیکسل استفاده می‌کند:

  1. فایل مداری را اعمال کنید
    • ابرداده مدار را با یک فایل مداری بازیابی شده (یا یک فایل مداری دقیق در صورتی که فایل بازیابی شده در دسترس نباشد) به روز می کند.
  2. حذف نویز مرز GRD
    • نویز با شدت کم و داده های نامعتبر را از لبه های صحنه حذف می کند. (از 12 ژانویه 2018)
  3. حذف نویز حرارتی
    • برای کمک به کاهش ناپیوستگی بین قسمت‌های فرعی برای صحنه‌ها در حالت‌های اکتساب چند سویه، نویز افزودنی را حذف می‌کند. (این عملیات را نمی توان برای تصاویر تولید شده قبل از ژوئیه 2015 اعمال کرد)
  4. کاربرد مقادیر کالیبراسیون رادیومتریک
    • شدت پراکندگی برگشتی را با استفاده از پارامترهای کالیبراسیون حسگر در ابرداده GRD محاسبه می‌کند.
  5. تصحیح زمین (تصحیح)
    • با استفاده از SRTM 30 متر DEM یا ASTER DEM برای عرض های جغرافیایی بالا (بیشتر از 60 درجه یا کمتر از 60- درجه) داده ها را از هندسه محدوده زمین، که زمین را در نظر نمی گیرد، به σ° تبدیل می کند.

یادداشت های مجموعه داده

  • تسطیح رادیومتری زمین به دلیل آثار باستانی در دامنه کوه ها اعمال نمی شود.
  • همانطور که در بالا توضیح داده شد ضریب پراکندگی برگشتی بدون واحد به دسی بل تبدیل می شود.
  • داده‌های Sentinel-1 SLC در حال حاضر قابل دریافت نیستند، زیرا Earth Engine تصاویر با مقادیر پیچیده را به دلیل ناتوانی در میانگین‌گیری آنها در طول هرم بدون از دست دادن اطلاعات فاز، پشتیبانی نمی‌کند.
  • دارایی های GRD SM وارد نمی شوند زیرا تابع computeNoiseScalingFactor() در عملیات حذف نویز حاشیه در جعبه ابزار S1 از حالت SM پشتیبانی نمی کند.