Sentinel-2 MSI L2A
۲۰۱۵-اکنون
۱۰ متر
ماهوارهای
Sentinel-2 MSI L2A
معرفی
Sentinel-2 ماهوارهای از آژانس فضایی اروپا (ESA) است که تصاویر چندطیفی با وضوح بالا از سطح زمین ارائه میدهد. دادههای L2A پردازششده و آماده استفاده هستند.
ویژگیها
| ویژگی | مقدار |
|---|---|
| نام کامل | Sentinel-2 MSI L2A |
| سال شروع | ۲۰۱۵ |
| وضوح مکانی | ۱۰، ۲۰ و ۶۰ متر |
| عرض پوشش | ۲۹۰ کیلومتر |
| چرخه تکرار | ۵ روز |
| منبع داده | Microsoft Planetary Computer |
| هزینه | رایگان |
باندها
| باند | نام | وضوح (m) | طول موج (nm) | کاربرد |
|---|---|---|---|---|
| coastal | ساحلی | 60 | 443 | آب کمعمق |
| blue | آبی | 10 | 490 | تجزیه آب |
| green | سبز | 10 | 560 | پوشش گیاهی |
| red | قرمز | 10 | 665 | NDVI |
| rededge1 | رد-لبه 1 | 20 | 705 | پوشش گیاهی |
| rededge2 | رد-لبه 2 | 20 | 740 | پوشش گیاهی |
| rededge3 | رد-لبه 3 | 20 | 783 | پوشش گیاهی |
| nir | مادون قرمز نزدیک | 10 | 842 | NDVI |
| nir08 | مادون قرمز نزدیک | 20 | 865 | NDVI |
| nir09 | مادون قرمز باریک | 20 | 945 | رطوبت |
| swir16 | مادون قرمز کوتاه 1 | 20 | 1610 | رطوبت خاک |
| swir22 | مادون قرمز کوتاه 2 | 20 | 2190 | ترکیبات زمین |
| scl | طبقهبندی صحنه | 20 | - | حذف ابر |
نصب پیشنیازها
pip install pystac-client planetary-computer
دسترسی مستقیم با پایتون
جستجوی تصاویر
from pystac_client import Client
import planetary_computer
catalog = Client.open(
"https://planetarycomputer.microsoft.com/api/stac/v1",
modifier=planetary_computer.sign_inplace,
)
# جستجوی Sentinel-2
search = catalog.search(
collections=["sentinel-2-l2a"],
bbox=[51.0, 35.5, 51.8, 36.0],
datetime="2023-06-01/2023-06-30",
query={"eo:cloud_cover": {"lt": 10}},
max_items=10,
)
for item in search.items():
cloud = item.properties.get("eo:cloud_cover", "نامشخص")
print(f"تاریخ: {item.properties['datetime']}, ابر: {cloud}%")
خواندن باند ۱۰ متری
import rasterio
import planetary_computer
items = list(search.items())
if items:
item = items[0]
# باند قرمز (۱۰ متر)
red_href = planetary_computer.sign(item.assets["red"].href)
with rasterio.open(red_href) as src:
print(f"ابعاد: {src.width} x {src.height}")
print(f"وضوح: {src.res[0]} متر")
حذف ابر با استفاده از SCL
import rasterio
import numpy as np
import planetary_computer
item = list(search.items())[0]
# خواندن طبقهبندی صحنه (SCL)
scl_href = planetary_computer.sign(item.assets["scl"].href)
red_href = planetary_computer.sign(item.assets["red"].href)
with rasterio.open(scl_href) as scl_src:
scl = scl_src.read(1)
with rasterio.open(red_href) as red_src:
red = red_src.read(1)
# SCL: 3=سایه ابر، 8=ابرهای مtówی، 9=ابرهای بالا، 10=ابرهای سیرکوس
cloud_mask = np.isin(scl, [3, 8, 9, 10])
# اعمال ماسک ابر
red_clean = red.copy()
red_clean[cloud_mask] = 0
print(f"پیکسلهای ابری: {cloud_mask.sum()} از {cloud_mask.size}")