August 3

Работа со спутниковыми снимками: 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.

Основные функции EO Browser:

  • Визуализация снимков в реальном времени (с задержкой 1-5 дней).
  • Выбор различных комбинаций каналов (естественные цвета, NDVI, NDWI и др.).
  • Сравнение снимков разных дат (слайдер времени).
  • Загрузка снимков в высоком разрешении.
  • Поиск по координатам и названиям мест.

Как использовать EO Browser для геолокации:

  1. Ввести координаты предполагаемого места.
  2. Выбрать дату (в районе съемки фото/видео).
  3. Сравнить снимок с фото/видео (поиск совпадений зданий, ландшафта).
  4. Скачать снимок для дальнейшего анализа (в QGIS).

Пример:

  • Есть фото, предположительно из пригорода Парижа. Открываем EO Browser, находим район, сравниваем расположение зданий, очертания леса. Если всё совпадает — геолокация подтверждена.

Этап 2: Sentinel Hub API — автоматизация сбора данных

Sentinel Hub предоставляет API для программного доступа к спутниковым снимкам. Это позволяет автоматизировать мониторинг изменений, загружать снимки по расписанию и встраивать их в дашборды.

Настройка:

  1. Зарегистрироваться на Sentinel Hub (бесплатный аккаунт).
  2. Создать клиент (OAuth) и получить client_id и client_secret.
  3. Установить библиотеку 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/ (требуется регистрация, бесплатно для академических и некоммерческих целей).

Основные возможности GEE:

  • Доступ к полному архиву (с 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");

Использование GEE для GEOINT:

  • Мониторинг изменений: Сравнить снимки до и после события (строительство, вырубка леса, перемещение техники).
  • Обнаружение скрытых объектов: Использование различных спектральных каналов для выявления объектов, невидимых в обычном RGB.
  • Анализ NDVI: Определение растительности (здоровые участки vs повреждённые).
  • Изучение истории: Просмотр снимков за разные годы для восстановления хронологии.

Этап 4: Сравнение спутниковых снимков разных дат (слайдер времени)

EO Browser, Google Earth Engine и даже Google Earth имеют инструменты для сравнения снимков.

Google Earth:

  • Открыть окно "Historical Imagery".
  • Выбрать дату и сравнить с современным состоянием.

EO Browser:

  • Использовать "Timeline" (слайдер времени) для быстрого сравнения разных дат.
  • Переключать снимки (например, "2023-05-10" vs "2023-08-15").

Google Earth Engine:

  • Использовать ui.Thumbnail или создавать анимации.
  • Сравнивать снимки до и после события.

Этап 5: Работа с мультиспектральными каналами (не только RGB)

Спутниковые снимки содержат больше, чем просто красный, зеленый и синий каналы.

Типичные каналы Sentinel-2:

Популярные комбинации каналов:

Пример использования SWIR в GEOINT:

  • Обнаружение скрытых дорог или троп (по изменению влажности почвы).
  • Выявление изменений в почвенном покрове (может указывать на строительство).

Этап 6: Автоматический поиск изменений с помощью скриптов

Можно настроить автоматическое уведомление при изменении снимка в определённой области.

Алгоритм:

  1. Выделить область интереса (полигон).
  2. Настроить скрипт, который сравнивает снимки (например, каждую неделю).
  3. При обнаружении изменений (по 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-х годов.

  1. Сбор информации: Точного адреса нет. Есть примерный район (Подмосковье).
  2. Поиск в Google Earth:
    • Открыть исторические снимки.
    • Просматривать районы (бывшие аэродромы).
    • Найти участок с длинной прямой полосой (бывшая взлётно-посадочная) и лесополосой вокруг.
  3. Сравнение с EO Browser:
    • Найти современный снимок (парковка, здания).
    • Найти снимок 1990-х (если есть в архиве) — подтвердить, что там был аэродром.
  4. Визуальное совпадение:
    • Сравнить лесополосу на фото с лесополосой на спутниковом снимке. Совпадают по форме.
  5. Координаты: 55.8045, 37.7456 (пример).
  6. Кросс-референс: Поиск в интернете по описанию (старый аэродром + лесополоса) → находится официальная информация, подтверждающая геолокацию.

Инструменты для работы со спутниковыми снимками

Ограничения при работе со спутниковыми снимками

  1. Облачность: Облака могут закрывать интересующую область. Выбирайте снимки с минимальной облачностью.
  2. Разрешение: Для детального анализа нужны снимки высокого разрешения (0.3-1.5 м), но они платные.
  3. Дата съемки: Спутники не снимают каждый день. Периодичность 2-16 дней.
  4. Архивы: Не все снимки сохраняются в архивах (особенно старые).
  5. Искажения: Спутниковые снимки могут быть искажены рельефом местности.

Спутниковые снимки — это неотъемлемая часть современного GEOINT. Они позволяют подтверждать геолокацию, выявлять изменения, анализировать историю местности и даже обнаруживать скрытые объекты. Бесплатные сервисы (EO Browser, Sentinel Hub, Google Earth Engine) предоставляют исследователю мощный инструментарий, который при правильном использовании даёт возможность заглянуть в прошлое и увидеть настоящее с высоты птичьего полёта.