Опыт классификации космоснимка Landsat с помощью Semi-Automatic Classification Plugin в QGIS: различия между версиями
Zubr (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показано 14 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{Статья| | {{Статья|Опубликована|landsat_qgis_scp}} | ||
{{Аннотация|Данная статья описывает опыт работы с Semi-Automatic Classification Plugin для QGIS для классификации снимка Landsat с целью выявления лесонарушений на примере НП "Орловское полесье", а также содержит пошаговую инструкцию для лесного дешифрирования снимка с помощью данного плагина.}} | |||
'''''Карпачев Андрей Петрович, научный сотрудник НП "Орловское полесье"'' | '''''Карпачев Андрей Петрович, научный сотрудник НП "Орловское полесье"'' | ||
=Цели проекта= | =Цели проекта= | ||
Строка 14: | Строка 11: | ||
2) Общее дешифрирование фрагмента территории Орловско-Брянско-Калужского региона. | 2) Общее дешифрирование фрагмента территории Орловско-Брянско-Калужского региона. | ||
Для реализации классификации были выбраны тестовые участки на основе материалов лесоустройства. Примеры этих участков показаны на рисунке | Для реализации классификации были выбраны тестовые участки на основе материалов лесоустройства. Примеры этих участков показаны на рисунке ниже. | ||
[[Файл: | [[Файл:landsat_qgis_scp_01.png|500px|центр|Отметка тестовых участков на местности: 1 - лиственный лес | ||
2 - хвойный лес | 2 - хвойный лес | ||
3 - нарушенный лес, усыхание | 3 - нарушенный лес, усыхание | ||
Строка 26: | Строка 23: | ||
==1. Подготовка== | ==1. Подготовка== | ||
а) На этом этапе мы должны | а) На этом этапе мы должны подготовить область (тестовый участок) на базе космоснимка Landsat 8 за сентябрь 2014 года на территорию Орловско-Брянско-Калужского региона включая границы НП «Орловское полесье». Космоснимок можно "собрать" непосредственно в QGIS, как показано [http://gis-lab.info/qa/qgis-landsat-merge.html здесь]. Для данного проекта нам понадобятся 6 диапазонов: R, G, B, ближний ИК, коротковолновый ИК-1 и ИК-2. В работе необходимо использовать изображение, полученное из шести каналов (2-7), иначе плагин отказывается строить спектрограммы (однако, классификация выполнена будет), а этот момент важен для последующих расчётов и анализа. | ||
==2. Начало работы== | ==2. Начало работы== | ||
Полученный растр | Полученный растр добавляем в QGIS с помощью соответствующей кнопки. [[Файл:landsat_qgis_scp_02.png]] | ||
Чтобы добавить наш космоснимок непосредственно в плагин, нажимаем на кнопку "обновить" в плагине (рисунок | Чтобы добавить наш космоснимок непосредственно в плагин, нажимаем на кнопку "обновить" в плагине (рисунок ниже). | ||
[[Файл: | [[Файл:landsat_qgis_scp_03.png|500px|центр|Загрузка собранного изображения и загрузка его в плагин]] | ||
Для более точной визуализации объекта наблюдения можно использовать функцию RGB : представить снимок в синтезированных и натуральных цветах | Для более точной визуализации объекта наблюдения можно использовать функцию "RGB: представить снимок в синтезированных и натуральных цветах". | ||
[[Файл: | [[Файл:landsat_qgis_scp_04.png|frame|центр|Функция плагина RGB]] | ||
==3.Формирование директорий== | ==3.Формирование директорий== | ||
Строка 45: | Строка 42: | ||
После загрузки космоснимка нам необходимо сформировать директории, куда впоследствии запишутся файлы ROI и файлы сигнатур. | После загрузки космоснимка нам необходимо сформировать директории, куда впоследствии запишутся файлы ROI и файлы сигнатур. | ||
Переходим в | Переходим в раздел интерфейса плагина, отвечающего за регионы интереса (ROI): | ||
[[Файл: | [[Файл:landsat_qgis_scp_05.png|frame|центр|Часть плагина, отвечающая за формирование, редактирование и запись ROI]] | ||
Нажимаем на кнопку New shp и задаём на рабочем столе папку с названием ROI, открываем и сохраняем документ с названием ROI (сюда будут записываться наши регионы интереса). | Нажимаем на кнопку "New shp" и задаём на рабочем столе папку с названием ROI, затем открываем и сохраняем документ с названием ROI (сюда будут записываться наши регионы интереса). Переходим в раздел интерфейса плагина, отвечающего за формирование сигнатур и классификацию. | ||
Нажимаем на кнопку SAVE | Нажимаем на кнопку "SAVE" и на рабочем столе создаем папку SIG, в которой будет находиться документ с названием SIG. Здесь будут храниться наши сигнатуры для дальнейшей классификации. | ||
==4. ROI и SIG== | ==4. ROI и SIG== | ||
Приступим к формированию файлов регионов | Приступим к формированию файлов "регионов интереса" и сигнатур (рисунок 4). | ||
[[Файл: | [[Файл:landsat_qgis_scp_06.png|frame|центр|Раздел интерфейса, отвечающий за запись и редактирование SIG, а также за проведение классификации]] | ||
Строка 65: | Строка 61: | ||
а) Для объектов с большой площадью, таких как зеркала озёр, используем кнопку полигонального захвата пикселей. | а) Для объектов с большой площадью, таких как зеркала озёр, используем кнопку полигонального захвата пикселей. | ||
[[Файл: | [[Файл:landsat_qgis_scp_07.png|frame|центр|Кнопка для полигонального захвата пикселей. Пример захвата]] | ||
После задаём выбранному объекту id и название и нажимаем на SAVE ROI. | После задаём выбранному объекту id и название и нажимаем на "SAVE ROI". | ||
[[Файл: | [[Файл:landsat_qgis_scp_08.png|frame|центр|Раздел плагина, предназначенный для присвоения информации и записи региона интереса]] | ||
После записи ROI автоматически изменится и лист сигнатур. | После записи ROI автоматически изменится и лист сигнатур. | ||
Строка 76: | Строка 72: | ||
б) Теперь перейдём к захвату пикселей, характеризующих застройку населенных пунктов, и используем коэффициент радиуса захвата. | б) Теперь перейдём к захвату пикселей, характеризующих застройку населенных пунктов, и используем коэффициент радиуса захвата. | ||
[[Файл: | [[Файл:landsat_qgis_scp_09.png|frame|центр|Визуальное представление населенного пункта]] | ||
В строчке Range radius меняем коэффициент на 2000, нажимаем на кнопку с плюсом и переходим к захвату пикселей на снимке. | В строчке "Range radius" меняем коэффициент на 2000, нажимаем на кнопку с плюсом и переходим к захвату пикселей на снимке. | ||
[[Файл: | [[Файл:landsat_qgis_scp_10.png|frame|центр|Изменение range radius]] | ||
[[Файл: | [[Файл:landsat_qgis_scp_11.png|frame|центр|Захваченные пиксели городской застройки + элементы дорог]] | ||
Даём id и название элементу ROI (2, Built-up / 2, Buildings) и нажимаем save roi (снова произойдёт отображение в листе сигнатур). | Даём id и название элементу ROI (2, Built-up / 2, Buildings) и нажимаем "save roi" (снова произойдёт отображение в листе сигнатур). | ||
в) Теперь выделим участки голого грунта (с/х угодия) таким же образом. Ввиду большого разнообразия цветности открытого грунта (в примере | в) Теперь выделим участки голого грунта (с/х угодия) таким же образом. Ввиду большого разнообразия цветности открытого грунта (в примере от фиолетового до слабого марганцового) увеличим радиус захвата до 3500. Выбираем оптимальный вариант отображения. | ||
[[Файл: | [[Файл:landsat_qgis_scp_12.png|frame|центр|Захваченные пиксели голой почвы и с/х ]] | ||
Даём id и название элементу ROI (3, Bare soil / 3, sh) и нажимаем save roi (снова произойдёт отображение в листе сигнатур). | Даём id и название элементу ROI (3, Bare soil / 3, sh) и нажимаем "save roi" (снова произойдёт отображение в листе сигнатур). | ||
г) Теперь мы переходим непосредственно к главной задаче проекта: поиску и идентификации леса и участков нарушенного леса (Vegetation:Veg). | г) Теперь мы переходим непосредственно к главной задаче проекта: поиску и идентификации леса и участков нарушенного леса (Vegetation:Veg). | ||
В данном варианте нам нужно разбить территорию леса на | В данном варианте нам нужно разбить территорию леса на хвойную составляющую (h), лиственную (l) и нарушенную (d: defect). | ||
[[Файл: | [[Файл:landsat_qgis_scp_13.png|frame|центр|Фрагмент территории наблюдения НП "Орловское полесье": | ||
у - усохшие участки; | у - усохшие участки; | ||
вырубка - проведенная в 2014 году санитарная вырубка]] | вырубка - проведенная в 2014 году санитарная вырубка]] | ||
Начнём с нарушенного леса. Выберем коэффициент радиуса захвата | Начнём с нарушенного леса. Выберем коэффициент радиуса захвата равным 550. | ||
[[Файл: | [[Файл:landsat_qgis_scp_14.png|frame|центр|Отмеченный (захваченные пиксели) участок усохшего леса]] | ||
Даём id и название элементу ROI (4, Veg / 4, d) и нажимаем | Даём id и название элементу ROI (4, Veg / 4, d) и нажимаем "save roi" (снова произойдёт отображение в листе сигнатур). | ||
Далее | Далее таким же образом захватываем тёмно-зеленые пиксели, характерные для хвои (range radius = 1000), и светло-зелёные, характерные для листвы (range radius = 2000) | ||
Лиственный и хвойные лес | Лиственный и хвойные лес в данном случае были отнесены к разным ROI путём изменения параметров записи регионов интереса и сохранения по порядку, т.е. 5, Veg / 5, h и 6, Veg / 6, l соответственно. | ||
д) Переходим в лист сигнатур. | д) Переходим в лист сигнатур. | ||
[[Файл: | [[Файл:landsat_qgis_scp_15.png|frame|центр|Лист сигнатур. Записанные сигнатуры в авто-цветах]] | ||
По мере записи ROI в листе SIG сформировались строчки с соответствующими названиями и классами регионов интереса | По мере записи ROI в листе SIG сформировались строчки с соответствующими названиями и классами регионов интереса, а также задался цвет. Теперь мы должны изменить цвет для финальной визуализации классифицированного изображения. | ||
Изменяем цвета примерно вот так: | Изменяем цвета примерно вот так: | ||
[[Файл: | [[Файл:landsat_qgis_scp_16.png|frame|центр|Изменение цветовых характеристик в листе сигнатур ( цвета изменены на более привычные)]] | ||
==5. Классификация== | ==5. Классификация== | ||
Теперь выбираем метод классификации ( в | Теперь выбираем метод классификации (в разделе интерфейса плагина, отвечающего за сигнатуры), выбираем "Spectral Angle Mapping", "Size = 500" и наводим курсор на космоснимок. | ||
[[Файл: | [[Файл:landsat_qgis_scp_17.png|frame|центр|Выбор метода классификации (пример)]] | ||
После нажимаем на кнопку perform classification | После нажимаем на кнопку "perform classification", создаем папку "classification" и называем в ней документ "classification.tif". | ||
Классификация выполнена. | Классификация выполнена. | ||
Хочется отметить следующее: если для демонстрации результатов классификации более ничего не требуется (т.е. визуализация проекта отвечает реальным полевым объектам), то дальнейшую более углубленную обработку проводить необязательно. | |||
Что касается пиксельного захвата – то можно посоветовать пользоваться кнопкой "show", т.е. определить пиксели, отметить их и далее посмотреть, как они ложатся и не втягиваются ли лишние. Поэтому с коэффициентом захвата можно "поиграть" до определения оптимального отображения (не обязательно использовать числа, указанные в руководстве). | |||
Также нелишним, если позволяет снимок (т. е без проведения атмосферной коррекции), будет отметить дороги и травянистые сообщества. | Также нелишним, если позволяет снимок (т.е. без проведения атмосферной коррекции), будет отметить дороги и травянистые сообщества. | ||
Ошибки, связанные с втягиванием пикселей в какой-то другой класс, предлагается не исправлять, а добавить новый (по очереди в соответствии с id) класс, корректно отображающий объект. Появление жёлтой строчки в QGIS (предупреждение) будет свидетельствовать о пересечении выбранных классов; проверку можно осуществить по графику спектральных кривых. | |||
Тот класс, который получился ошибочным, предлагается просто забелить (изменить цвет на белый): так как в проекте нас интересует нарушенная и ненарушенная растительность, белым у нас будет: почва, застройка; воду оставляем без изменений. | |||
=Конкретизация и корректировка результатов классификации; представление результатов, вывод= | =Конкретизация и корректировка результатов классификации; представление результатов, вывод= | ||
''Для | ''Для этого раздела нам нужно будет подготовить shp-файл (квадрат) тренировочной территории, т.е. часть территории, на которой мы будет проводить дальнейшую классификацию. Шейп-файл лучше сразу же подготовить в QGIS; обратите внимание на проекцию, используемую в проекте (в данном проекте проекция EPSG: 32636, WGS 84/ UTM zone 36N).'' | ||
==Загрузка исходного Landsat | ==Загрузка исходного снимка Landsat. Атмосферная коррекция== | ||
а) Вызовем панель загрузки снимка иконкой [[Файл: | а) Вызовем панель загрузки снимка иконкой [[Файл:landsat_qgis_scp_18.png]] или так: | ||
[[Файл: | [[Файл:landsat_qgis_scp_19.png|frame|центр|Вариант открытия панели загрузки снимка Landsat]] | ||
Далее мы | Далее мы оказываемся на вкладке параметров снимка, здесь нам предлагается создать или выбрать директорию загрузки снимка. Сделать это можно, нажав на кнопку "Select Landsat database directory" и выбрав путь к папке (или создать). Hазовём папку "LandsatDB", нажмём "OK". | ||
Теперь ставим галочку в | Теперь ставим галочку в графе "Only Landsat 8" и жмём "Update database" для обновления (ОК). | ||
Далее мы должны ввести Image ID (смотрим из предыдущей части анализа на | Далее мы должны ввести Image ID (смотрим из предыдущей части анализа на номер архива космоснимка, это оно и есть; в данном проекте это "LC81790232014255LGN00"). Продвинутый пользователь может внести координаты интересующей территории. Нажимаем "Find images". В "image list" появится строчка с записью о космоснимке. | ||
Нажимаем на display image preview для отображения снимка. | Нажимаем на "display image preview" для отображения снимка. | ||
[[Файл: | [[Файл:landsat_qgis_scp_20.png|frame|центр|Preview снимка]] | ||
При увеличении масштаба мы видим: качество детализации низкое. | |||
Теперь нам необходимо задать параметры загрузки космоснимка. | Теперь нам необходимо задать параметры загрузки космоснимка. | ||
Карточка параметров загрузки должна выглядеть вот так ( в нашем примере): | Карточка параметров загрузки должна выглядеть вот так (в нашем примере): | ||
[[Файл: | [[Файл:landsat_qgis_scp_21.png|frame|центр|Параметры загрузки снимка (выбор каналов)]] | ||
Нажимаем на | Нажимаем на "download images from list" (выбираем рабочий стол) и ждём загрузки. В зависимости от особенностей вашего компьютера и подключения к Интернету загрузка может занять разное (иногда значительное) время. Ход загрузки мы можем наблюдать в интерфейсе QGIS. | ||
[[Файл: | [[Файл:landsat_qgis_scp_22.png|frame|центр|Ход загрузки снимка]] | ||
Конец загрузки будет сопровождаться | Конец загрузки будет сопровождаться звуковым эффектом. | ||
Удаляем из | Удаляем из QGIS слой космоснимка. | ||
Нажимаем на иконку [[Файл: | Нажимаем на иконку [[Файл:landsat_qgis_scp_23.png]], в открывшейся форме заходим на вкладку "Landsat". Жмём на кнопку "Select directory" и на рабочем столе ищем и открываем папку со снимком (ОК) – в форме откроются строчки с каналами. Далее ставим галочку в "Apply DOS1 atmospheric correction". Форма должна иметь следующий вид: | ||
Форма должна иметь | |||
[[Файл: | [[Файл:landsat_qgis_scp_24.png|frame|центр|Заполненная карточка (вкладка) по снимку Landsat, preprocessing]] | ||
Жмём на perform conversion; в папке со снимком | Жмём на "perform conversion"; в папке со снимком создаём папку с названием "REF" (ok-ok). | ||
Ждём окончания процесса (звуковой сигнал). | Ждём окончания процесса (звуковой сигнал). | ||
[[Файл: | [[Файл:landsat_qgis_scp_25.png|frame|центр|RT-снимок после коррекции]] | ||
В данном проекте выполнение атмосферной коррекции имеет характер проверки (демонстрационный характер). Было необходимым проверить работу данной функции плагина. | |||
В | В QGIS отобразятся 7 каналов с префиксом "RT". | ||
Далее нам будет необходимо открыть заранее подготовленный shp-файл тренировочной территории и произвести прикрепление этого квадрата к снимку (clip). | Далее нам будет необходимо открыть заранее подготовленный shp-файл тренировочной территории и произвести прикрепление этого квадрата к снимку (clip). | ||
Кнопкой [[Файл: | Кнопкой [[Файл:landsat_qgis_scp_26.png]] добавляем shp-файл (в текущем проекте этот файл назван "test_location"). | ||
[[Файл: | [[Файл:landsat_qgis_scp_27.png|frame|центр|Снимок + территория наблюдения (shp-файл)]] | ||
В форме плагина | В форме плагина [[Файл:landsat_qgis_scp_23.png]] нажимаем на вкладку "Clip multiple rasters". | ||
Далее нажимаем на refresh list – | Далее нажимаем на "refresh list" – "select all". | ||
Ставим галочку | Ставим галочку на "use shapefile for clipping", жмём "refresh list" - в строчке отобразится шейп-файл. | ||
Теперь нажимаем Clip selected rasters (на рабочем столе создаем папку | Теперь нажимаем "Clip selected rasters" (на рабочем столе создаем папку "clip"; ок-ок) – звуковой сигнал. | ||
Полученный вид в | Полученный вид в QGIS: | ||
[[Файл: | [[Файл:landsat_qgis_scp_28.png|frame|центр|Clip-изображение:снимок + территория наблюдения (шейп-файл)]] | ||
Нажимаем на любой слой с префиксом clip_RT | Нажимаем на любой слой с префиксом "clip_RT", правой кнопкой выходим в свойства и нажимаем "увеличить до слоя". Таким образом, мы ограничиваем территорию исследования. Далее мы отключаем и удаляем все слои с префиксом "RT". | ||
Следующим этапом мы создаем band set. Нажимаем на иконку [[Файл: | Следующим этапом мы создаем "band set", т.е. набор каналов. Нажимаем на иконку [[Файл:landsat_qgis_scp_29.png]] (открывается форма) – нажимаем "select all", потом "add rasters to set". Справа будут кнопки со стрелочками (control bands) – ими можно передвигать порядок каналов. | ||
В строчке | В строчке "quick wavelength settings" выбираем Landsat 8 Oli [bands 2, 3, 4, 5, 6, 7]. | ||
[[Файл: | [[Файл:landsat_qgis_scp_30.png|700px|центр|Функция band set]] | ||
В плагине у нас теперь отобразился | В плагине у нас теперь отобразился набор каналов, и в дальнейшем процессе в строчке RGB мы сможем составить свою комбинацию каналов для наилучшей визуализации объектов (ну или воспользоваться предложенными). | ||
Теперь, после настройки дополнительных параметров, мы можем продолжить классификацию. Иконкой [[Файл: | Теперь, после настройки дополнительных параметров, мы можем продолжить классификацию. Иконкой [[Файл:landsat_qgis_scp_26.png]] открываем shp-файл из папки ROI (из предыдущего раздела классификации) и загружаем регионы интереса. В разделе интерфейса плагина, отвечающем за регионы интереса, нажимаем на кнопку [[Файл:landsat_qgis_scp_31.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, далее на | Нажмём на строчку "grassland", далее на кнопку [[Файл:landsat_qgis_scp_32.png]]. Отобразится спектральная кривая: | ||
[[Файл: | [[Файл:landsat_qgis_scp_33.png|frame|центр|Кривая травы в графике]] | ||
Проведя курсором по снимку, мы | Проведя курсором по снимку, мы также сможем отметить некоторые закономерности: если выбрать все строки в листе сигнатур и нажать на кнопку [[Файл:landsat_qgis_scp_32.png]] то мы получим спектральный график, который в дальнейшем можно использовать в математическом объяснении результатов. | ||
[[Файл: | [[Файл:landsat_qgis_scp_34.png|frame|центр|ROI, представленные в форме графика]] | ||
Следующим пунктом выделим дороги и добавим их к классу застройки Built-up (2), в C ID ставим номер по порядку -15, в | Следующим пунктом выделим дороги и добавим их к классу застройки "Built-up" (2), в "C ID" ставим номер по порядку - 15, в "C Info" вписываем название "road" и жмём "Save ROI". | ||
В листе ROI при нажатии C ID | В листе ROI при нажатии "C ID" стрелочками можно поправить нумерацию. | ||
[[Файл: | [[Файл:landsat_qgis_scp_35.png|frame|центр|Фрагменты дорожного полотна]] | ||
Осталось финализировать классификацию (дополнительную). | Осталось финализировать классификацию (дополнительную). | ||
По желанию (и для поиска наилучшего отображения результата классификации) можно выбрать другой классификационный алгоритм и размер окна. Нажимаем +. В конце процесса нажимаем perform classification, выбираем папку для сохранения. | По желанию (и для поиска наилучшего отображения результата классификации) можно выбрать другой классификационный алгоритм и размер окна. Нажимаем +. В конце процесса нажимаем "perform classification", выбираем папку для сохранения. | ||
Данный способ (второй раздел) | Данный способ (второй раздел) позволяет нам конкретизировать объекты городской застройки. В ходе данного проекта, когда требовалось провести анализ вегетационной составляющей территории, способ имел ведущее значение. | ||
Как отмечалось выше | Как отмечалось выше, элементы голой почвы, застройки и некоторые погрешности в определении класса были окрашены белым цветом. | ||
[[Файл: | [[Файл:landsat_qgis_scp_36.png|frame|центр|Результат классификации]] | ||
[[Файл: | [[Файл:landsat_qgis_scp_37.png|frame|центр|Полученное классифицированное изображение. Вариант с закраской белым цветом]] | ||
[[Файл: | [[Файл:landsat_qgis_scp_38.png|frame|центр|Сравнение исходного и классифицированного снимка]] | ||
=Выводы= | =Выводы= | ||
Semi- | Semi-Automatic Classification Plugin для QGIS успешно справился с поставленной задачей классификации космического снимка Landsat с целью выявления усыханий леса. Поэтому ее можно использовать в качестве свободной альтернативы платному специализированному ПО. Кроме того, одним из плюсов плагина является его тесная интерграция с QGIS, что облегчает визуализацию и анализ результатов классификации. | ||
=Литература= | =Литература= | ||
1.http://semiautomaticclassificationmanual-v4.readthedocs.org/en/latest/Tutorials.html | 1.http://semiautomaticclassificationmanual-v4.readthedocs.org/en/latest/Tutorials.html | ||
2.Крылов А. М., Соболев А. А., Владимирова Н. А. Выявление очагов короеда-типографа в Московской области с использованием снимков Landsat //Вестник Московского государственного университета леса - Лесной вестник. – 2011. – №. 4. – С. 54-60 | |||
2.Крылов А. М., Соболев А. А., Владимирова Н. А. Выявление очагов короеда-типографа в Московской области с использованием снимков Landsat //Вестник Московского государственного университета леса - Лесной вестник. – 2011. – №. 4. – С. 54-60 | |||
3.Крылов А.М., Владимирова Н.А., Малахова Е.Г. Использование свободных ГИС в системе дистанционного лесопатологического мониторинга // Вестник Московского государственного университета леса - Лесной Вестник, №1 2012. С. 148-152 | 3.Крылов А.М., Владимирова Н.А., Малахова Е.Г. Использование свободных ГИС в системе дистанционного лесопатологического мониторинга // Вестник Московского государственного университета леса - Лесной Вестник, №1 2012. С. 148-152 | ||
4.Крылов А.М., Владимирова Н.А. Дистанционный мониторинг состояния лесов по данным космической съемки // "ГЕОМАТИКА" №3(12), 2011 г. с. 53-57 | 4.Крылов А.М., Владимирова Н.А. Дистанционный мониторинг состояния лесов по данным космической съемки // "ГЕОМАТИКА" №3(12), 2011 г. с. 53-57 |
Текущая версия от 17:30, 25 июня 2016
по адресу http://gis-lab.info/qa/landsat_qgis_scp.html
Данная статья описывает опыт работы с Semi-Automatic Classification Plugin для QGIS для классификации снимка Landsat с целью выявления лесонарушений на примере НП "Орловское полесье", а также содержит пошаговую инструкцию для лесного дешифрирования снимка с помощью данного плагина.
Карпачев Андрей Петрович, научный сотрудник НП "Орловское полесье"
Цели проекта
1) Выявление участков усохшего и нарушенного леса на территории НП «Орловское полесье».
2) Общее дешифрирование фрагмента территории Орловско-Брянско-Калужского региона.
Для реализации классификации были выбраны тестовые участки на основе материалов лесоустройства. Примеры этих участков показаны на рисунке ниже.
Определение и формирование макроклассов, проведение классификации
1. Подготовка
а) На этом этапе мы должны подготовить область (тестовый участок) на базе космоснимка Landsat 8 за сентябрь 2014 года на территорию Орловско-Брянско-Калужского региона включая границы НП «Орловское полесье». Космоснимок можно "собрать" непосредственно в QGIS, как показано здесь. Для данного проекта нам понадобятся 6 диапазонов: R, G, B, ближний ИК, коротковолновый ИК-1 и ИК-2. В работе необходимо использовать изображение, полученное из шести каналов (2-7), иначе плагин отказывается строить спектрограммы (однако, классификация выполнена будет), а этот момент важен для последующих расчётов и анализа.
2. Начало работы
Полученный растр добавляем в QGIS с помощью соответствующей кнопки.
Чтобы добавить наш космоснимок непосредственно в плагин, нажимаем на кнопку "обновить" в плагине (рисунок ниже).
Для более точной визуализации объекта наблюдения можно использовать функцию "RGB: представить снимок в синтезированных и натуральных цветах".
3.Формирование директорий
После загрузки космоснимка нам необходимо сформировать директории, куда впоследствии запишутся файлы ROI и файлы сигнатур.
Переходим в раздел интерфейса плагина, отвечающего за регионы интереса (ROI):
Нажимаем на кнопку "New shp" и задаём на рабочем столе папку с названием ROI, затем открываем и сохраняем документ с названием ROI (сюда будут записываться наши регионы интереса). Переходим в раздел интерфейса плагина, отвечающего за формирование сигнатур и классификацию.
Нажимаем на кнопку "SAVE" и на рабочем столе создаем папку SIG, в которой будет находиться документ с названием SIG. Здесь будут храниться наши сигнатуры для дальнейшей классификации.
4. ROI и SIG
Приступим к формированию файлов "регионов интереса" и сигнатур (рисунок 4).
а) Для объектов с большой площадью, таких как зеркала озёр, используем кнопку полигонального захвата пикселей.
После задаём выбранному объекту id и название и нажимаем на "SAVE ROI".
После записи ROI автоматически изменится и лист сигнатур.
б) Теперь перейдём к захвату пикселей, характеризующих застройку населенных пунктов, и используем коэффициент радиуса захвата.
В строчке "Range radius" меняем коэффициент на 2000, нажимаем на кнопку с плюсом и переходим к захвату пикселей на снимке.
Даём id и название элементу ROI (2, Built-up / 2, Buildings) и нажимаем "save roi" (снова произойдёт отображение в листе сигнатур).
в) Теперь выделим участки голого грунта (с/х угодия) таким же образом. Ввиду большого разнообразия цветности открытого грунта (в примере от фиолетового до слабого марганцового) увеличим радиус захвата до 3500. Выбираем оптимальный вариант отображения.
Даём id и название элементу ROI (3, Bare soil / 3, sh) и нажимаем "save roi" (снова произойдёт отображение в листе сигнатур).
г) Теперь мы переходим непосредственно к главной задаче проекта: поиску и идентификации леса и участков нарушенного леса (Vegetation:Veg). В данном варианте нам нужно разбить территорию леса на хвойную составляющую (h), лиственную (l) и нарушенную (d: defect).
Начнём с нарушенного леса. Выберем коэффициент радиуса захвата равным 550.
Даём id и название элементу ROI (4, Veg / 4, d) и нажимаем "save roi" (снова произойдёт отображение в листе сигнатур). Далее таким же образом захватываем тёмно-зеленые пиксели, характерные для хвои (range radius = 1000), и светло-зелёные, характерные для листвы (range radius = 2000) Лиственный и хвойные лес в данном случае были отнесены к разным ROI путём изменения параметров записи регионов интереса и сохранения по порядку, т.е. 5, Veg / 5, h и 6, Veg / 6, l соответственно.
д) Переходим в лист сигнатур.
По мере записи ROI в листе SIG сформировались строчки с соответствующими названиями и классами регионов интереса, а также задался цвет. Теперь мы должны изменить цвет для финальной визуализации классифицированного изображения. Изменяем цвета примерно вот так:
5. Классификация
Теперь выбираем метод классификации (в разделе интерфейса плагина, отвечающего за сигнатуры), выбираем "Spectral Angle Mapping", "Size = 500" и наводим курсор на космоснимок.
После нажимаем на кнопку "perform classification", создаем папку "classification" и называем в ней документ "classification.tif". Классификация выполнена.
Хочется отметить следующее: если для демонстрации результатов классификации более ничего не требуется (т.е. визуализация проекта отвечает реальным полевым объектам), то дальнейшую более углубленную обработку проводить необязательно. Что касается пиксельного захвата – то можно посоветовать пользоваться кнопкой "show", т.е. определить пиксели, отметить их и далее посмотреть, как они ложатся и не втягиваются ли лишние. Поэтому с коэффициентом захвата можно "поиграть" до определения оптимального отображения (не обязательно использовать числа, указанные в руководстве). Также нелишним, если позволяет снимок (т.е. без проведения атмосферной коррекции), будет отметить дороги и травянистые сообщества. Ошибки, связанные с втягиванием пикселей в какой-то другой класс, предлагается не исправлять, а добавить новый (по очереди в соответствии с id) класс, корректно отображающий объект. Появление жёлтой строчки в QGIS (предупреждение) будет свидетельствовать о пересечении выбранных классов; проверку можно осуществить по графику спектральных кривых. Тот класс, который получился ошибочным, предлагается просто забелить (изменить цвет на белый): так как в проекте нас интересует нарушенная и ненарушенная растительность, белым у нас будет: почва, застройка; воду оставляем без изменений.
Конкретизация и корректировка результатов классификации; представление результатов, вывод
Для этого раздела нам нужно будет подготовить shp-файл (квадрат) тренировочной территории, т.е. часть территории, на которой мы будет проводить дальнейшую классификацию. Шейп-файл лучше сразу же подготовить в QGIS; обратите внимание на проекцию, используемую в проекте (в данном проекте проекция EPSG: 32636, WGS 84/ UTM zone 36N).
Загрузка исходного снимка Landsat. Атмосферная коррекция
а) Вызовем панель загрузки снимка иконкой или так:
Далее мы оказываемся на вкладке параметров снимка, здесь нам предлагается создать или выбрать директорию загрузки снимка. Сделать это можно, нажав на кнопку "Select Landsat database directory" и выбрав путь к папке (или создать). Hазовём папку "LandsatDB", нажмём "OK". Теперь ставим галочку в графе "Only Landsat 8" и жмём "Update database" для обновления (ОК). Далее мы должны ввести Image ID (смотрим из предыдущей части анализа на номер архива космоснимка, это оно и есть; в данном проекте это "LC81790232014255LGN00"). Продвинутый пользователь может внести координаты интересующей территории. Нажимаем "Find images". В "image list" появится строчка с записью о космоснимке. Нажимаем на "display image preview" для отображения снимка.
При увеличении масштаба мы видим: качество детализации низкое. Теперь нам необходимо задать параметры загрузки космоснимка. Карточка параметров загрузки должна выглядеть вот так (в нашем примере):
Нажимаем на "download images from list" (выбираем рабочий стол) и ждём загрузки. В зависимости от особенностей вашего компьютера и подключения к Интернету загрузка может занять разное (иногда значительное) время. Ход загрузки мы можем наблюдать в интерфейсе QGIS.
Конец загрузки будет сопровождаться звуковым эффектом. Удаляем из QGIS слой космоснимка.
Нажимаем на иконку , в открывшейся форме заходим на вкладку "Landsat". Жмём на кнопку "Select directory" и на рабочем столе ищем и открываем папку со снимком (ОК) – в форме откроются строчки с каналами. Далее ставим галочку в "Apply DOS1 atmospheric correction". Форма должна иметь следующий вид:
Жмём на "perform conversion"; в папке со снимком создаём папку с названием "REF" (ok-ok). Ждём окончания процесса (звуковой сигнал).
В данном проекте выполнение атмосферной коррекции имеет характер проверки (демонстрационный характер). Было необходимым проверить работу данной функции плагина.
В QGIS отобразятся 7 каналов с префиксом "RT". Далее нам будет необходимо открыть заранее подготовленный shp-файл тренировочной территории и произвести прикрепление этого квадрата к снимку (clip).
Кнопкой добавляем shp-файл (в текущем проекте этот файл назван "test_location").
В форме плагина нажимаем на вкладку "Clip multiple rasters". Далее нажимаем на "refresh list" – "select all". Ставим галочку на "use shapefile for clipping", жмём "refresh list" - в строчке отобразится шейп-файл. Теперь нажимаем "Clip selected rasters" (на рабочем столе создаем папку "clip"; ок-ок) – звуковой сигнал. Полученный вид в QGIS:
Нажимаем на любой слой с префиксом "clip_RT", правой кнопкой выходим в свойства и нажимаем "увеличить до слоя". Таким образом, мы ограничиваем территорию исследования. Далее мы отключаем и удаляем все слои с префиксом "RT".
Следующим этапом мы создаем "band set", т.е. набор каналов. Нажимаем на иконку (открывается форма) – нажимаем "select all", потом "add rasters to set". Справа будут кнопки со стрелочками (control bands) – ими можно передвигать порядок каналов. В строчке "quick wavelength settings" выбираем Landsat 8 Oli [bands 2, 3, 4, 5, 6, 7].
В плагине у нас теперь отобразился набор каналов, и в дальнейшем процессе в строчке RGB мы сможем составить свою комбинацию каналов для наилучшей визуализации объектов (ну или воспользоваться предложенными). Теперь, после настройки дополнительных параметров, мы можем продолжить классификацию. Иконкой открываем shp-файл из папки ROI (из предыдущего раздела классификации) и загружаем регионы интереса. В разделе интерфейса плагина, отвечающем за регионы интереса, нажимаем на кнопку выбираем файл. В 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", далее на кнопку . Отобразится спектральная кривая:
Проведя курсором по снимку, мы также сможем отметить некоторые закономерности: если выбрать все строки в листе сигнатур и нажать на кнопку то мы получим спектральный график, который в дальнейшем можно использовать в математическом объяснении результатов.
Следующим пунктом выделим дороги и добавим их к классу застройки "Built-up" (2), в "C ID" ставим номер по порядку - 15, в "C Info" вписываем название "road" и жмём "Save ROI". В листе ROI при нажатии "C ID" стрелочками можно поправить нумерацию.
Осталось финализировать классификацию (дополнительную). По желанию (и для поиска наилучшего отображения результата классификации) можно выбрать другой классификационный алгоритм и размер окна. Нажимаем +. В конце процесса нажимаем "perform classification", выбираем папку для сохранения. Данный способ (второй раздел) позволяет нам конкретизировать объекты городской застройки. В ходе данного проекта, когда требовалось провести анализ вегетационной составляющей территории, способ имел ведущее значение. Как отмечалось выше, элементы голой почвы, застройки и некоторые погрешности в определении класса были окрашены белым цветом.
Выводы
Semi-Automatic Classification Plugin для QGIS успешно справился с поставленной задачей классификации космического снимка Landsat с целью выявления усыханий леса. Поэтому ее можно использовать в качестве свободной альтернативы платному специализированному ПО. Кроме того, одним из плюсов плагина является его тесная интерграция с QGIS, что облегчает визуализацию и анализ результатов классификации.
Литература
1.http://semiautomaticclassificationmanual-v4.readthedocs.org/en/latest/Tutorials.html
2.Крылов А. М., Соболев А. А., Владимирова Н. А. Выявление очагов короеда-типографа в Московской области с использованием снимков Landsat //Вестник Московского государственного университета леса - Лесной вестник. – 2011. – №. 4. – С. 54-60
3.Крылов А.М., Владимирова Н.А., Малахова Е.Г. Использование свободных ГИС в системе дистанционного лесопатологического мониторинга // Вестник Московского государственного университета леса - Лесной Вестник, №1 2012. С. 148-152
4.Крылов А.М., Владимирова Н.А. Дистанционный мониторинг состояния лесов по данным космической съемки // "ГЕОМАТИКА" №3(12), 2011 г. с. 53-57