Практика 3 Создание мозаики для заданной территории. If в калькуляторе растров
Данные для занятия Презентация
Зачем воспроизводить чужое исследование
В 2016 году журнал Nature опубликовал результаты опроса 1576 исследователей: 52% сообщили, что в их области существует серьёзный кризис воспроизводимости результатов, ещё 38% — что кризис есть, но умеренный. В сумме 90% опрошенных считают проблему реальной. При этом по направлению «Науки о Земле и окружающей среде» около 65% исследователей не смогли воспроизвести чужой эксперимент, а около 40% — свой собственный.

Среди факторов, которые опрошенные чаще всего называли причиной невоспроизводимости результатов, — выборочная публикация данных, давление необходимости публиковаться и недостаточно подробное описание методов.

Один из способов научиться отличать надёжный результат от случайного — попробовать самостоятельно воспроизвести опубликованное исследование по количественным методам (материалам и методам), описанным в статье, и сравнить полученный результат с оригиналом. В этой практике мы воспроизведём часть исследования по мониторингу берега косы на спутниковых данных.
Структура научной статьи (формат IMRAD)
Большинство научных статей по естественным наукам строятся по общей схеме IMRAD, где пропорции разделов примерно такие:
- Introduction — введение
- Materials and Methods — материалы и методы
- Results — результаты
- Discussion — обсуждение
Вокруг основного текста статьи также обычно присутствуют Title, Authors, Abstract с ключевыми словами и References — это обязательная часть; Acknowledgements (благодарности) — необязательная.
Рис. П3.3 — пропорции разделов научной статьи по схеме IMRAD
Отдельного ГОСТа именно на оформление научной статьи нет — подготовку к публикации регламентируют смежные стандарты СИБИД:
| Стандарт | Что регламентирует |
|---|---|
| ГОСТ 7.32-2017 | Отчёт о НИР. Структура и правила оформления |
| ГОСТ Р 7.05-2008 | Библиографическая ссылка. Общие требования и правила составления |
| ГОСТ 7.82-2001 | Библиографическое описание электронных ресурсов |
| ГОСТ 7.0.11-2011 | Диссертация и автореферат диссертации. Структура и правила оформления |
Источник для воспроизведения: Крыленко В. В., Крыленко М. В. Мониторинг берега Вербяной косы по спутниковым данным // Вестник СГУГиТ (Сибирского государственного университета геосистем и технологий). 2020. №3. URL: cyberleninka.ru/article/n/monitoring-berega-verbyanoy-kosy-po-sputnikovym-dannym (дата обращения: 24.02.2025).
Статья посвящена мониторингу береговой линии Вербяной косы (коса на побережье Азовского моря, ограничивающая Темрюкский залив со стороны моря) по разновременным спутниковым снимкам. Мы воспроизведём один из шагов методики — выделение береговой линии по индексу NDWI.
Постановка задачи
Скачайте снимки Sentinel-2A (зелёный и ближний инфракрасный, NIR, каналы) на территорию Вербяной косы и Темрюкского залива за весну-лето 2023 года (с 01.05.2023 по 01.09.2023), облачность менее 10%.

Территория попадает на границу двух сцен Sentinel-2, поэтому потребуется два снимка — целиком она не поместится в одну сцену:

- Открытие STAC API Browser в QGIS (см. Практику 1).
- Поиск данных: Sentinel-2A, каналы Green и NIR, дата съёмки — весна-лето 2023 года, облачность менее 10%.
- Загрузка: скачайте оба перекрывающихся снимка, покрывающих область целиком.
Типичная ошибка
Сохраняйте проект QGIS так, чтобы в пути к нему не было кириллических символов (например, D:/1, а не D:/Практика 3). Некоторые инструменты обработки растров (в том числе используемые далее) могут работать нестабильно при кириллице в пути.
Как создать мозаику?
Если территория интереса покрывается несколькими сценами, их нужно объединить в единую мозаику: Растр → Прочее → Результат объединения.

В открывшемся диалоге в поле Исходные слои выберите все сцены, которые нужно объединить (в нашем случае — два снимка одного канала).

Типичная ошибка
Обработка растров требовательна к оперативной памяти. На ноутбуках и маломощных компьютерах избегайте объединения большого числа сцен или сцен очень высокого разрешения за один раз — это может привести к зависанию QGIS.
Повторите объединение отдельно для канала Green и отдельно для канала NIR — на выходе получится две мозаики.
Настройка отображения растра
Мозаика сразу после создания обычно выглядит неопрятно: разные сцены могли быть сняты в разных условиях освещённости, поэтому яркость и контраст стыков не совпадают.

