Опыт классификации космоснимка Landsat с помощью Semi-Automatic Classification Plugin в QGIS: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 172: Строка 172:


[[Файл:101000000.png|frame|центр|RT-снимок после коррекции]]
[[Файл:101000000.png|frame|центр|RT-снимок после коррекции]]
''В данном проекте выполнение атмосферной коррекции имеет характер проверки (демонстрационный характер). Было необходимым проверить работу данной функции плагина.''


В QGis отобразятся 7 каналов с префиксом RT.
В QGis отобразятся 7 каналов с префиксом RT.

Версия от 20:10, 19 марта 2016

Эта страница является черновиком статьи.


Опыт классификации снимка Landsat в semi-automatic classification plugin QGis


Карпачев Андрей Петрович, научный сотрудник НП "Орловское полесье"

Данная статья описывает опыт работы с Semi-Automatic classification plugin для Quantum GIS для классификации снимка Landsat с целью выявления лесонарушений на примере НП "Орловское полесье", а также содержит пошаговую инструкцию для лесного дешифрирования снимка в плагине.


Цели проекта

1) Выявление участков усохшего и нарушенного леса на территории НП «Орловское полесье».

2) Общее дешифрирование фрагмента территории Орловско-Брянско-Калужского региона.

Для реализации классификации на основе ЛУ материалов были выбраны тестовые участки, как они выглядят, показано на рисунке

Файл:Жаба 1.png
Отметка тест-участков на местности: 1 - лиственный лес 2 - хвойный лес 3 - нарушенный лес, усыхание 4 - санитарная вырубка, голая почва 5 - пойма реки, голая почва

Определение и формирование макроклассов, проведение классификации

1. Подготовка

а) На этом этапе мы должны образовать область (тестовый участок) на базе космоснимка Landsat-8 за сентябрь 2014 года на территорию Орловско-Брянско-Калужского региона, включая границы НП «Орловское полесье» полностью. Космоснимок можно собрать непосредственно в QGis, как показано здесь. Для данного проекта нам понадобятся 6 диапазонов: R, G, B, ближний ИК, коротковолновый ИК-1 и ИК-2. В работе необходимо использовать изображение, полученное из шести каналов (2-7), иначе плагин отказывается строить спектрограммы (однако, классификация выполнена будет), а этот момент важен для последующих расчётов и анализа.

2. Начало работы

Полученный растр соответствующей кнопкой добавляем в QGis. Файл:Kn1.png


Чтобы добавить наш космоснимок непосредственно в плагин, нажимаем на кнопку "обновить" в плагине (рисунок 1)

Файл:A1.png
Загрузка собранного изображения и включение его в плагин

Для более точной визуализации объекта наблюдения можно использовать функцию RGB : представить снимок в синтезированных и натуральных цветах (рисунок 2)

Файл:А2.png
Функция плагина RGB

3.Формирование директорий

После загрузки космоснимка нам необходимо сформировать директории, куда впоследствии запишутся файлы ROI и файлы сигнатур.

Переходим в часть плагина, отвечающего за регионы интереса (ROI)(рисунок 3).

Файл:АА3.png
Часть плагина, отвечающая за формирование, редактирование и запись ROI


Нажимаем на кнопку New shp и задаём на рабочем столе папку с названием ROI, открываем и сохраняем документ с названием ROI (сюда будут записываться наши регионы интереса). переходим на часть плагина, отвечающего за формирование сигнатур и классификацию.

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

4. ROI и SIG

Приступим к формированию файлов регионов интересов и сигнатур (рисунок 4).

Файл:3А.png
Часть плагина, отвечающая за запись, редактирование SIG и проведение классификации


а) Для объектов с большой площадью, таких как зеркала озёр, используем кнопку полигонального захвата пикселей.

Файл:4А4.png
Кнопка для полигонального захвата пикселей. Пример захвата


После задаём выбранному объекту id и название и нажимаем на SAVE ROI.

Раздел плагина, предназначенный для присвоения информации и записи региона интереса

