~1.5 часа QGIS новичок

Космоснимок Sentinel-2 в QGIS

Загружаем каналы, собираем цветные композиции, считаем вегетационный индекс и делаем первую классификацию.

Шпаргалка: структура файлов Sentinel-2

Снимок, скачанный с Copernicus Browser, — это набор папок и файлов. Нас интересует только небольшая часть из них.

Путь к данным выглядит примерно так:

S2B_MSIL2A_20XX...
└── GRANULE
    └── L2A_T36VUN_...
        └── IMG_DATA
            ├── R10m   ← 10 м/пиксель
            ├── R20m   ← 20 м/пиксель
            └── R60m   ← 60 м/пиксель

Каналы в папке R10m (основные для работы):

ФайлКаналДиапазонДля чего полезен
..._B02_10m.jp2B02 — Синий490 нмЕстественные цвета, водные объекты
..._B03_10m.jp2B03 — Зелёный560 нмЕстественные цвета, растительность
..._B04_10m.jp2B04 — Красный665 нмЕстественные цвета, расчёт NDVI
..._B08_10m.jp2B08 — Ближний ИК (NIR)842 нмРасчёт NDVI, ложные цвета

Каналы в папке R20m (для бонусного задания):

ФайлКаналДиапазонДля чего полезен
..._B11_20m.jp2B11 — SWIR1610 нмЗастройка, голый грунт, влажность

Часть 1. Комбинации каналов (~30 мин)

Каждый канал Sentinel-2 — это отдельное изображение в градациях серого. Чтобы получить цветную картинку, нужно совместить несколько каналов, назначив каждому свой цвет: красный, зелёный, синий (RGB). В зависимости от выбранных каналов получим разные «взгляды» на территорию.

Шаг 1 — Загрузите каналы

  1. Откройте QGIS и создайте новый проект.
  2. Перейдите в папку снимка, найдите подпапку R10m (путь: GRANULE → … → IMG_DATA → R10m).
  3. Перетащите в окно QGIS файлы каналов B02, B03, B04, B08.

Каждый канал откроется как отдельный серый слой — это нормально.

Каналы загружены в QGIS
Четыре канала в панели слоёв — каждый отображается как серое изображение

Шаг 2 — Соберите изображение в естественных цветах

  1. Откройте меню Растр → Прочее → Создать виртуальный растр (Build Virtual Raster).
  2. Во входных слоях выберите B04, B03, B02 — именно в таком порядке.
  3. Поставьте галочку «Разместить каждый входной файл в отдельный канал» (Place each input file into a separate band).
  4. Нажмите «Выполнить».

Появится новый слой. Откройте его свойства (правый клик → Свойства → Символика):

  1. Тип отображения: Многоканальное цветное (Multiband color).
  2. Назначьте: Red = Band 3 (B04), Green = Band 2 (B03), Blue = Band 1 (B02).
  3. Нажмите OK.

Результат — изображение в естественных цветах. Вы увидите знакомые виды: Тверь, Волгу, леса и поля.

Виртуальный растр в естественных цветах
Не забудьте разместить виртуальный растр выше остальных слоёв

Шаг 3 — Соберите изображение в ложных цветах

  1. Повторите процедуру создания виртуального растра, но теперь выберите каналы: B08, B04, B03.
  2. Не забудьте поставить галочку «Разместить каждый входной файл в отдельный канал».
  3. В символике назначьте: Red = Band 3 (B08), Green = Band 2 (B04), Blue = Band 1 (B03).
Виртуальный растр в ложных цветах
Проверьте, что каналы расставлены правильно, а растр лежит выше остальных слоёв

Шаг 3.1 — Установите плагин MapSwipe Tool

Переключать видимость слоёв вручную — неудобно. Плагин MapSwipe Tool позволяет «разрезать» экран шторкой и видеть два слоя одновременно.

  1. Меню Модули → Управление и установка модулей.
  2. В строке поиска введите MapSwipe Tool.
  3. Нажмите «Установить».
  4. После установки на панели инструментов появится иконка плагина — нажмите на неё.
  5. Убедитесь, что слой с ложными цветами находится выше слоя с естественными цветами в панели слоёв.
  6. Двигайте курсор по карте — шторка будет открывать нижний слой.
Пример использования MapSwipe Tool
Выберите инструмент на панели, затем — слой ниже самого верхнего

Часть 2. Расчёт NDVI (~25 мин)

NDVI (Normalized Difference Vegetation Index) — вегетационный индекс, который показывает состояние растительности. Значения варьируются от −1 до +1:

Значение NDVIЧто это
меньше 0Вода, облака, снег
0 – 0.2Голый грунт, застройка, дороги
0.2 – 0.4Разреженная растительность, газоны
0.4 – 0.6Умеренная растительность
0.6 – 1.0Густая здоровая растительность

Формула:

NDVI = (B08 − B04) / (B08 + B04)

Шаг 4 — Откройте Растровый калькулятор

  1. Меню Растр → Растровый калькулятор (Raster Calculator).
  2. В поле выражения введите формулу. Имена слоёв вставляйте двойным кликом из списка слева:
(“B08@1” - “B04@1”) / (“B08@1” + “B04@1”)

Затем укажите имя выходного файла (например, NDVI_Tver.tif) и нажмите OK.

Формула NDVI в калькуляторе растров
Сохраните результат в папку «Документы», в отдельную папку занятия

Шаг 5 — Раскрасьте результат

  1. Правый клик по слою NDVI → Свойства → Символика.
  2. Тип отображения: Одноканальное псевдоцветное (Singleband pseudocolor).
  3. Интерполяция: Линейная.
  4. Цветовая рампа: выберите RdYlGn (красный → жёлтый → зелёный).
  5. Установите Min = -0.4, Max = 0.8.
  6. Нажмите «Классифицировать», затем OK.

