Дистанционное зондирование в QGIS: от данных до карт и анализа

Курс знакомит с полным циклом работы с данными дистанционного зондирования в QGIS: поиск и подготовка снимков, предобработка, визуализация и аналитика. Участники научатся извлекать показатели (индексы, классификации, изменения) и оформлять результаты в виде карт и отчетных материалов.

1. Введение в ДЗЗ и возможности QGIS

Введение в ДЗЗ и возможности QGIS

Дистанционное зондирование Земли (ДЗЗ) даёт возможность измерять свойства поверхности и атмосферы без прямого контакта — с помощью датчиков на спутниках, самолётах или дронах. В этом курсе мы будем работать с данными ДЗЗ в QGIS: загружать и готовить снимки, рассчитывать индексы, выполнять базовый анализ и оформлять результаты в виде карт.

!Общая логика: от измерений датчиком до анализа и карты в QGIS

Что такое ДЗЗ простыми словами

ДЗЗ — это получение информации о Земле по тому, как поверхность излучает или отражает электромагнитную энергию.

Платформы и датчики

  • Спутники — основной источник регулярных и сопоставимых данных на больших территориях.
  • Самолёты — часто используются для специализированной съёмки (например, в очень высоком разрешении).
  • Дроны — дают детальные данные на малых площадях, но требуют собственной организации съёмки.
  • По принципу работы датчики часто делят на:

  • Пассивные — регистрируют отражённый солнечный свет или тепловое излучение (например, оптические мультиспектральные снимки).
  • Активные — сами излучают сигнал и измеряют отклик (например, радиолокация SAR), что полезно при облачности и ночью.
  • Какие данные ДЗЗ мы чаще всего встречаем в QGIS

    Растр как базовый формат для снимков

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

    !Как устроен растр и что означает пиксель

    Важные понятия, которые будут постоянно встречаться:

  • Пространственное разрешение — размер участка на местности, соответствующий одному пикселю (например, 10 м).
  • Временное разрешение — как часто территория переснимается (например, каждые несколько дней).
  • Радиометрическое разрешение — насколько точно фиксируется сигнал (сколько уровней яркости может быть записано).
  • Каналы, диапазоны и многозональные снимки

    Один и тот же участок Земли можно измерять в разных спектральных диапазонах. Тогда данные организованы как несколько каналов (bands):

  • Синий, зелёный, красный — близко к видимому диапазону.
  • Ближний инфракрасный (NIR) — особенно важен для анализа растительности.
  • Коротковолновый инфракрасный (SWIR) — полезен для влажности, горных пород, пожаров.
  • Мультиспектральный снимок содержит несколько каналов (часто 4–13), а гиперспектральный — десятки и сотни очень узких каналов.

    Значения пикселей: что на самом деле записано

    В зависимости от продукта в пикселе может храниться:

  • Яркость/цифровое значение (сырые или частично обработанные данные).
  • Отражательная способность (более сопоставима между датами и территориями).
  • Температура поверхности (для тепловых каналов).
  • Классы (результат классификации: лес, вода, застройка и т.д.).
  • На практике это означает: перед анализом важно понимать, какую физическую величину вы анализируете и прошли ли данные нужную подготовку.

    Откуда брать данные ДЗЗ

    Ниже — типичные официальные источники, которые пригодятся в курсе:

  • USGS EarthExplorer — удобная загрузка многих наборов данных, включая Landsat.
  • Landsat Missions (USGS) — справка по миссиям Landsat и данным.
  • Copernicus Data Space Ecosystem — основной портал для данных Sentinel.
  • Copernicus Sentinel — описание миссий и продуктов Sentinel.
  • Важно различать:

  • Сырые/уровневые продукты (больше контроля, но больше подготовки).
  • Готовые аналитические продукты (быстрее в работе, но меньше гибкости).
  • Почему QGIS подходит для ДЗЗ

    QGIS — настольная ГИС, которая умеет работать с растровыми данными, визуализировать многоканальные снимки, выполнять преобразования и запускать алгоритмы обработки через встроенную инфраструктуру.

    Ключевые причины, почему QGIS удобен как стартовая среда для ДЗЗ:

  • Поддержка растров и метаданных: проекции, размер пикселя, диапазоны значений, NoData.
  • Визуализация: корректное отображение многоканальных снимков, растяжки, палитры, гистограммы.
  • Инструменты обработки через Processing Toolbox (в том числе алгоритмы GDAL).
  • Расширяемость плагинами и моделью обработки.
  • Полезные официальные разделы документации:

  • QGIS User Guide: Работа с растрами
  • QGIS User Guide: Processing
  • GDAL Documentation
  • Что именно можно делать со снимками в QGIS

    Быстро посмотреть снимок и понять, что в нём есть

    Типичные действия на старте:

  • проверить, совпадает ли система координат проекта и слоёв;
  • оценить покрытие облаками;
  • посмотреть гистограммы и диапазоны значений;
  • убедиться, что каналы интерпретируются правильно.
  • Собрать цветосинтез (композит) из каналов

    Один и тот же снимок можно отобразить по-разному:

  • Естественные цвета (примерно как видит глаз) — удобно для визуальной интерпретации.
  • Ложные цвета (например, с использованием NIR) — помогают выделять растительность, воду, следы пожаров.
  • В QGIS это обычно делается настройкой визуализации растра как многоканального изображения (назначением каналов на R, G, B).

    Посчитать простые индексы и преобразования

    QGIS позволяет рассчитывать новые растры из исходных, например:

  • индексы растительности;
  • маски по порогам (вода/не вода, облака/не облака — в простых сценариях);
  • нормализацию и пересчёт значений.
  • Для этого часто используется Raster Calculator или алгоритмы из Processing Toolbox.

    Подготовить данные к анализу

    Перед сравнением разных дат и источников обычно выполняют подготовку:

  • перепроецирование в единую систему координат;
  • обрезку по границе интереса;
  • приведение пиксельной сетки к единому шагу и выравнивание (когда нужно);
  • сборку мозаики из нескольких сцен.
  • Плагины для задач ДЗЗ

    QGIS можно расширять. Один из известных вариантов для задач классификации и подготовки мультиспектральных данных — Semi-Automatic Classification Plugin (SCP) Documentation. В рамках курса мы будем исходить из базовых возможностей QGIS и инструментов Processing, а плагины подключать по необходимости.

    Типовой рабочий процесс: от снимка к карте и анализу

    Ниже — схема, к которой мы будем возвращаться на протяжении курса:

  • Поиск и загрузка данных под задачу (подходящий сенсор, даты, облачность).
  • Проверка метаданных (система координат, размер пикселя, состав каналов, тип продукта).
  • Подготовка (обрезка, перепроецирование, мозаика, базовая очистка).
  • Визуализация (композиты, растяжки, стили, сравнение дат).
  • Расчёты и анализ (индексы, зональная статистика, классификация, изменения во времени).
  • Картографирование и экспорт (макет, легенда, подписи, оформление, итоговые файлы).
  • Частые ошибки новичков в ДЗЗ в QGIS

  • Смешение систем координат: слои визуально “уезжают” или неправильно обрезаются.
  • Неправильная интерпретация каналов: цвета выглядят “странно”, потому что каналы назначены неверно.
  • Игнорирование NoData: в расчётах появляются артефакты по краям сцен или в областях без данных.
  • Сравнение несопоставимых данных: разные продукты, разные шкалы значений, разные условия съёмки.
  • Облака и тени: они часто доминируют в статистике, если их не учитывать.
  • Как эта статья связана с остальным курсом

    Дальше мы будем последовательно углубляться:

  • научимся подбирать источники данных под задачу и правильно читать метаданные;
  • разберём подготовку растров (обрезка, перепроецирование, мозаика, выравнивание);
  • будем рассчитывать индексы и выполнять базовый анализ;
  • оформим результаты в виде карт и воспроизводимых рабочих процессов.
  • 2. Источники спутниковых данных и загрузка в QGIS

    Источники спутниковых данных и загрузка в QGIS

    В предыдущей статье мы разобрали, что такое ДЗЗ, почему спутниковые данные чаще всего приходят в виде растра и какие операции типично делают в QGIS (визуализация, композиты, индексы, подготовка). Теперь переходим к практическому вопросу: где брать спутниковые данные и как правильно загрузить их в QGIS, чтобы дальше можно было без сюрпризов считать индексы и делать анализ.

    !Схема, показывающая путь от выбора источника данных до готового слоя в QGIS

    Какие данные вам нужны перед загрузкой

    Чтобы выбрать правильный источник и формат, заранее определите три вещи.

  • Территория: точка, полигон или административная область, в которой вы работаете.
  • Период и частота: одна дата, сезон, ряд дат для анализа изменений.
  • Тип информации: оптика (цвета, растительность), тепловые данные (температура), радиолокация SAR (работает через облака и ночью).
  • Также полезно заранее понимать два термина.

  • Уровень продукта: степень обработки данных.
  • - Level-1 обычно ближе к «сырью» (меньше корректировок, больше требований к подготовке). - Level-2 обычно ближе к анализу (например, отражательная способность и/или базовые атмосферные коррекции).
  • Разрешение: размер пикселя на местности (например, 10 м, 30 м, 250 м). Чем выше разрешение, тем больше объём данных.
  • Основные источники спутниковых данных

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

    Copernicus Data Space Ecosystem (Sentinel)

  • Подходит для: Sentinel-2 (оптика), Sentinel-1 (SAR), Sentinel-3 (океан/атмосфера и др.).
  • Плюсы: официальный источник, современная инфраструктура, большой выбор продуктов.
  • Минусы: крупные объёмы данных, иногда нужно разбираться в типах продуктов.
  • Ссылка:

  • Copernicus Data Space Ecosystem
  • USGS EarthExplorer (Landsat и многое другое)

  • Подходит для: Landsat, а также ряда других наборов данных (включая некоторые DEM и исторические данные).
  • Плюсы: мощный поиск по датам и облачности, много миссий.
  • Минусы: интерфейс требует внимания к параметрам и коллекциям.
  • Ссылка:

  • USGS EarthExplorer
  • NASA Earthdata Search (MODIS, VIIRS и другие продукты NASA)

  • Подходит для: глобальных продуктов, временных рядов, климатических и океанографических данных.
  • Плюсы: огромный каталог, много готовых научных продуктов.
  • Минусы: встречаются форматы и структуры файлов, менее привычные для новичков.
  • Ссылка:

  • NASA Earthdata Search
  • EO Browser (визуальный подбор сцен)

    EO Browser удобен как инструмент поиска и первичной оценки сцен (облачность, дата, визуальная проверка), а дальше вы уже скачиваете данные из официальных источников или через сервисы.

    Ссылка:

  • EO Browser
  • > Практическое правило: если вы учитесь и хотите предсказуемый результат в QGIS, чаще всего проще начинать с Sentinel-2 (Level-2) или Landsat Collection 2 (Level-2), потому что эти продукты лучше сопоставимы между датами.

    Быстрое сравнение источников

    | Источник | Типичные данные | Сильная сторона | На что обратить внимание | |---|---|---|---| | Copernicus Data Space | Sentinel-1/2/3 | Официальные Sentinel, регулярность | Разные типы продуктов, большие архивы | | USGS EarthExplorer | Landsat и др. | Гибкий поиск, историчность | Выбор правильной коллекции и уровня | | NASA Earthdata Search | MODIS/VIIRS и др. | Большой выбор научных продуктов | Непривычные форматы, проекции, упаковка | | EO Browser | Разные миссии (просмотр) | Быстрый подбор сцен | Это не всегда «источник скачивания по умолчанию» |

    Что именно скачивать: продукт, каналы и формат

    Перед загрузкой в QGIS важно понять, как данные упакованы.

    Сцена, тайл и мозаика

  • Сцена: единица съёмки за один пролёт (часто так устроены Landsat-сцены).
  • Тайл: плитка фиксированной сетки (типично для Sentinel-2).
  • Мозаика: склейка нескольких сцен/тайлов в один растр.
  • Для учебных задач удобнее брать одну сцену/тайл, покрывающий вашу территорию, чтобы не тратить время на мозаики.

    Отдельные каналы и многоканальные файлы

    Встречаются два типичных варианта.

  • Каналы лежат как отдельные файлы (например, по одному GeoTIFF на канал).
  • Каналы упакованы в один контейнер (например, многоканальный GeoTIFF или NetCDF/HDF).
  • Для QGIS оба варианта рабочие, но отдельные файлы чаще понятнее новичкам: вы явно видите, какой файл соответствует какому каналу.

    Форматы, которые вы чаще всего увидите

  • GeoTIFF (.tif) — самый удобный формат для анализа в QGIS.
  • JP2 (.jp2) — часто встречается в Sentinel-2; QGIS обычно открывает, но для больших задач иногда удобнее конвертировать в GeoTIFF.
  • HDF/NetCDF (.hdf, .nc) — часты в продуктах NASA; в QGIS открываются, но слои внутри файла нужно выбирать внимательно.
  • Архивы (.zip, .tar) — многие порталы отдают данные архивом; обычно его надо распаковать перед работой.
  • Способы загрузки данных в QGIS

    Есть два принципиально разных подхода.

  • Файлы на диске: вы скачали данные и открыли их в QGIS.
  • Веб-сервисы: вы подключаете слой как поток (WMS/WMTS/XYZ), часто для подложек и просмотра.
  • Для анализа (индексы, классификация, статистика) надёжнее первый подход: работать с локальными файлами, а веб-сервисы использовать как справочные подложки.

    Загрузка локальных растровых файлов в QGIS

    Вариант через менеджер источников данных

  • Откройте LayerAdd LayerAdd Raster Layer.
  • Выберите файл (например, B04.tif, B08.tif или другой канал).
  • Нажмите Add.
  • Проверьте, что слой появился без ошибок и корректно отображается.
  • Вариант через панель Browser

  • Откройте панель Browser (если скрыта).
  • Перейдите в папку с данными.
  • Перетащите файл(ы) в проект.
  • Что проверить сразу после загрузки

    Слой → Properties.

  • Information.
  • - система координат (CRS) слоя; - размер пикселя; - наличие NoData.
  • Symbology.
  • - режим отображения (Singleband gray / Multiband color); - растяжка (Min/Max) и гистограмма.

    Если картинка «слишком тёмная» или «слишком яркая», часто проблема не в данных, а в настройке растяжки отображения.

    Официальная справка QGIS по работе с растрами:

  • QGIS User Guide: Raster data
  • Загрузка многоканальных данных и сбор композита

    Чтобы собрать композит (например, естественные цвета или ложные цвета), вам нужно назначить каналы на RGB.

    Типичная логика для оптики.

  • Естественные цвета: красный канал → R, зелёный → G, синий → B.
  • Ложные цвета с растительностью: NIR → R, красный → G, зелёный → B.
  • В QGIS это делается так.

  • Откройте свойства растра → Symbology.
  • Выберите Multiband color.
  • Назначьте нужные каналы на R, G, B.
  • Если каналы у вас отдельными файлами, вы можете:

  • Либо открывать каждый канал как отдельный слой и собирать композит через инструменты визуализации (в зависимости от формата и версии QGIS).
  • Либо заранее собрать многоканальный GeoTIFF средствами GDAL в Processing (это часто удобнее для дальнейшей работы).
  • > В рамках курса мы будем регулярно возвращаться к этой точке: правильная интерпретация каналов и корректная визуализация помогают быстро заметить облака, тени и ошибки подготовки ещё до анализа.

    Подключение веб-слоёв: WMS/WMTS и XYZ

    Веб-слои удобны как подложки и контекст (улицы, рельеф, базовые карты), а иногда и как быстрый просмотр спутниковых мозаик. Но важно помнить: веб-слой часто не даёт «сырые пиксели» для вычислений или ограничивает качество.

    WMS/WMTS

  • WMS обычно отдаёт изображение карты (картинку) по запросу.
  • WMTS работает с тайлами и часто быстрее на масштабировании.
  • В QGIS:

  • LayerAdd LayerAdd WMS/WMTS Layer.
  • New → введите параметры сервиса (URL, имя).
  • Connect → выберите слой → Add.
  • Справка QGIS по OGC-сервисам:

  • QGIS User Guide: OGC client support (WMS/WMTS/WFS)
  • XYZ Tiles (тайловые подложки)

    XYZ-слои часто используют для базовых карт. Добавляются через BrowserXYZ Tiles.

    Ключевой момент: XYZ почти всегда работает в проекции Web Mercator (EPSG:3857). Это нормально для подложки, но для анализа спутниковых данных опирайтесь на CRS ваших растров, а не на CRS подложки.

    Типичные проблемы при загрузке и как их распознать

    Слой «не на месте» или не совпадает с другими

    Чаще всего причина — разные CRS.

  • Проверьте CRS проекта и CRS слоя.
  • Если нужно, перепроецируйте растровые данные на этапе подготовки (мы подробно разберём это в следующих темах курса).
  • Данные открываются, но выглядят «неправильно»

    Типичные причины.

  • Неправильная растяжка отображения.
  • Вы смотрите не тот канал (например, NIR вместо красного).
  • Значения физической величины не то, что вы ожидаете (например, не отражательная способность, а цифровые значения).
  • Файл большой и «тормозит»

    Базовые способы снизить нагрузку.

  • Обрезать по области интереса (AOI) перед дальнейшими шагами.
  • Создать пирамиды (overviews) для быстрого отображения.
  • Работать с нужными каналами, а не со всем набором.
  • Минимальный чек-лист перед тем, как идти дальше по курсу

  • Вы выбрали источник данных под задачу (Sentinel/Landsat/NASA-продукты).
  • Вы понимаете, что скачали: Level-1 или Level-2, какие каналы, какое разрешение.
  • Вы загрузили данные в QGIS.
  • Вы проверили CRS, размер пикселя, NoData и адекватность визуализации.
  • Дальше в курсе мы будем опираться на этот фундамент и перейдём к подготовке растров (обрезка, перепроекция, выравнивание пиксельной сетки), чтобы корректно сравнивать даты и рассчитывать индексы.

    3. Предобработка снимков: проекции, облака, мозаики, клиппинг

    Предобработка снимков: проекции, облака, мозаики, клиппинг

    В предыдущих статьях мы разобрали, что такое данные ДЗЗ, где их брать и как загрузить в QGIS. Следующий обязательный шаг перед расчётом индексов и любым сравнением дат — предобработка (pre-processing): приведение снимков к сопоставимому виду и удаление типичных источников ошибок.

    В этой теме мы сфокусируемся на четырёх практических блоках, которые встречаются почти в каждом проекте:

  • проекции и система координат (CRS)
  • облака и тени (маскирование)
  • мозаики (склейка нескольких сцен/тайлов)
  • клиппинг (обрезка по области интереса)
  • !Общая логика предобработки перед анализом

    Зачем нужна предобработка и что она исправляет

    Один и тот же участок на двух снимках может выглядеть по-разному не только из-за изменений на местности, но и из-за различий в:

  • системе координат и пиксельной сетке
  • облачности, дыме, тенях
  • покрытии (границы сцен/тайлов)
  • разрешении (10 м vs 20 м vs 30 м)
  • NoData-областях по краям
  • Если пропустить предобработку, типичные последствия такие:

  • индексы и статистика “прыгают” из-за облаков и теней
  • слои плохо совмещаются, и сравнение дат становится некорректным
  • расчёты занимают слишком много времени из-за лишней площади
  • Проекции и CRS: как не испортить анализ

    Что важно понимать про CRS в QGIS

    В QGIS всегда есть как минимум два CRS:

  • CRS проекта — “рабочая” система координат отображения
  • CRS слоя — система координат, в которой реально записан растр
  • QGIS умеет перепроецировать на лету для отображения, но это не означает, что ваши растровые расчёты автоматически станут сопоставимыми.

    Практическое правило:

  • для визуализации допустимо “на лету”
  • для анализа важно, чтобы ключевые растры были в согласованных CRS и имели согласованную пиксельную сетку
  • Официальная документация QGIS:

  • QGIS User Guide: Работа с растровыми данными
  • Как выбрать CRS для анализа

    Чаще всего для локальных задач (город, район, бассейн реки) удобно использовать:

  • UTM-зону вашей территории (метры, адекватные площади и расстояния)
  • Если вы работаете по административным данным (границы, кадастр, региональные слои), иногда разумно принять CRS, который используется в вашей организации/регионе, но важно сохранять логику: все растры для сравнения должны быть приведены к одному CRS.

    Как перепроецировать растр правильно

    В QGIS перепроецирование растра обычно делается через Processing (GDAL).

  • Откройте Processing Toolbox.
  • Найдите алгоритм GDALWarp (reproject).
  • Укажите входной растр.
  • Выберите целевой CRS.
  • Задайте метод ресемплинга (см. следующий раздел).
  • Запустите и сохраните результат как GeoTIFF.
  • Ссылки:

  • QGIS User Guide: Processing
  • GDAL: gdalwarp
  • Ресемплинг: как меняются значения пикселей при перепроекции

    При перепроекции растр “пересаживается” на новую сетку. Для этого выбирается ресемплинг — правило вычисления значений новых пикселей.

    | Метод | Когда использовать | Риск ошибки | |---|---|---| | Nearest neighbour (ближайший) | классы, маски, QA-слои | минимальный для категорий, но картинка “рваная” | | Bilinear (билинейный) | непрерывные величины (отражательность, индексы) | слегка сглаживает | | Cubic (кубический) | визуализация, иногда непрерывные данные | может давать артефакты |

    Практическое правило:

  • для классификаций и масок выбирайте nearest neighbour
  • для отражательности/индексов чаще всего подходит bilinear
  • !Почему выбор ресемплинга влияет на значения пикселей

    Выравнивание пиксельной сетки: скрытая причина “несостыковок”

    Даже если два растра в одном CRS и одном разрешении, они могут иметь разные origin (смещение сетки). Тогда при поэлементных операциях (например, NDVI по двум датам) значения будут сравниваться “не пиксель к пикселю”.

    В практических рабочих процессах это решают так:

  • выбирают один растр как эталон (grid)
  • приводят остальные растры к его сетке через перепроекцию/варп с фиксацией разрешения и границ
  • В QGIS это обычно делается тем же Warp (reproject), но с вниманием к параметрам целевого разрешения и extent.

    Облака и тени: почему их нужно маскировать

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

  • облако часто даёт очень высокую яркость в видимых каналах
  • тень даёт аномально низкие значения
  • тонкая дымка и полупрозрачные облака тоже искажают отражательность
  • Какие маски бывают

    На практике чаще всего встречаются два подхода.

  • Готовые QA/классификационные слои в составе продукта
  • Пороговые маски, которые вы строите сами (для учебных задач или когда QA недоступен)
  • Пример официальной документации по QA в Landsat Collection 2:

  • USGS: Landsat Collection 2 Level-2 Science Products
  • Почему лучше начинать с готовых QA-слоёв

    Готовые маски обычно стабильнее, чем “самодельные пороги”, потому что учитывают больше признаков (включая геометрию, спектральные тесты, иногда дополнительные каналы).

    Практическая стратегия:

  • если у вас есть QA/SCL-подобный слой, используйте его
  • если нет, делайте пороговую маску, но фиксируйте правила и проверяйте визуально
  • Как применить облачную маску в QGIS

    Есть две типовые цели:

  • не показывать облака на карте (визуально)
  • исключить облака из расчётов (аналитически)
  • Для анализа важен второй вариант: облачные пиксели должны стать NoData (или быть исключены логикой вычислений).

    Типовой подход через Raster Calculator:

  • Подготовьте слой-маску, где “хорошие пиксели” = 1, “плохие” = 0 (или наоборот).
  • Рассчитайте новый растр по правилу, например: оставить значения только там, где маска “хорошая”.
  • Назначьте NoData для исключённых областей.
  • Важно:

  • если маска категориальная, при её обработке используйте nearest neighbour
  • проверяйте результат визуально: включайте/выключайте маску поверх композита
  • Клиппинг: обрезаем растр по области интереса

    Клиппинг (clipping) — это обрезка растра до вашей AOI (area of interest): границы города, водосбора, полигона исследования.

    Зачем это делать:

  • меньше данных — быстрее отображение и расчёты
  • проще хранить и организовать проект
  • меньше шансов “захватить” лишние NoData-поля и края сцен
  • Два вида клиппинга

    | Вариант | Что нужно | Когда применять | |---|---|---| | По прямоугольному extent | только рамка | быстрый черновой шаг | | По маске (полигону) | векторная граница | правильный вариант для анализа |

    Клиппинг по маске в QGIS

    Обычно используют GDAL-алгоритм из Processing:

  • Подготовьте полигон AOI (например, GeoPackage-слой с границей).
  • Убедитесь, что AOI корректно лежит поверх растра.
  • Откройте Processing Toolbox.
  • Найдите GDALClip raster by mask layer.
  • Выберите:
  • - входной растр - слой-маску (полигон) - опции сохранения NoData
  • Запустите и сохраните результат.
  • Если AOI в другом CRS, QGIS обычно справится, но для сложных случаев надёжнее привести AOI и растр к одному CRS до клиппинга.

    Мозаики: когда одной сцены недостаточно

    Мозаика нужна, если ваша территория пересекает границы:

  • двух сцен Landsat
  • нескольких тайлов Sentinel-2
  • Два практических варианта: VRT и “настоящая” мозаика

    | Подход | Что получается | Плюсы | Минусы | |---|---|---|---| | Виртуальный растр (VRT) | файл-ссылка на исходники | быстро, не дублирует данные | зависит от доступности исходников и их путей | | Merge в новый GeoTIFF | один физический растр | удобно переносить и архивировать | больше времени и места на диске |

    В QGIS оба подхода доступны через Processing (GDAL).

    Ссылки:

  • GDAL: gdalbuildvrt
  • GDAL: gdal_merge.py
  • На что обратить внимание при мозаике

  • Порядок шагов: часто удобнее сначала клиппить каждый тайл по AOI, а уже потом мозаичить (так быстрее).
  • NoData: задайте корректное значение NoData, чтобы края сцен не “замазывали” данные.
  • Перекрытия: если сцены перекрываются, подумайте, как выбирать пиксели (по времени, по качеству, по маске облаков). В простых учебных задачах часто достаточно обычного merge.
  • Рекомендуемый порядок предобработки для учебных и типовых задач

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

  • Загрузить растр(ы) и проверить метаданные: CRS, разрешение, NoData.
  • Выбрать AOI и подготовить полигон.
  • Оценить облачность и наличие QA/классификационного слоя.
  • Клиппинг каждого входного растра по AOI.
  • Если данных несколько: собрать VRT или сделать merge.
  • Привести данные к единому CRS и пиксельной сетке (если сравниваете даты/источники).
  • Применить облачную маску (или встроить её в дальнейшие расчёты).
  • Важно соблюдать смысл:

  • маски и классы не интерполировать (nearest neighbour)
  • непрерывные величины ресемплировать аккуратно (часто bilinear)
  • Типичные ошибки и как их быстро диагностировать

  • Слои совпали визуально, но расчёты странные: проверьте выравнивание сетки и реальное CRS слоёв, а не CRS проекта.
  • После merge появились “полосы” или “пятна”: проверьте NoData и перекрытия.
  • NDVI “сломался” на облаках: облака не замаскированы, либо маска применена не как NoData.
  • Клиппинг дал пустой результат: AOI не пересекает растр (часто из-за CRS или неверной геометрии полигона).
  • Что дальше по курсу

    После предобработки снимки готовы к тем шагам, ради которых обычно и берут ДЗЗ: расчёт спектральных индексов, сравнение дат, зональная статистика и оформление карт. В следующих темах мы будем опираться на то, что у вас есть чистые, обрезанные, сопоставимые растры.

    4. Визуализация растров: композиты, стили, растяжка, паншарпенинг

    Визуализация растров: композиты, стили, растяжка, паншарпенинг

    После загрузки данных и предобработки (CRS, клиппинг, мозаики, маски облаков) следующий шаг — правильно визуализировать растр в QGIS. Важно разделять две цели:

  • визуальная интерпретация (понять, что на снимке: вода, растительность, застройка, облака, дым)
  • анализ (индексы, классификация, статистика)
  • Большая часть приёмов из этой статьи относится именно к визуализации. Некоторые из них (особенно паншарпенинг и агрессивная растяжка) могут делать картинку «красивее», но менять восприятие яркостей, поэтому их нельзя автоматически считать «улучшением данных для расчётов».

    !Общая логика: от каналов к композиту, растяжке и стилям

    Как QGIS отображает растр и почему снимок часто выглядит «слишком тёмным»

    Спутниковые данные обычно хранят значения не в диапазоне 0–255, как фотография, а в более широких шкалах (например, 0–10000 или float). Поэтому при первом открытии снимок часто выглядит тёмным или «без контраста». Это нормально: QGIS нужно подсказать, как перевести диапазон значений в диапазон яркостей на экране.

    Полезное правило:

  • визуализация — это отображение (рендеринг), оно не обязательно меняет сам файл
  • обработка — это создание нового растра, где значения пикселей реально пересчитаны
  • Официальная справка QGIS по визуализации растра:

  • QGIS User Guide: Raster visualization
  • Режимы символики растра в QGIS

    В QGIS основные способы отображения находятся в Layer PropertiesSymbology.

    Singleband gray

    Один канал показывается как оттенки серого. Это типично для:

  • одного спектрального канала
  • индексов (NDVI и т.п.)
  • цифровых моделей рельефа (DEM)
  • Ключевая настройка здесь — растяжка и выбор диапазона min/max.

    Singleband pseudocolor

    Один канал показывается цветовой шкалой (градиентом или дискретными классами). Это удобно для:

  • NDVI, NDWI и других индексов
  • температуры поверхности
  • интенсивности SAR (как быстрый обзор)
  • Практическая рекомендация: если вы планируете сравнивать карты по датам, фиксируйте одинаковые min/max и одинаковую палитру для всех дат.

    Multiband color

    Классический режим композитов: вы выбираете, какой канал пойдёт в R, G и B. Это основа работы с оптикой.

    Важная деталь: даже правильный композит может выглядеть плохо без растяжки.

    Композиты: как «прочитать» ландшафт разными комбинациями каналов

    Композит — это способ назначить три канала на R, G, B так, чтобы подчеркнуть нужные объекты.

    Естественные цвета и ложные цвета

  • естественные цвета имитируют вид «как глазами»
  • ложные цвета заменяют один или несколько видимых каналов на инфракрасные, чтобы выделить растительность, влажность, пожары
  • Ниже — практичные комбинации для самых частых данных.

    Быстрые комбинации для Sentinel-2

    Обозначения: B02 (Blue), B03 (Green), B04 (Red), B08 (NIR), B11/B12 (SWIR).

    Источник по характеристикам каналов Sentinel-2:

  • Copernicus Sentinel-2 MSI instrument
  • | Задача | R | G | B | Что хорошо видно | |---|---|---|---|---| | Естественные цвета | B04 | B03 | B02 | застройка, почвы, общая картина | | Растительность (ложные цвета) | B08 | B04 | B03 | растительность «светится», проще отличать от почв | | Пожары и гарь (часто полезно) | B12 | B11 | B04 | следы пожаров, сухость, некоторые типы почв |

    Быстрые комбинации для Landsat 8/9

    Обозначения: B2 (Blue), B3 (Green), B4 (Red), B5 (NIR), B6/B7 (SWIR), B8 (Panchromatic).

    Справка USGS по миссии и данным Landsat:

  • USGS: Landsat Missions
  • | Задача | R | G | B | Что хорошо видно | |---|---|---|---|---| | Естественные цвета | B4 | B3 | B2 | общий обзор | | Растительность (ложные цвета) | B5 | B4 | B3 | растительность выделяется лучше | | SWIR-композит (почвы, сухость, гарь) | B7 | B6 | B4 | контрасты по влажности и гарям |

    Как собрать композит в QGIS

  • Выберите слой (или многоканальный GeoTIFF) → Layer Properties.
  • Откройте Symbology.
  • Выберите Multiband color.
  • Назначьте нужные каналы на R, G, B.
  • Настройте растяжку (обычно это самый важный шаг).
  • Растяжка (contrast stretching): главный инструмент «сделать снимок читаемым»

    Растяжка — это правило, по которому QGIS переводит значения пикселей в яркости экрана.

    !Как растяжка по гистограмме повышает контраст

    Что обычно выбирают на практике

    В настройках слоя (в зависимости от версии QGIS) вы увидите варианты вычисления min/max и улучшения контраста. На практике чаще всего используют:

  • растяжку по min/max всего растра
  • обрезку хвостов гистограммы (по сути «процентили», например 2%–98%)
  • Почему обрезка хвостов полезна:

  • единичные очень яркие объекты (облака, снег) и очень тёмные (тени, вода) могут «съесть» контраст для всей сцены
  • если отсечь небольшую долю крайних значений, основная масса пикселей становится различимой
  • Важная ловушка при сравнении дат

    Если для каждого снимка QGIS автоматически подбирает min/max, два изображения разных дат могут выглядеть «одинаково контрастными», даже если физически сцена изменилась.

    Практика для сравнения:

  • фиксируйте одинаковый диапазон min/max для всех дат
  • сохраняйте стиль и применяйте его ко всем слоям
  • Стили: как сохранить настройки и обеспечить одинаковое отображение

    Стиль в QGIS — это сохранённые параметры визуализации слоя (назначение каналов, растяжка, палитры, прозрачность).

    Зачем стили нужны в ДЗЗ

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

    Обычно это делается так:

  • Настройте слой (композит, растяжка, прозрачность).
  • Откройте Layer PropertiesSymbology.
  • Найдите управление стилями (сохранение QML).
  • Примените этот стиль к другому слою через загрузку стиля.
  • Практическая рекомендация: называйте стили по смыслу, например S2_falsecolor_vegetation_2-98.qml.

    Дополнительные приёмы визуализации, которые часто решают проблему «ничего не понятно»

  • Прозрачность NoData: проверьте, что края сцен и вырезанные области действительно прозрачны, иначе они мешают восприятию.
  • Пирамиды (overviews): если растр тяжёлый и тормозит, создайте пирамиды для быстрого отображения.
  • Ресемплинг для отображения: для плавного зума QGIS может использовать билинейный или кубический ресемплинг на экране.
  • Важно не путать:

  • ресемплинг для отображения не меняет файл
  • ресемплинг в обработке (например, при перепроекции) создаёт новый растр и может изменить значения
  • Паншарпенинг: как повысить детализацию изображения для карты

    Паншарпенинг — это способ объединить:

  • панхроматический канал (обычно более высокое пространственное разрешение)
  • мультиспектральные каналы (цвет, но более низкое разрешение)
  • В результате получается цветное изображение с более высокой «детализацией».

    Когда паншарпенинг возможен

  • нужен сенсор, у которого есть панхроматический канал
  • классический пример: Landsat 8/9, где B8 имеет 15 м, а цветные каналы — 30 м
  • Для Sentinel-2 панхроматического канала нет, поэтому «классический паншарпенинг» там обычно не применяют.

    Когда паншарпенинг не стоит делать

  • если вы собираетесь считать индексы и сравнивать значения пикселей
  • Паншарпенинг встраивает пространственные детали пан-канала в цветные каналы, и спектральные значения могут искажаться. Поэтому паншарпенинг — в первую очередь приём для картографической визуализации.

    Как сделать паншарпенинг в QGIS через GDAL

    В QGIS это обычно делается через Processing Toolbox с инструментом GDAL для паншарпенинга.

    Справка GDAL:

  • GDAL: gdal_pansharpen
  • Типовой порядок:

  • Подготовьте данные: клиппинг по AOI и проверка CRS (лучше до паншарпенинга).
  • Если мультиспектральные каналы лежат отдельными файлами, соберите их в стек (удобнее для передачи в инструмент).
  • Запустите паншарпенинг:
  • - Panchromatic band: пан-канал (например, Landsat B8) - Spectral bands: каналы для цвета (например, B4/B3/B2) - выберите метод (часто встречаются Brovey, IHS, Gram-Schmidt)
  • Оцените результат визуально на контрастных границах (дороги, здания) и на однородных поверхностях (поля, вода).
  • Практическая рекомендация: храните паншарпененный продукт отдельно и явно помечайте, что он предназначен для визуализации.

    Мини-чек-лист перед тем, как идти в индексы и анализ

  • композит собран с правильными каналами
  • растяжка осмысленная (часто 2%–98% или фиксированные min/max)
  • стили сохранены и применены одинаково для серий снимков
  • паншарпенинг используется только там, где цель — визуальная карта, а не расчёты
  • В следующей части курса на основе корректной визуализации обычно проще контролировать качество анализа: вы быстрее замечаете облака, тени, ошибки клиппинга и несостыковки сетки ещё до того, как они попадут в индексы и статистику.

    5. Спектральные индексы и растровая алгебра (NDVI, NDWI и др.)

    Спектральные индексы и растровая алгебра (NDVI, NDWI и др.)

    После того как вы нашли данные, загрузили их в QGIS, выполнили предобработку (CRS, клиппинг, мозаика, маска облаков) и настроили визуализацию (композиты и растяжка), наступает ключевой шаг анализа: превратить каналы в измеримые показатели, которые можно сравнивать между датами и территориями. Для этого в ДЗЗ используют спектральные индексы и, шире, растровую алгебру.

    !Как отдельные спектральные каналы превращаются в индексы через растровую алгебру

    Что такое спектральный индекс

    Спектральный индекс — это новое растровое значение, вычисленное из нескольких каналов (bands) по формуле. Идея простая:

  • разные поверхности (растительность, вода, почва, гарь) отражают свет по-разному в разных диапазонах;
  • если правильно сравнить два диапазона, можно получить показатель, который хорошо отделяет нужный тип объектов.
  • Большинство популярных индексов — это нормализованные разности. Они специально устроены так, чтобы быть менее чувствительными к общему уровню освещённости и частично упрощать сравнение.

    Растровая алгебра: базовая логика

    Растровая алгебра — это операции над пикселями: QGIS берёт значения одного или нескольких растров в одной и той же точке (в одном и том же пикселе) и вычисляет новое значение.

    Типовые операции:

  • арифметика: +, -, *, /;
  • функции: if(), abs(), min(), max();
  • сравнения: >, <, = для построения масок.
  • Критически важно: чтобы операции были корректны, растры должны быть сопоставимы.

    Что нужно подготовить перед расчётом индексов

    Из предыдущей темы про предобработку следует практический чек-лист именно для индексов:

  • одинаковая проекция (CRS) для растров, которые участвуют в формуле;
  • одинаковое разрешение (например, все 10 м или все 30 м);
  • выравнивание пиксельной сетки (чтобы пиксель к пикселю реально совпадал);
  • облака и тени исключены из анализа (лучше как NoData, а не как «0»).
  • Если эти условия не соблюдены, индекс может считаться, но значения будут смешивать разные участки местности.

    NDVI: индекс растительности

    Смысл

    Здоровая растительность обычно:

  • относительно сильно поглощает красный свет (Red) из-за хлорофилла;
  • относительно сильно отражает ближний инфракрасный (NIR) из-за структуры листа.
  • Поэтому сравнение NIR и Red хорошо выделяет растительность.

    Формула

    Разбор формулы:

  • — значение пикселя в ближнем ИК-канале;
  • — значение пикселя в красном канале;
  • (числитель) — показывает, насколько NIR больше Red;
  • (знаменатель) — нормализует разность, чтобы индекс стал более сопоставимым;
  • итоговый NDVI обычно лежит в диапазоне примерно от до .
  • Практическая интерпретация (очень общая, зависит от сезона и региона):

  • значения около – часто соответствуют плотной зелёной растительности;
  • около – — разреженная растительность, поля, кустарник;
  • около — голая почва, застройка (но бывают исключения);
  • отрицательные значения часто связаны с водой, облаками, тенями или снегом.
  • NDWI: индекс воды (и влажности)

    Под названием NDWI часто встречаются две разные формулы, и важно не перепутать, какую именно вы используете.

    NDWI для выделения открытой воды (McFeeters)

    Разбор:

  • — зелёный канал;
  • — ближний ИК;
  • вода обычно сильнее «проваливается» в NIR, поэтому разность помогает её отделить.
  • NDWI для оценки водного стресса растительности (Gao, часто называют NDMI)

    Разбор:

  • — коротковолновый ИК;
  • SWIR чувствителен к влажности: при уменьшении влаги отражение в SWIR часто меняется сильнее.
  • Практическое правило:

  • если цель — вода как объект (реки, озёра, затопления), чаще используют ;
  • если цель — влажность растительности и почвы, часто используют .
  • Другие полезные индексы, которые часто делают в QGIS

    NBR: следы пожаров и гарь

    Где — «дальний» SWIR-канал (у многих сенсоров это отдельный канал, отличающийся от SWIR1).

    Идея: после пожара уменьшается вклад растительности (NIR падает), а характеристики поверхности в SWIR меняются, что даёт хороший контраст.

    NDBI: застройка (упрощённо)

    Это не «магический детектор городов», но как быстрый обзорный признак иногда полезен.

    > Индексы не заменяют классификацию и не гарантируют идеального разделения классов. Они дают признак, который удобно картировать и анализировать.

    Какие каналы брать: подсказка для Sentinel-2 и Landsat 8/9

    Перед расчётами убедитесь, что вы используете правильные каналы именно вашего сенсора.

    Полезные официальные справки:

  • Описание каналов Sentinel-2 MSI
  • Обзор миссий Landsat
  • Быстрая таблица соответствий

    | Индекс | Sentinel-2 (часто) | Landsat 8/9 (часто) | |---|---|---| | NDVI | = B08, = B04 | = B5, = B4 | | | = B03, = B08 | = B3, = B5 | | NDMI | = B08, = B11 | = B5, = B6 | | NBR | = B08, = B12 | = B5, = B7 |

    Важно про Sentinel-2:

  • некоторые каналы имеют разрешение 20 м (например, B11, B12), а B08 и B04 — 10 м;
  • перед индексами типа NDMI/NBR обычно нужно привести каналы к одному разрешению и сетке (это часть предобработки).
  • Как посчитать индекс в QGIS через Raster Calculator

    В QGIS индексы чаще всего считают алгоритмом Raster calculator.

    Документация:

  • QGIS Processing: Raster calculator
  • Пример: NDVI

  • Убедитесь, что у вас загружены два растра (или два канала): NIR и Red.
  • Откройте Processing ToolboxRaster analysisRaster calculator.
  • В выражении используйте имена слоёв и номер band, обычно в виде "слой@1".
  • Введите формулу NDVI (пример, где B08 — NIR, B04 — Red):
  • Выберите выходной формат и тип данных. Практично задавать Float32, потому что индекс дробный.
  • Сохраните результат в GeoTIFF.
  • Как правильно обработать NoData и облачную маску

    Если у вас есть маска «хороших пикселей» (например, 1 = хорошо, 0 = плохо), лучше сделать так, чтобы плохие пиксели стали NoData. Тогда они не будут портить статистику.

    Типовая логика:

    Смысл:

  • if(условие, значение_если_да, значение_если_нет);
  • NULL в результате обычно означает NoData в выходном растре.
  • Если вы пропустите этот шаг, облака и тени могут дать «реальные числа», но физически бессмысленные для индекса.

    Важные практические детали: почему индекс может «получиться», но быть неправильным

    Разные шкалы значений (масштабирование)

    Многие продукты поставляются со масштабированными значениями (например, отражательная способность умножена на 10000). Для NDVI и большинства нормализованных индексов это обычно не проблема, потому что множитель сокращается в дроби.

    Но есть нюансы:

  • если вы делаете пороговые маски (например, «NDVI > 0.4»), убедитесь, что это действительно NDVI, а не «псевдо-NDVI» из неправильных входных данных;
  • если вы используете не нормализованные показатели (например, простые разности), масштабирование уже важно.
  • Деление на ноль и «шумы» на краях

    В индексах есть знаменатель (например, ). Если оба канала близки к нулю (или это NoData, записанный как 0), можно получить артефакты.

    Практические меры:

  • корректно задавайте NoData до расчётов;
  • при необходимости добавляйте условие, что знаменатель не равен нулю.
  • Индекс — это признак, а не готовый класс

    Примеры типичных ловушек:

  • вода не всегда «идеально отрицательная» в NDVI (мутность, взвесь, водоросли);
  • тени могут имитировать воду в некоторых индексах;
  • влажная почва может выглядеть «похожей на воду» по NDWI;
  • плотная растительность может «насыщать» NDVI, и различия между «очень зелёным» и «ещё зеленее» будут плохо видны.
  • Поэтому индексы лучше интерпретировать вместе с композитами из предыдущей темы и с масками облаков.

    Как визуализировать индекс правильно

    Индекс — это один канал, поэтому обычно используют:

  • Singleband pseudocolor для карты значений;
  • фиксированные min/max, если вы сравниваете даты;
  • сохранение стиля (QML), чтобы одинаково отображать серию индексов.
  • !Пример понятных цветовых шкал и важность фиксированного диапазона

    Мини-чек-лист перед тем, как перейти к анализу и статистике

  • вы знаете, какие именно формулы индексов используете и почему;
  • каналы приведены к одной сетке, CRS и разрешению;
  • облака и тени исключены (как NoData);
  • индекс сохранён в типе данных с дробями (обычно Float32);
  • стиль индекса фиксирован, если планируется сравнение дат.
  • Дальше по курсу на базе индексов и растровой алгебры обычно делают зональную статистику, классификацию и анализ изменений во времени — то есть переходят от «картинки» к измеримым выводам.

    6. Классификация и выделение объектов: пороги, обучение, точность

    Классификация и выделение объектов: пороги, обучение, точность

    После визуализации и расчёта индексов (NDVI, NDWI и др.) следующий логичный шаг в ДЗЗ — превратить непрерывные значения пикселей в объекты или классы: вода/не вода, лес/поля/застройка, гарь/не гарь. Это и есть выделение объектов и классификация.

    В QGIS это можно делать тремя основными подходами:

  • Пороговое выделение (правила и пороги по каналам/индексам)
  • Классификация с обучением (supervised): вы задаёте примеры классов, алгоритм учится
  • Оценка точности: проверка результата на независимых данных, чтобы понимать, насколько карта надёжна
  • !Общая логика: от подготовленных растров к классификации и оценке качества

    Что именно мы называем классификацией

    Классификация — это создание нового растрового слоя, где каждое значение пикселя означает класс.

  • исходные растры: отражательная способность по каналам, индексы, текстурные признаки
  • результат: классы, например 1 = вода, 2 = растительность, 3 = голая почва, 4 = застройка
  • Отдельный частый случай — бинарная маска: 1 = объект есть, 0 = объекта нет (например, вода/не вода).

    Подготовка данных перед классификацией

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

  • Все входные растры должны быть в согласованном CRS и иметь согласованную пиксельную сетку.
  • Разрешение должно быть одинаковым для всех признаков, участвующих в классификации.
  • Облака и тени должны быть исключены из анализа (лучше как NoData).
  • AOI (область интереса) должна быть применена клиппингом, чтобы не классифицировать лишнее.
  • Если вы используете каналы Sentinel-2 разных разрешений (10 м и 20 м), сначала приводите их к одному разрешению и сетке, и только потом считаете индексы/классификацию.

    Пороговое выделение объектов

    Пороговый подход — это набор правил вида «если NDVI больше X, то это растительность». Он хорош, когда:

  • объект контрастен (например, открытая вода по )
  • вам нужна простая и объяснимая логика
  • вы делаете быстрый прототип
  • Пример: выделение растительности по NDVI

    Типовой принцип:

  • пиксели с высоким NDVI считаем растительностью
  • пиксели с низким NDVI — нет
  • В QGIS это делается через Raster calculator.

    Ссылка на справку:

  • QGIS: Raster calculator
  • Пример выражения (маска растительности 1/0):

    Что здесь означает каждое значение:

  • "NDVI@1" — первый канал растра NDVI
  • 0.4 — порог, который вы выбираете под регион и сезон
  • 1 — класс растительность
  • 0 — класс не растительность
  • Как выбирать пороги разумно

    Порог почти никогда не бывает «универсальным». Надёжный практический способ:

  • Откройте композит (например, ложные цвета с NIR), чтобы визуально видеть объект.
  • Откройте NDVI/NDWI и включите инструмент Identify по точкам разных типов поверхности.
  • Соберите несколько десятков значений по каждому типу.
  • Выберите порог так, чтобы минимизировать очевидные ошибки.
  • Сложные пороги: несколько условий

    Иногда одного индекса недостаточно. Например, тени могут «похожи» на воду в некоторых индексах. Тогда добавляют дополнительные условия.

    Пример логики вода, но не тень, где используются и яркость в зелёном канале:

    Здесь смысл такой:

  • "NDWI@1" > 0.2 пытается выделить воду
  • "GREEN@1" > 500 отсекает часть очень тёмных пикселей, которые могут быть тенями
  • Пороговые правила нужно обязательно проверять на нескольких участках AOI.

    Превращаем маску в карту классов

    Если у вас несколько масок, вы можете собрать итоговый растр классов (примерная идея):

  • 1 = вода
  • 2 = растительность
  • 3 = прочее
  • Тогда выражение будет задавать приоритеты, например сначала вода, затем растительность.

    Классификация с обучением

    Обучаемая классификация (supervised classification) — это когда вы создаёте обучающие примеры классов, а алгоритм сам строит правило разделения.

    Она обычно даёт лучший результат, чем пороги, когда:

  • классы спектрально похожи (застройка vs голая почва)
  • нужна многоклассовая карта
  • есть сезонные эффекты и вариативность ландшафта
  • > «All models are wrong, but some are useful.» — George E. P. Box, цитата приведена на странице Wikiquote: George E. P. Box

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

    Термины без которых не обойтись

  • Признаки: то, по чему алгоритм различает классы (каналы, индексы, текстуры)
  • Обучающая выборка: полигоны/точки с правильными классами, на которых учится модель
  • Валидационная (контрольная) выборка: независимые данные для проверки точности
  • Модель: результат обучения (например, Random Forest)
  • Какие признаки использовать

    На практике часто начинают с простого набора:

  • каналы видимого диапазона
  • NIR и SWIR (если есть и приведены к одному разрешению)
  • индексы NDVI, , NDMI, NBR
  • Важно: если вы используете несколько растров, они должны быть выровнены по сетке, иначе обучающие примеры будут «считывать» разные пиксели из разных слоёв.

    Обучающие полигоны: как собирать, чтобы не испортить результат

    Обучающая выборка должна быть:

  • репрезентативной (покрывать разные варианты класса: освещённые/в тени, разные типы растительности)
  • чистой (внутри полигона не смешивать классы)
  • пространственно распределённой (не только в одном месте)
  • Типичная ошибка — рисовать один большой полигон на «идеальном участке». Тогда модель учится на частном случае и плохо переносится на всю территорию.

    Инструменты в QGIS

    Есть два распространённых пути.

  • Semi-Automatic Classification Plugin (SCP): удобный интерфейс для обучения и классификации, включая работу с наборами снимков.
  • Processing Toolbox + Orfeo Toolbox (OTB): более «инженерный» путь через алгоритмы обучения и применения модели.
  • Ссылки:

  • Документация Semi-Automatic Classification Plugin
  • OTB: TrainImagesClassifier
  • OTB: ImageClassifier
  • Общая логика обучения и применения

  • Соберите стек признаков.
  • Создайте обучающие полигоны/точки и присвойте им поле класса.
  • Разделите данные на обучение и проверку.
  • Обучите модель.
  • Примените модель к изображению и получите растр классов.
  • Проверьте результат и точность, затем выполните постобработку.
  • Постобработка результата классификации

    Даже хорошая классификация часто даёт шум: одиночные пиксели и «соль-перец».

    Типовые меры:

  • фильтрация (например, большинство в окрестности)
  • удаление мелких пятен (порог по площади)
  • применение масок (например, исключить облака, воду, NoData)
  • Важно: постобработка улучшает картографический вид, но может менять статистику классов. Если вам важны площади, фиксируйте правила постобработки и применяйте их одинаково.

    Оценка точности: как понять, можно ли доверять карте

    Оценка точности отвечает на вопрос: насколько часто модель угадала класс там, где мы знаем правду.

    Контрольные данные

    Контрольные точки/полигоны могут быть получены из:

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

    Матрица ошибок (confusion matrix)

    Матрица ошибок — это таблица, где сравнивается истинный класс и предсказанный класс.

    !Иллюстрация: как устроена матрица ошибок и где находятся правильные ответы

    Из матрицы получают несколько показателей.

    Общая точность

    Общая точность показывает долю правильно классифицированных контрольных объектов.

    Формула:

    Пояснение каждого элемента:

  • — общая точность
  • — сумма значений на диагонали матрицы ошибок (это случаи, где истинный класс совпал с предсказанным)
  • — общее число контрольных точек (или пикселей), по которым вы считали матрицу
  • Точность производителя и пользователя

    Эти показатели помогают понять, какие классы путаются.

  • Точность производителя (Producer’s accuracy) для класса: какая доля объектов этого истинного класса была правильно найдена.
  • Точность пользователя (User’s accuracy) для класса: какая доля пикселей, отнесённых моделью к классу, действительно является этим классом.
  • Если объяснять без формул:

  • точность производителя падает, когда модель пропускает объекты класса
  • точность пользователя падает, когда модель подмешивает чужие объекты в класс
  • Как посчитать матрицу ошибок в QGIS/OTB

    Один из вариантов — использовать OTB.

    Ссылка:

  • OTB: ComputeConfusionMatrix
  • Общий смысл процедуры:

  • Иметь векторный слой контрольных точек с полем истинного класса.
  • Извлечь для них предсказанный класс из растра классификации.
  • Построить матрицу ошибок и метрики.
  • Типичные причины ошибок классификации

  • Смешанные пиксели: один пиксель содержит несколько типов поверхности (часто на границах объектов).
  • Несовпадение сетки и разрешения между признаками.
  • Облака, тени, дым не исключены из анализа.
  • Дисбаланс классов: одного класса много, другого мало, и модель «учится игнорировать редкий класс».
  • Переобучение: модель хорошо работает на обучении, но плохо на новых участках.
  • Практический выбор подхода

    | Задача | Хороший старт | Почему | |---|---|---| | Быстро выделить воду/снег/гарь | Пороги по индексу + проверка | Быстро, объяснимо, часто работает | | Нужно 3–8 классов земного покрова | Обучаемая классификация | Пороги становятся сложными и хрупкими | | Нужно сравнивать по датам | Фиксированные признаки + строгая оценка точности | Иначе изменения могут быть эффектом условий съёмки |

    Что дальше

    После того как у вас есть растр индекса и растр классов, следующий шаг анализа обычно такой:

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

    7. Анализ изменений и выпуск карт: сравнение дат, макеты, экспорт

    Анализ изменений и выпуск карт: сравнение дат, макеты, экспорт

    В предыдущих темах вы научились находить и загружать данные, делать предобработку (CRS, клиппинг, мозаики, маски облаков), визуализировать композиты и считать индексы (NDVI, NDWI и др.), а также выполнять классификацию и оценивать точность. Теперь мы соберём это в завершённый рабочий процесс: сравнение дат, анализ изменений и выпуск карты как итогового продукта.

    !Общая карта процесса от двух дат до отчётной карты и файлов

    Что значит "анализ изменений" в ДЗЗ

    Под изменениями обычно понимают разницу между состоянием территории в две даты (или в ряд дат). В QGIS это чаще всего делается на двух уровнях:

  • изменение непрерывного показателя (например, NDVI стал ниже)
  • изменение класса (например, пиксель перешёл из "растительность" в "голая почва")
  • Ключевая идея: сравнивать можно только сопоставимые данные. Всё, что вы делали в предобработке (единый CRS, одно разрешение, выравнивание сетки, маска облаков как NoData), здесь становится критичным.

    Подготовка двух дат к честному сравнению

    Перед любыми расчётами убедитесь, что выполнены условия сопоставимости.

  • Оба растра обрезаны по одной и той же AOI.
  • Облака и тени исключены как NoData.
  • CRS одинаковый.
  • Разрешение одинаковое.
  • Пиксельная сетка выровнена (пиксель к пикселю).
  • Практическая проверка в QGIS:

  • Откройте свойства обоих слоёв → Information и сравните CRS и размер пикселя.
  • Включите поочерёдно два слоя и проверьте визуально, что границы объектов не "двоятся".
  • Если сомневаетесь в выравнивании сетки, перепроецируйте один растр через GDALWarp (reproject), используя второй как ориентир по разрешению и охвату.
  • Документация QGIS по обработке через Processing:

  • Руководство QGIS: Processing
  • Сравнение индексов по двум датам

    Разностная карта: самый понятный старт

    Если вы уже посчитали, например, NDVI на две даты (t1 и t2), базовый продукт изменений — разность:

    Пояснение элементов формулы:

  • — растр изменений NDVI.
  • — NDVI в более раннюю дату.
  • — NDVI в более позднюю дату.
  • Знак минус означает, что мы для каждого пикселя вычитаем значение t1 из значения t2.
  • Интерпретация результата обычно такая:

  • положительные значения: NDVI вырос (условно, растительность усилилась)
  • отрицательные значения: NDVI снизился (условно, деградация/уборка/пожар/сезонный спад)
  • около нуля: заметных изменений нет
  • Как посчитать разность в QGIS

    Используйте Processing ToolboxRaster analysisRaster calculator.

    Пример выражения:

    Практические настройки:

  • тип выхода: Float32
  • NoData: убедитесь, что облака остались NoData и в выходе
  • Документация по алгоритму:

  • Руководство QGIS: Raster calculator
  • Пороговые зоны изменений

    Разность часто переводят в категории, чтобы проще считать площади и строить легенду, например:

  • сильное снижение
  • умеренное снижение
  • без изменений
  • умеренный рост
  • сильный рост
  • Это делается либо стилем (дискретная палитра), либо созданием нового категориального растра в Raster calculator через if().

    Важно: пороги нельзя брать "наугад". Их обычно подбирают по:

  • сезонности (сравнивайте одинаковые сезоны)
  • статистике значений разности (гистограмма)
  • визуальной проверке на контрольных участках
  • Сравнение классификаций: карта переходов между классами

    Если у вас есть классификация для t1 и t2 (например, 1=вода, 2=растительность, 3=прочее), вы можете построить карту переходов.

    Два простых продукта

  • карта "изменилось/не изменилось": где класс стал другим
  • карта направлений переходов: что во что перешло (например, растительность → прочее)
  • Как сделать карту "изменилось/не изменилось"

    В Raster calculator логика такая: если классы равны, 0, иначе 1.

    Этот слой удобно использовать как маску изменений и как быстрый показатель доли изменившейся площади.

    Как закодировать переходы

    Чтобы различать направления перехода, часто кодируют пару (t1, t2) в одно число:

  • результат = t1 * 10 + t2 (если классы однозначные и их меньше 10)
  • Пример:

  • 23 означает переход 2 → 3
  • 11 означает без изменения (1 → 1)
  • В Raster calculator:

    Дальше вы задаёте дискретный стиль под нужные коды.

    Количественные итоги: площади и статистика изменений

    Карта изменений сама по себе полезна, но в отчётах почти всегда нужны числа.

    Самое частое: площадь классов и площадь изменений

    Логика расчёта в общем виде:

  • Посчитать число пикселей каждого класса (или каждого перехода).
  • Перевести пиксели в площадь через площадь пикселя.
  • Если у вас размер пикселя метров, то площадь пикселя равна (в квадратных метрах). Например, для 10 м это 100 м².

    На практике удобнее получать площади через инструменты зональной статистики или через перевод растра в полигоны для небольших AOI.

    Зональная статистика по полигонам

    Если вам нужно сравнить изменения по административным районам, водосборам или любым зонам, используйте зональную статистику: среднее/медиана , доля изменившихся пикселей, площади по классам.

    Полезные инструменты в QGIS обычно ищут по слову zonal в Processing.

    Документация QGIS по растровому анализу и обработке:

  • Руководство QGIS: Работа с растрами
  • Визуальное сравнение дат в проекте

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

    Полезные приёмы:

  • фиксируйте одинаковые диапазоны min/max и палитры для индексов на обе даты
  • сохраняйте стиль (QML) и применяйте к другим датам
  • используйте ползунок прозрачности верхнего слоя для "мигания" между датами
  • Если вы работаете с временным рядом, в QGIS есть поддержка времени для слоёв и панель управления временной навигацией.

    Документация:

  • Руководство QGIS: Темпоральный контроль
  • Макет карты: как превратить анализ в отчётный продукт

    Выпуск карты — это не украшение, а способ сделать результат читаемым, проверяемым и воспроизводимым.

    Документация QGIS по макетам:

  • Руководство QGIS: Макеты печати
  • !Из чего должен состоять корректный макет итоговой карты

    Минимальный набор элементов макета

  • заголовок, который отвечает что, где и когда (например, "Изменение NDVI, май 2022 → май 2024")
  • основной фрейм карты
  • легенда (для классов или шкалы индекса)
  • масштабная линейка
  • источник данных и метод (например, "Sentinel-2 L2A, облака исключены, ")
  • система координат (например, EPSG-код)
  • дата создания карты и автор
  • Частые ошибки в макетах для ДЗЗ

  • автоматическая растяжка на каждой дате без фиксации диапазона
  • легенда не объясняет пороги (например, что такое "сильное снижение")
  • нет указания дат снимков и источника данных
  • отсутствие информации о маске облаков и ограничениях (например, сезонность)
  • Практика: как обеспечить одинаковую легенду для серии карт

  • Для индекса и -карты задайте фиксированные min/max и одинаковую палитру.
  • Сохраните стиль слоя в QML.
  • Применяйте стиль к новым датам и новым AOI.
  • Экспорт результатов: что и в каком формате отдавать

    Обычно у вас есть два типа результатов:

  • картографический продукт (для отчёта): PDF/PNG
  • аналитический продукт (для дальнейшей работы): GeoTIFF/GeoPackage
  • Экспорт карты из макета

    В Layout доступны:

  • экспорт в PDF (удобно для отчётов и печати)
  • экспорт в PNG/JPEG (удобно для презентаций)
  • Практические настройки:

  • выбирайте достаточное разрешение для растрового экспорта (часто 300 dpi для печати)
  • проверяйте, что шрифты читаемы и легенда не обрезана
  • Экспорт растров анализа

    Рекомендации по форматам:

  • GeoTIFF для индексов, разностей и классификаций
  • включайте сжатие, если файл большой (например, LZW)
  • для публикации и облачного использования рассмотрите Cloud Optimized GeoTIFF
  • Справка GDAL по COG:

  • GDAL: Cloud Optimized GeoTIFF
  • Экспорт векторов (AOI, зоны, контрольные точки)

    На практике удобнее всего хранить всё в одном контейнере:

  • GeoPackage (один файл, много слоёв)
  • Документация OGC по GeoPackage:

  • OGC GeoPackage Standard
  • Чек-лист воспроизводимости перед сдачей результата

  • указаны источник данных, уровень продукта и даты
  • описаны ключевые шаги предобработки (AOI, облака, CRS, выравнивание)
  • стили индексов и разностей фиксированы (сохранены QML)
  • рассчитаны и проверены численные итоги (площади, статистика)
  • макет содержит легенду, масштаб, CRS, источники и ограничения
  • Как эта тема замыкает курс

    В этом курсе вы прошли путь от снимков к анализу и карте:

  • загрузка и понимание данных
  • предобработка для сопоставимости
  • визуализация и индексы
  • классификация и оценка точности
  • анализ изменений и выпуск отчётных материалов
  • Дальше этот каркас легко расширять: добавлять временные ряды, более продвинутую классификацию, автоматизацию через модели Processing и единые шаблоны оформления под организационные стандарты.