После записи ROI автоматически изменится и лист сигнатур.

б) Теперь перейдём к захвату пикселей, характеризующих застройку населенных пунктов, и используем коэффициент радиуса захвата.

Файл:66Ф.png
Визуальное представление населенного пункта

В строчке Range radius меняем коэффициент на 2000, нажимаем на кнопку с плюсом и переходим к захвату пикселей на снимке.

Файл:77фф.png
Изменение range radius
Файл:888-00.png
Захваченные пиксели городской застройки + элементы дорог

Даём id и название элементу ROI (2, Built-up / 2, Buildings) и нажимаем save roi (снова произойдёт отображение в листе сигнатур).

в) Теперь выделим участки голого грунта (с/х угодия) таким же образом. Ввиду большого разнообразия цветности открытого грунта (в примере: от фиолетового до слабого марганцового) увеличим радиус захвата до 3500. Выбираем оптимальный вариант отображения.

Файл:99-000.png
Захваченные пиксели голой почвы и с/х

Даём id и название элементу ROI (3, Bare soil / 3, sh) и нажимаем save roi (снова произойдёт отображение в листе сигнатур).

г) Теперь мы переходим непосредственно к главной задаче проекта: поиску и идентификации леса и участков нарушенного леса (Vegetation:Veg). В данном варианте нам нужно разбить территорию леса на хвойную составляющую (h), лиственную (l) и нарушенную (d: defect).

Файл:10000-00.png
Фрагмент территории наблюдения НП "Орловское полесье": у - усохшие участки; вырубка - проведенная в 2014 году санитарная вырубка

Начнём с нарушенного леса. Выберем коэффициент радиуса захвата = 550.

Файл:111000-00.png
Отмеченный (захваченные пиксели) участок усохшего леса

Даём id и название элементу ROI (4, Veg / 4, d) и нажимаем save roi (снова произойдёт отображение в листе сигнатур). Далее, таким же образом захватываем темно-зеленые пиксели характерные для хвои (range radius 1000), и светло-зеленые, характерные для листвы (range radius 2000) Лиственный и хвойные лес я отнёс к разным ROI соответственно меняя параметры записи регионов интереса, сохранения по порядку, т. е 5, Veg / 5, h и 6, Veg / 6, l соответственно.

д) Переходим в лист сигнатур.

Файл:12-000.png
Лист сигнатур. Записанные сигнатуры в авто-цветах

По мере записи ROI в листе SIG сформировались строчки с соответствующими названиями и классами регионов интереса + задался цвет. Теперь мы должны изменить цвет для финальной визуализации классифицированного изображения. Изменяем цвета примерно вот так:

Файл:13-000.png
Изменение цветовых характеристик в листе сигнатур ( цвета изменены на более привычные)

5. Классификация

Теперь выбираем метод классификации ( в части плагина, отвечающего за сигнатуры), выбираем Spectral Angle Mapping, Size=500 и нажимаем + и ведём курсор на космоснимок.

Файл:14-000.png
Выбор метода классификации (пример)

После нажимаем на кнопку perform classification – создаем папку classification и называем в ней документ classification.tif . Классификация выполнена.

Хочется отметить следующее, если для демонстрации результатов классификации более ничего не требуется (т. е визуализация проекта отвечает реальным полевым объектам), то дальнейшую более углубленную обработку проводить необязательно. Что касается пиксельного захвата – то я советую пользоваться кнопкой show, т. е определить пиксели, отметить их и далее посмотреть как они ложатся и не втягиваются ли лишние. Поэтому с коэффициентом захвата можно поиграть до определения оптимального отображения (не обязательно использовать числа, указанные в руководстве). Также нелишним, если позволяет снимок (т. е без проведения атмосферной коррекции), будет отметить дороги и травянистые сообщества. Ошибки, связанные с втягиванием пикселей в какой-то другой класс, я предлагаю не исправлять, а добавить новый (по очереди в соответствии с id) класс, корректно отображающий объект. Появление жёлтой строчки в QGis(предупреждение) и будет свидетельствовать о пересечении выбранных классов; проверку можно осуществить по графику спектральных кривых. Тот класс, который получился ошибочным – я предлагаю просто забелить (изменить цвет на белый): так как в проекте меня интересует нарушенная и ненарушенная растительность, белым у меня будет: почва, застройка; воду я оставляю без изменений.

