Как собрать и показать снимок Landsat из отдельных каналов в QGIS
по адресу 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. Проверить, установлено ли оно можно вызвав «Менеджер модулей» из меню «Модули → Управление модулями» и поискав расширение там. Если расширение есть и не активно, необходимо его включить.
Если расширения нет в списке доступных, необходимо его установить. Для этого:
- Откройте «Установщик модулей» (в меню «Модули → Загрузить модули»)
- В окне установщика выберите вкладку «Репозитории» и проверьте подключен ли репозиторий «Faunalia Repository». Если репозиторий подключен переходим к пункту 5.
- Если нет, нажимаем кнопку «Добавить сторонние репозитории», читаем и принимаем к сведению предупреждение.
- Переходим на вкладку «Параметры» и в группе «Разрешённые модули» выставляем переключатель в положение «Показывать все модули, кроме помеченных как экспериментальные»
- Переходим на вкладку «Модули» и при помощи фильтра или используя полосу прокрутки находим в списке GDALTools, выделяем его и нажимаем «Установить модуль»
- После загрузки модуля он будет автоматически активирован.
Установленный и активированный модуль создает еще один пункт в главном меню QGIS (если он отсутствует) — «Растр». Или добавляет свои инструменты в существующее меню.
Собираем растр из каналов
Итак, у нас имеется снимок Landsat в виде растров, представляющих отдельные каналы изображения, всего 7 файлов. Нам же необходимо получить один файл с 7 каналами.
Чтобы было удобнее работать, все 7 файлов складываем в одну папку. Набор файлов может выглядеть следующим образом, в зависимости от того, какой это Landsat, может добавляться еще файл _B80 значительно большего размера.
Открываем меню «Растр» и выбираем пункт «Объединение». Начинаем заполнять поля диалога:
- в поле «Исходные файлы» через запятую указываются полные имена файлов-каналов. Так как все растры у нас лежат в одной папке, можно поступить проще: нажать «Выбрать...» и выделить все файлы, нажав 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, а сам растр будет создан с разбивкой на тайлы, что в некоторых случаях повышает скорость загрузки и отрисовки.
Вообще же использование дополнительных параметров требует предварительного исследования, так как параметры, оптимальные для одних задач, могут оказаться неприемлимыми при выполнении других. В конце статьи приведена ссылка на небольшое исследование различных алгоритмов сжатия.
Если у вас нет особенных требований, не устанавливайте дополнительные параметры создания.
После того как все необходимые поля заполнены нажимаем OK и ждем окончания процесса.
Примечание: в нижней части диалогового окна отображается командная строка, используемая для операции. При необходимости ее можно скопировать, отредактировать и выполнить отдельно.
Собираем растр из каналов виртуально
Первый способ сборки растра физически объединяет все файлы. Если файлов много и они большого размера (например, наборы Landsat 8 имеют 10 каналов по 112 Мбайт каждый и панхроматический канал "весом" 450 Мбайт), результирующий файл может выйти за ограничения формата Tiff по размеру. В таком случае может быть полезен способ "виртуального" объединения каналов: создание виртуального растра (GDAL Virtual Format).
Итак, меню "Растр" - "Создать виртуальный растр (каталог)".
Диалог настройки очень похож на предыдущий:
Точно также выбираем исходные каналы, результирующий файл (это будет файл с расширением *.vrt и структурой обычного XML), значение "нет данных" (0), "сохранять в каналах" (ключ -separate, иначе получится одноканальный растр).
Пункт "Разрешение" отвечает за разрешение нашего виртуального растра: исходные файлы могут быть разного размера. Например, при выборе "максимальное" результирующий растр будет иметь разрешение, соответствующее максимальному разрешению из набора исходных файлов.
После нажатия "ОК" создается *.vrt файл, с которым можно работать точно так же, как с любым обычным растром. Операций с самими растрами не производится. Пример файла *.vrt (11 каналов Landsat 8)
Настройка отображения растра
Результатом предыдущей операции был новый файл и теперь мы хотим на него посмотреть.
По умолчанию растр загружается с использованием стандартной комбинации каналов 1-2-3, что не всегда удобно. Изменить комбинацию каналов и некоторые другие параметры отображения растра можно в диалоговом окне «Свойства слоя» (вызывается из контекстного меню слоя, по правой кнопке мыши, пункт «Свойства»).
Комбинация каналов и алгоритм улучшения контраста настраиваются на вкладке «Стиль».
Ниже показан один и тот же растр, с разными комбинациями каналов и алгоритмом улучшения контраста.
В этом же окне, на вкладке «Прозрачность» можно указать какое значение растра используется как NODATA. В нашем примере черные области вокруг растра имеют значение 0 (ноль), поэтому чтобы убрать их мы установили 0 в качестве значения «нет данных»
Результат применения этой настройки ниже.
Если вы хотите потренироваться в создании снимка из отдельных каналов, то можно использовать этот архив (полная сценаа 170/28, 7 каналов, формат TIF, UTM zone 38, Калмыкия, оригинал с Glovis).