Как собрать и показать снимок Landsat из отдельных каналов в QGIS

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/qgis-landsat-merge.html


Собираем Landsat из отдельных файлов-каналов.

Эта статья — пособие для новичков в ГИС, объясняющая как решить данную конкретную задачу. Подразумевается что QGIS у читателя уже установлена, если это не так — установите её используя инструкцию.

Также предполагается, что вы знаете как доставать данные Landsat из архива Glovis. Если это не так — ознакомьтесь со статьей «Получение бесплатных космических снимков Landsat TM, ETM+ через Glovis».

Если вы хотите потренироваться в создании снимка из отдельных каналов, то можно использовать этот архив (полная сцена 170/28, 7 каналов, формат TIF, UTM zone 38, Калмыкия, оригинал с Glovis).

Подготовка

Для работы нам необходимо расширение GDALTools, которое входит в состав QGIS начиная с версии 1.5.0. Проверить, установлено ли оно можно вызвав «Менеджер модулей» из меню «Модули → Управление модулями» и поискав расширение там. Если расширение есть и не активно, необходимо его включить.

Qgis-landsat-merge-01.png

Если расширения нет в списке доступных, необходимо его установить. Для этого:

  1. Откройте «Установщик модулей» (в меню «Модули → Загрузить модули»)
  2. В окне установщика выберите вкладку «Репозитории» и проверьте подключен ли репозиторий «Faunalia Repository». Если репозиторий подключен переходим к пункту 5.
  3. Если нет, нажимаем кнопку «Добавить сторонние репозитории», читаем и принимаем к сведению предупреждение.
  4. Переходим на вкладку «Параметры» и в группе «Разрешённые модули» выставляем переключатель в положение «Показывать все модули, кроме помеченных как экспериментальные»
  5. Переходим на вкладку «Модули» и при помощи фильтра или используя полосу прокрутки находим в списке GDALTools, выделяем его и нажимаем «Установить модуль»
  6. После загрузки модуля он будет автоматически активирован.

Установленный и активированный модуль создает еще один пункт в главном меню QGIS (если он отсутствует) — «Растр». Или добавляет свои инструменты в существующее меню.

Qgis-landsat-merge-02.png

Собираем растр из каналов

Итак, у нас имеется снимок Landsat в виде растров, представляющих отдельные каналы изображения, всего 7 файлов. Нам же необходимо получить один файл с 7 каналами.

Чтобы было удобнее работать, все 7 файлов складываем в одну папку. Набор файлов может выглядеть следующим образом, в зависимости от того, какой это Landsat, может добавляться еще файл _B80 значительно большего размера.

Qgis-landsat-merge-09.png

Открываем меню «Растр» и выбираем пункт «Объединение». Начинаем заполнять поля диалога:

  • в поле «Исходные файлы» через запятую указываются полные имена файлов-каналов. Так как все растры у нас лежат в одной папке, можно поступить проще: нажать «Выбрать...» и выделить все файлы, нажав Shift. Примечание: Если указываются не все файлы (например исключается 6 канал, что обычно делается так как он тепловой), то необходимо выбрать файлы с первого по последний зажав Ctrl.
  • в поле «Целевой файл» указываем полный путь к результирующему файлу. Как и в предыдущем случае, кнопка «Выбрать...» облегчает эту задачу. Примечание: сохранить результат можно в любой, поддерживаемый GDAL, формат. Выбрать формат можно при помощи выпадающего списка «Типы файлов». Обычный формат для такого случая GeoTIFF. Имя файлу лучше давать осмысленное, например для случая выше: 170028_070521, первые цифры обозначают номенклатуру снимка в системе WRS-2, последние 6 — дату в формате ГГММДД.
  • так как нам нужен растр с 7 каналами, ставим флажок «Склеить поканально». Если не поставить его, то получим одноканальный растр.
  • если полученный растр нужно использовать в дальнейшей работе, можно установить флажок «Добавить результат на карту»

Отдельно стоит сказать о группе «Параметры создания». С ее помощью можно выполнить «тонкую» настройку создаваемого файла, например, включить использование сжатия, генерацию world-файла и др. У каждого формата свой набор возможных параметров, ознакомиться с ними можно на странице описания формата (список форматов).

Например, для формата TIFF можно установить следующие параметры: COMPRESS=LZW, TILED=YES, TFW=YES и BIGTIFF=IF_NEEDED. Этим мы включим сжатие результата алгоритмом Лемпеля — Зива — Велча (Lempel-Ziv-Welch), создадим world-файл, при необходимости будет задействован режим BIGTIFF, а сам растр будет создан с разбивкой на тайлы, что в некоторых случаях повышает скорость загрузки и отрисовки.

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

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

Qgis-landsat-merge-03.png

После того как все необходимые поля заполнены нажимаем OK и ждем окончания процесса.

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


Собираем растр из каналов виртуально

Первый способ сборки растра физически объединяет все файлы. Если файлов много и они большого размера (например, наборы Landsat 8 имеют 10 каналов по 112 Мбайт каждый и панхроматический канал "весом" 450 Мбайт), результирующий файл может выйти за ограничения формата Tiff по размеру. В таком случае может быть полезен способ "виртуального" объединения каналов: создание виртуального растра (GDAL Virtual Format).

Итак, меню "Растр" - "Создать виртуальный растр (каталог)".

Диалог настройки очень похож на предыдущий:

GDAL VRT.png

Точно также выбираем исходные каналы, результирующий файл (это будет файл с расширением *.vrt и структурой обычного XML), значение "нет данных" (0), "сохранять в каналах" (ключ -separate, иначе получится одноканальный растр).

Пункт "Разрешение" отвечает за разрешение нашего виртуального растра: исходные файлы могут быть разного размера. Например, при выборе "максимальное" результирующий растр будет иметь разрешение, соответствующее максимальному разрешению из набора исходных файлов.

После нажатия "ОК" создается *.vrt файл, с которым можно работать точно так же, как с любым обычным растром. Операций с самими растрами не производится. Пример файла *.vrt (11 каналов Landsat 8)

Настройка отображения растра

Результатом предыдущей операции был новый файл и теперь мы хотим на него посмотреть.

По умолчанию растр загружается с использованием стандартной комбинации каналов 1-2-3, что не всегда удобно. Изменить комбинацию каналов и некоторые другие параметры отображения растра можно в диалоговом окне «Свойства слоя» (вызывается из контекстного меню слоя, по правой кнопке мыши, пункт «Свойства»).

Комбинация каналов и алгоритм улучшения контраста настраиваются на вкладке «Стиль».

Qgis-landsat-merge-04.png

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

Комбинация каналов 1-2-3, улучшение контраста не используется
Комбинация каналов 5-4-3, растяжение до мин/макс + стандартное отклонение 2.0

В этом же окне, на вкладке «Прозрачность» можно указать какое значение растра используется как NODATA. В нашем примере черные области вокруг растра имеют значение 0 (ноль), поэтому чтобы убрать их мы установили 0 в качестве значения «нет данных»

Qgis-landsat-merge-07.png

Результат применения этой настройки ниже.

Qgis-landsat-merge-08.png

Если вы хотите потренироваться в создании снимка из отдельных каналов, то можно использовать этот архив (полная сценаа 170/28, 7 каналов, формат TIF, UTM zone 38, Калмыкия, оригинал с Glovis).

Ссылки по теме