Конкретизация и корректировка результатов классификации; представление результатов, вывод

Для это раздела нам нужно будет подготовить shp-файл (квадрат) тренировочной территории, т. е часть территории, на которой мы будет проводить дальнейшую классификацию. shp-файл лучше сразу же подготовить в QGis; прошу обратить Ваше внимание на проекцию, используемую в проекте (в данном проекте проекция такая: EPSG: 32636, WGS 84/ UTM zone 36N).

Загрузка исходного Landsat снимка. Атмосферная коррекция

а) Вызовем панель загрузки снимка иконкой Файл:Kn tools.png или так:

Файл:106000000000006.png
Вариант открытия панели загрузки снимка Landsat

Далее мы оказались на вкладке параметров снимка, здесь нам предлагается создать/выбрать директорию загрузки снимка. Сделать это можно, нажав на кнопку select Landsat database directory и выбрать путь к папке (создать) и назвать её LandsatDB – OK. Теперь ставим галочку в only Landsat 8 и жмём Update database для обновления (ОК). Далее мы должны ввести Image ID (смотрим из предыдущей части анализа на номер архива космоснимка, это оно и есть: в данном проекте это LC81790232014255LGN00); продвинутый пользователь может внести координаты, интересующей территории. Нажимаем на Find images. В image list появится строчка с записью о космоснимке. Нажимаем на display image preview для отображения снимка.

Файл:105000000000005.png
Preview снимка

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

Файл:10400000000.png
Параметры загрузки снимка ( выбор бандов)

Нажимаем на dawnload images from list (выбираем рабочий стол) и ждём загрузки. В зависимости от особенностей компьютера – загрузка может занять значительное время. Ход загрузки мы можем наблюдать в QGis.

Файл:103000000.png
Ход загрузки снимка

Конец загрузки будет сопровождаться аудио эффектом. Удаляем из QGis слой космоснимка.

Нажимаем на иконку Файл:Prepro.png, открывается форма, заходим на вкладку Landsat: жмём на кнопку select directory и на рабочем столе ищем и открываем папку со снимком (ОК) – в форме откроются строчки с каналами. далее ставим галочку в Apply DOS1 atmospheric correction; Форма должна иметь такой вид:

Файл:1020000000000.png
Заполненная карточка (вкладка) по снимку Landsat. pre processing

Жмём на perform conversion; в папке со снимком образуем папку с названием REF (ok-ok). Ждём окончания процесса (звуковой сигнал).

Файл:101000000.png
RT-снимок после коррекции

В данном проекте выполнение атмосферной коррекции имеет характер проверки (демонстрационный характер). Было необходимым проверить работу данной функции плагина.

В QGis отобразятся 7 каналов с префиксом RT. Далее нам будет необходимо открыть заранее подготовленный shp-файл тренировочной территории и произвести прикрепление этого квадрата к снимку (clip).

Кнопкой Файл:Kn+vekt.png добавляем shp-файл (в текущем проекте этот файл назван test_location).

Файл:99999999.png
Снимок + территория наблюдения (shp-файл)

В форме плагина Файл:Prepro.png нажимаем на вкладку Clip multiple rasters. Далее нажимаем на refresh list – далее select all. Ставим галочку в use shapefile for clipping – жмём refresh list – в сточке отобразится шейп-файл. Теперь нажимаем Clip selected rasters (на рабочем столе создаем папку clip; ок-ок) – звуковой сигнал. Полученный вид в QGis:

Файл:88888888.png
Clip-изображение:снимок + территория наблюдения (шейп-файл)