Чтобы выровнять внешний вид, откройте Свойства слоя → Стиль и настройте растяжение контраста индивидуально для каждого канала (Мин/Макс, метод «Растяжение до мин/макс»).

После настройки стыки между сценами становятся значительно менее заметны.

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


Рассчитайте индекс NDWI (см. Практику 2) через Растр → Калькулятор растров:
\[ NDWI = \frac{Green - NIR}{Green + NIR} \]

Напомним диапазоны значений индекса: вода обычно принимает значения от 0,2 до 1, растительность — от −0,1 до 0,4, объекты без влаги — меньше 0.
Сохраните исходные данные
Перед экспериментами с калькулятором растров сохраните проект и по возможности — копию исходных мозаик. Калькулятор растров может перезаписать существующий слой, если результату присвоено то же имя.
Оператор IF для маскирования
Если нужно замаскировать часть растра — например, оставить только пиксели, соответствующие воде (NDWI ≥ 0), — используйте выражение вида:
("NDWI@1" >= 0) * "TrueColor@1"
Часть выражения в скобках возвращает 1, если условие истинно (пиксель — вода), и 0 — если ложно (пиксель — суша). Умножение на исходный канал оставляет значения там, где условие истинно, и обнуляет остальные пиксели.

На скриншотах ниже слой с рассчитанным индексом сохранён под именем MDWI — это лишь то, как его назвали при сохранении в этом конкретном проекте; по формуле и смыслу это тот же индекс NDWI. Называйте свои слои так, как удобно вам, но старайтесь не путать это с формально иным индексом MNDWI (Modified NDWI), который использует не NIR, а SWIR канал.
Поскольку композит истинных цветов (True Color) состоит из трёх каналов, выражение нужно применить отдельно к каждому каналу:
("NDWI@1" >= 0) * "TrueColor@1"
("NDWI@1" >= 0) * "TrueColor@2"
("NDWI@1" >= 0) * "TrueColor@3"

Затем три полученных слоя нужно объединить обратно в один композит через уже знакомый инструмент Растр → Прочее → Результат объединения, включив на этот раз флажок «Поместить каждый исходный файл в отдельный канал» (иначе каналы наложатся друг на друга, а не сформируют RGB-изображение).


Типичная ошибка
Флажок «Поместить каждый исходный файл в отдельный канал» легко пропустить по невнимательности. Без него три канала будут объединены как единый одноканальный растр, а не как RGB-композит, и итоговое изображение получится некорректным.
Оператор IF для классификации
Чтобы подготовить изображение к векторизации, его нужно превратить в чистый бинарный (двузначный) растр. Для этого используется тот же оператор IF, но уже не для обнуления, а для явного присвоения одного из двух значений:
IF("TrueColor@1" > 0, 50, 100)
Здесь пикселям с положительным значением (вода — то, что осталось видимым после маскирования) присваивается значение 50, всем остальным (суша, замаскированная ранее в 0) — значение 100. В отличие от маскирования, где результат сохраняет полутона исходного изображения, классификация даёт растр ровно с двумя значениями — то, что нужно для чистой векторизации.
Ниже — интерактивная модель этого шага на синтетическом (не измеренном) поле значений индекса: подвиньте порог и посмотрите, как меняется граница между «водой» и «сушей» и какое выражение IF ему соответствует.
Лаборатория порога NDWI
Слева — синтетическое поле значений индекса (условная граница вода/суша с шумом). Справа — результат классификации по порогу.
Векторизация бинаризованного изображения
Бинарный растр переводится в векторный контур инструментом Создание изолиний (Растр → Извлечение → Контуры, или GDAL Contour): изолиния строится ровно по границе между значениями 50 и 100, то есть по границе вода/суша — это и есть искомая береговая линия.

Типичная ошибка
Автоматическая векторизация создаёт контуры не только по внешней береговой линии, но и вокруг любых внутренних водоёмов, островков и шумовых пятен на снимке (артефакты классификации). После векторизации результат нужно вручную просмотреть и удалить лишние полигоны/линии, оставив только береговую линию, которая была целью исследования.
Домашнее задание
Сравните полученную вами береговую линию с результатами, приведёнными в статье Крыленко В.В., Крыленко М.В. (2020). Опишите, за счёт чего могут возникать расхождения между вашим результатом и результатом авторов статьи (выбор даты снимка, порог NDWI, разрешение снимка, ручная чистка контура).