Работа со спутниковыми снимками: Sentinel Hub, EO Browser, Google Earth Engine
Работа со спутниковыми снимками: Sentinel Hub, EO Browser, Google Earth Engine
Спутниковые снимки — это окно в мир, доступное каждому. Современные спутники (Sentinel, Landsat, MODIS) предоставляют бесплатные снимки высокого и среднего разрешения с регулярностью от нескольких дней до нескольких недель. Для GEOINT-специалиста спутниковые данные — это возможность не только подтвердить геолокацию, но и увидеть изменения на местности, отследить перемещение техники, обнаружить скрытые объекты и даже восстановить историю событий. Данная статья посвящена методам работы с бесплатными спутниковыми сервисами: Sentinel Hub, EO Browser и Google Earth Engine.
Для большинства задач GEOINT достаточно Sentinel-2 (10 м разрешения) и Landsat (15-30 м).
Этап 1: Sentinel Hub и EO Browser — самый простой вход в спутниковый анализ
EO Browser (https://apps.sentinel-hub.com/eo-browser) — это веб-интерфейс для просмотра спутниковых снимков Sentinel, Landsat и других. Он не требует регистрации для просмотра, но для загрузки снимков нужен бесплатный аккаунт Sentinel Hub.
- Визуализация снимков в реальном времени (с задержкой 1-5 дней).
- Выбор различных комбинаций каналов (естественные цвета, NDVI, NDWI и др.).
- Сравнение снимков разных дат (слайдер времени).
- Загрузка снимков в высоком разрешении.
- Поиск по координатам и названиям мест.
Как использовать EO Browser для геолокации:
- Ввести координаты предполагаемого места.
- Выбрать дату (в районе съемки фото/видео).
- Сравнить снимок с фото/видео (поиск совпадений зданий, ландшафта).
- Скачать снимок для дальнейшего анализа (в QGIS).
- Есть фото, предположительно из пригорода Парижа. Открываем EO Browser, находим район, сравниваем расположение зданий, очертания леса. Если всё совпадает — геолокация подтверждена.
Этап 2: Sentinel Hub API — автоматизация сбора данных
Sentinel Hub предоставляет API для программного доступа к спутниковым снимкам. Это позволяет автоматизировать мониторинг изменений, загружать снимки по расписанию и встраивать их в дашборды.
- Зарегистрироваться на Sentinel Hub (бесплатный аккаунт).
- Создать клиент (OAuth) и получить
client_idиclient_secret. - Установить библиотеку
sentinelhub(Python).
Пример запроса снимка за определенную дату:
from sentinelhub import SHConfig, BBox, CRS, SentinelHubRequest, DataCollection, MimeType
config = SHConfig()
config.sh_client_id = "YOUR_CLIENT_ID"
config.sh_client_secret = "YOUR_CLIENT_SECRET"
# Координаты (пример: Париж)
bbox = BBox([2.3522, 48.8566, 2.38, 48.88], crs=CRS.WGS84)
request = SentinelHubRequest(
data_folder="data",
evalscript="""
// Естественные цвета (RGB)
// См. документацию для более сложных комбинаций
return [B04, B03, B02]; // Red, Green, Blue (Sentinel-2)
""",
input_data=[
SentinelHubRequest.input_data(
data_collection=DataCollection.SENTINEL2_L2A,
time_interval=("2023-06-15", "2023-06-16"),
maxcc=0.1 # Максимальная облачность 10%
)
],
responses=[
SentinelHubRequest.output_response('default', MimeType.PNG)
],
bbox=bbox,
size=[512, 512],
config=config
)
request.get_data()- Бесплатный аккаунт имеет ограничения по количеству запросов и размеру снимков.
- Для массовых запросов нужна платная подписка.
Этап 3: Google Earth Engine — мощная платформа для анализа временных рядов
Google Earth Engine (GEE) — это облачная платформа для анализа геопространственных данных. Она содержит огромный архив спутниковых снимков (Sentinel, Landsat, MODIS) и позволяет выполнять сложные вычисления (например, анализ NDVI за 10 лет) прямо в браузере, без скачивания данных.
Доступ: https://earthengine.google.com/ (требуется регистрация, бесплатно для академических и некоммерческих целей).
- Доступ к полному архиву (с 1980-х годов).
- Выполнение скриптов на JavaScript или Python.
- Сравнение снимков разных дат (временная шкала).
- Создание анимаций изменений.
- Экспорт данных в GeoTIFF, CSV, PNG.
Пример кода GEE (JavaScript) — обнаружение изменений:
// Загрузка коллекции Sentinel-2 за период
var collection = ee.ImageCollection("COPERNICUS/S2")
.filterBounds(geometry) // геометрия интереса
.filterDate("2023-01-01", "2023-12-31")
.filter(ee.Filter.lt("CLOUDY_PIXEL_PERCENTAGE", 10));
// Выбор одного снимка (например, за лето)
var image = collection
.filter(ee.Filter.calendarRange(6, 8, 'month'))
.median();
// Визуализация
Map.addLayer(image, {bands: ["B4", "B3", "B2"], min: 0, max: 3000}, "Sentinel-2 RGB");- Мониторинг изменений: Сравнить снимки до и после события (строительство, вырубка леса, перемещение техники).
- Обнаружение скрытых объектов: Использование различных спектральных каналов для выявления объектов, невидимых в обычном RGB.
- Анализ NDVI: Определение растительности (здоровые участки vs повреждённые).
- Изучение истории: Просмотр снимков за разные годы для восстановления хронологии.
Этап 4: Сравнение спутниковых снимков разных дат (слайдер времени)
EO Browser, Google Earth Engine и даже Google Earth имеют инструменты для сравнения снимков.
- Использовать "Timeline" (слайдер времени) для быстрого сравнения разных дат.
- Переключать снимки (например, "2023-05-10" vs "2023-08-15").
Этап 5: Работа с мультиспектральными каналами (не только RGB)
Спутниковые снимки содержат больше, чем просто красный, зеленый и синий каналы.
Популярные комбинации каналов:
Пример использования SWIR в GEOINT:
- Обнаружение скрытых дорог или троп (по изменению влажности почвы).
- Выявление изменений в почвенном покрове (может указывать на строительство).
Этап 6: Автоматический поиск изменений с помощью скриптов
Можно настроить автоматическое уведомление при изменении снимка в определённой области.
- Выделить область интереса (полигон).
- Настроить скрипт, который сравнивает снимки (например, каждую неделю).
- При обнаружении изменений (по NDVI или спектральному индексу) отправить уведомление.
Пример на Python (с использованием Sentinel Hub):
import numpy as np
from sentinelhub import ...
# Функция получения среднего NDVI за период
def get_mean_ndvi(bbox, start_date, end_date):
evalscript = """
// Расчет NDVI
var ndvi = (B08 - B04) / (B08 + B04);
return [ndvi];
"""
request = SentinelHubRequest(...)
data = request.get_data()
return np.mean(data) if data.size > 0 else NoneЭтап 7: Спутниковые снимки и геолокация — практический кейс
Задача: Найти координаты старого аэродрома, который был заасфальтирован и превращен в парковку. Есть фото с самолётом на фоне лесополосы. Фото предположительно 1990-х годов.
- Сбор информации: Точного адреса нет. Есть примерный район (Подмосковье).
- Поиск в Google Earth:
- Открыть исторические снимки.
- Просматривать районы (бывшие аэродромы).
- Найти участок с длинной прямой полосой (бывшая взлётно-посадочная) и лесополосой вокруг.
- Сравнение с EO Browser:
- Найти современный снимок (парковка, здания).
- Найти снимок 1990-х (если есть в архиве) — подтвердить, что там был аэродром.
- Визуальное совпадение:
- Координаты: 55.8045, 37.7456 (пример).
- Кросс-референс: Поиск в интернете по описанию (старый аэродром + лесополоса) → находится официальная информация, подтверждающая геолокацию.
Инструменты для работы со спутниковыми снимками
Ограничения при работе со спутниковыми снимками
- Облачность: Облака могут закрывать интересующую область. Выбирайте снимки с минимальной облачностью.
- Разрешение: Для детального анализа нужны снимки высокого разрешения (0.3-1.5 м), но они платные.
- Дата съемки: Спутники не снимают каждый день. Периодичность 2-16 дней.
- Архивы: Не все снимки сохраняются в архивах (особенно старые).
- Искажения: Спутниковые снимки могут быть искажены рельефом местности.
Спутниковые снимки — это неотъемлемая часть современного GEOINT. Они позволяют подтверждать геолокацию, выявлять изменения, анализировать историю местности и даже обнаруживать скрытые объекты. Бесплатные сервисы (EO Browser, Sentinel Hub, Google Earth Engine) предоставляют исследователю мощный инструментарий, который при правильном использовании даёт возможность заглянуть в прошлое и увидеть настоящее с высоты птичьего полёта.