Нажимаем на любой слой с префиксом clip_RT – правой кнопкой выходим в свойства и нажимаем "увеличить до слоя" – таким образом, мы ограничиваем территорию исследования. Далее мы отключаем и удаляем все слои с префиксом RT.

Следующим этапом мы создаем band set. Нажимаем на иконку Файл:Band set.png (открывается форма) – нажимаем select all, потом add rasters to set. Справа будут кнопки со стрелочками (control bands) – ими можно передвигать порядок бандов. В строчке quick wavelength settings выбираем Landsat 8 Oli [bands 2, 3, 4, 5, 6, 7].

Файл:77777777777.png
Функция band set

В плагине у нас теперь отобразился <<band set>> и в дальнейшем процессе в строчке RGB мы сможет составить свою комбинацию каналов для наилучшей визуализации объектов (ну или воспользоваться предложенными). Теперь, после настройки дополнительных параметров, мы можем продолжить классификацию. Иконкой Файл:Kn+vekt.png открываем shp-файл из папки ROI(из предыдущего раздела классификации) – загружаем регионы интереса. В части плагина, отвечающего за регионы интереса нажимаем на кнопку Файл:Refresh.png выбираем файл. В ROI list отобразились записи. В части плагина, отвечающей за сигнатуры, нажимаем open и ищем папку из предыдущего раздела классификации – SIG и из неё открываем XML-файл. В списке отобразятся сигнатуры. Теперь окрасим наш композит (в примере банды 5-4-6). После окраски визуально определим траву травянистые сообщества и, выбрав оптимально отражающий объект- коэффициент захвата, так же как в предыдущем разделе классификации создадим и сохраним новый регион интереса. Важный момент: теперь к макроклассу Veg (vegetation) добавим новый ROI- grassland: в MC ID ставим 4 (в предыдущей части так мы назвали класс вегетации); в MC Info ставим Veg; в C ID ставим номер по порядку (у меня это номер 14, потому что ранее я проводил несколько раз классификацию для закрепления навыка); в C Info вписываем название grassland и жмём Save ROI.

Нажмём на строчку grassland, далее на кнопку Файл:Kn grafik.png отобразится спектральная кривая:

Файл:66666666.png
Кривая травы в графике

Проведя курсором по снимку, мы так же сможем отметить некоторые закономерности: если выбрать все строки в листе сигнатур и нажать Файл:Kn grafik.png то мы получим спектральный график, который в дальнейшем можно использовать в математическом объяснении результатов.

Файл:5555555555.png
ROI, представленные в форме графика

Следующим пунктом выделим дороги и добавим их к классу застройки Built-up (2), в C ID ставим номер по порядку -15, в C Info вписываем название road и жмём Save ROI. В листе ROI при нажатии C ID, стрелочками можно поправить нумерацию.


Файл:44444.png
Фрагменты дорожного полотна

Осталось финализировать классификацию (дополнительную). По желанию (и для поиска наилучшего отображения результата классификации) можно выбрать другой классификационный алгоритм и размер окна. Нажимаем +. В конце процесса нажимаем perform classification, выбираем папку для сохранения. Данный способ (второй раздел) позволяет нам конкретизировать объекты городской застройки; а в ходе данного проекта, когда требовалось провести анализ вегетационной составляющей территории, способ имел ведущее значение. Как отмечалось выше – элементы голой почвы, застройки и некоторые погрешности в определении класса – были окрашены белым цветом.

Файл:33333.png
Результат классификации
Файл:222222.png
Полученное классифицированное изображение. Вариант с закраской белым
Файл:11111.png
Сравнение исходного и классифицированного снимка

Выводы

Semi-automatic classification plugin для QGIS успешно справился с поставленной задачей классификации космического снимка Landsat с целью выявления усыханий леса. Поэтому ее можно использовать в качестве свободной альтернативы платному специализированному софту. Кроме того, одним из плюсов программы является ее непосредственная работа с самой QGIS, что облегчает визуализацию и анализ результатов классификации