Результат — карта состояния растительности. Леса окрашены в зелёный, вода — в красный/тёмный, застройка — в жёлто-коричневый.

Настройка стилизации NDVI
Внимательно отнеситесь к настройке стилизации

Часть 3. Пороговая классификация (~20 мин)

Теперь из непрерывной шкалы NDVI мы создадим простую карту: растительность / не растительность. Для этого зададим пороговое значение — если NDVI выше порога, считаем пиксель растительностью.

Шаг 6 — Создайте маску растительности

  1. Снова откройте Растр → Растровый калькулятор.
  2. Введите формулу:
“NDVI_Tver@1” >= 0.3

Затем укажите имя выходного файла Vegetation_mask.tif и нажмите OK.

Получится бинарный растр: 1 = растительность, 0 = всё остальное.

Выражение пороговой классификации
Обратите внимание: разделитель десятичного числа — точка, а не запятая!

Шаг 7 — Раскрасьте маску

  1. Правый клик по слою → Свойства → Символика.
  2. Тип отображения: Палитра / уникальные значения (Paletted / Unique values).
  3. Нажмите «Классифицировать».
  4. Назначьте цвета: 0 — прозрачный, 1 — зелёный.
  5. Нажмите OK.
Стилизация маски растительности
Важно для наглядности сделать «не растительность» прозрачной

Шаг 8 — Поэкспериментируйте с порогом

Попробуйте повторить Шаг 6 с другими пороговыми значениями: 0.2, 0.4, 0.5. Сравните результаты.

Бонус 1. Подложка Yandex Satellite

Сравним нашу маску растительности со снимком высокого разрешения. Для этого подключим спутниковую подложку через плагин QuickMapServices.

Шаг 1 — Установите плагин

  1. Меню Модули → Управление и установка модулей.
  2. В строке поиска введите QuickMapServices.
  3. Нажмите «Установить».

Шаг 2 — Подключите дополнительные источники

По умолчанию плагин содержит только базовый набор подложек. Чтобы получить доступ к Yandex, Google и другим сервисам:

  1. Меню Интернет → QuickMapServices → Поиск в NextGIS QMS.
  2. Перейдите на вкладку Поиск в NextGIS QMS.

Шаг 3 — Добавьте подложку

  1. В окне поиска введите yandex.
  2. Выберите подложку Yandex Satellite, добавьте её на карту и расположите ниже всех остальных слоёв.

Бонус 2. Из растра в полигоны

Пока наша маска растительности — это растр (сетка пикселей). Но для многих задач удобнее работать с векторными полигонами: их можно редактировать, измерять площадь, экспортировать в другие форматы. Превратим растр в вектор одним инструментом.

Шаг 1 — Векторизуйте маску

  1. Меню Растр → Преобразование → Полигонизация (Растр в вектор) (Raster → Conversion → Polygonize).
  2. Входной слой: выберите Vegetation_mask (ту маску, с порогом, который вам больше понравился).
  3. Имя поля со значением оставьте по умолчанию (DN).
  4. Нажмите «Выполнить».

Появится новый векторный слой с полигонами. Каждый полигон имеет атрибут DN: значение 1 — растительность, 0 — всё остальное.

Шаг 2 — Уберите лишнее

Нам интересна только растительность (DN = 1). Удалим остальное:

  1. Правый клик по векторному слою → Открыть таблицу атрибутов.
  2. Нажмите кнопку «Выбрать объекты по выражению» (жёлтый значок с буквой ε на панели таблицы атрибутов).
  3. Введите выражение: "DN" = 0
  4. Нажмите «Выбрать объекты», затем закройте окно.
  5. Включите режим редактирования (значок карандаша на панели), нажмите «Удалить выбранные», сохраните изменения и выключите режим редактирования.

Бонус 3. Плагин Value Tool

Если осталось время — установим плагин, который показывает значения всех каналов при наведении курсора на карту.

  1. Меню Модули → Управление и установка модулей.
  2. В строке поиска введите Value Tool.
  3. Нажмите «Установить».
  4. После установки включите панель: Вид → Панели → Value Tool.

Задание: наведите курсор на разные объекты — вода, лес, поле, застройка, дорога — и запишите значения каналов B02, B03, B04, B08 для каждого типа. Видите закономерности?

Бонус 4. Индекс застройки NDBI

NDBI (Normalized Difference Built-up Index) — индекс, который выделяет застроенные территории и голый грунт. Использует коротковолновый инфракрасный канал B11 (SWIR) из папки R20m.

Шаг 1 — Загрузите канал B11

Перетащите в проект файл B11 из папки R20m.

Шаг 2 — Рассчитайте NDBI

Откройте Растровый калькулятор и введите:

(“B11@1” - “B08@1”) / (“B11@1” + “B08@1”)

Выходной файл: NDBI_Tver.tif.

Шаг 3 — Раскрасьте и сравните

Раскрасьте NDBI аналогично NDVI (псевдоцветное отображение). Используйте MapSwipe Tool, чтобы сравнить NDVI и NDBI шторкой: поместите NDBI выше NDVI в панели слоёв и активируйте плагин.

Что мы узнали

  1. Познакомились со структурой данных Sentinel-2 и мультиспектральными каналами.
  2. Собрали цветные изображения из отдельных каналов (естественные и ложные цвета).
  3. Рассчитали вегетационный индекс NDVI и увидели, как из снимка извлекается тематическая информация.
  4. Выполнили пороговую классификацию и поняли, что «классификация» — это решение исследователя.

Все эти операции — базовые приёмы дистанционного зондирования, которые применяются в самых разных задачах: от мониторинга лесов и сельского хозяйства до городского планирования.