Использование консольного DTclassifier для классификации растровых данных и анализа изменений
Описание и примеры использования консольной версии DTclassifier для классификации растровых данных.
DT classifier простой в использовании и эффективный плагин для классификации растровых изображений Декстопная версия расширения входит в дистрибутив (QGIS-NextGIS[1]). Расширение использует метод деревьев решений реализованный на основе библиотеки OpenCV Подробнее о расширениее написано здесь [2]. DT classifier имеет удобный графический интерфейс, но для некоторых задач, например, для встраивания алгоритмов классификации в workflow обработки изображений или для обработки большого количества данных удобнее использоывать консольную версию плагина. Что и было реализовано командой NextGIS
Создано в | Веб ГИС для вашей организации по доступной цене |
Получение и установка
Расширение доступно как в виде исходного кода C++, так и в бинарной форме.
Бинарная сборка
Для работы с программой в ОС Windows можно пойти двумя путями: Для работы с программой в ОС Windows можно пойти двумя путями:
- загрузить и установить NextGIS QGIS версии 15.4.88 или выше, DTClassifier включен в дистрибутив.
или
- загрузить и установить QGIS версии 2.8 или выше (подробнее)
- загрузить архив с расширением и необходимыми библиотеками
- извлечь содержимое архива в каталог модулей QGIS (обычно это C:\OSGeo4W\apps\qgis-dev\plugins и C:\OSGeo4W\bin)
После установки, в окне OSGeo4W shell наряду с другими функциями gdal и ogr появится функция classifier.
Исходный код
Исходный код модуля (лицензия GNU GPL v2) можно получить через репозиторий на GitHub, или выполнив команду:
git clone git@github.com:nextgis/dtclassifier.git
Тестовые данные
Загрузить архив c данными, использовавшимися при подготовке статьи (... Мб).
Работа с расширением
Синтаксис расширения включает несколько обязательных параметров и ряд дополнительных, расширяющих функциональность приложения.
(картинка)
classifier -запуск расширения --save_points - сохраняет точки полученные из обучающих данных в виде шейп файла с атрибутивнлой таблицей значений растров --presence векторный слой объектов-мишеней (target) т.е. объекты которые нужно выделить при анализе --absence векторный слой фоновых объектов (background), т.е. объекты от которых нужно отделить объекты -мишени --input_rasters пути к растровым данным (ВАЖНО: необходимо указывать полные пути к файлам) разделенные пробелом --save_model сохранить модель (дерево решений или модель random forest) в файл (.aml) --use_model использовать существующую модель (ВАЖНО: количество и порядок каналов должен быть таким же как при создании модели, иначе результат будет некорректным) --classify сохранить результат --use_decision_tree использовать дерево решений (по умолчанию используется random forest) --generalize размер окна для генерализации (median)
--load_points использовать существующие точки для создания модели и классификации!!! еще нет..
Примеры использования
Цель: Классифицировать изменения лесного покрова двух временных срезов Landsat для нескольких path/row
- Задача: Классифицировать пары сцен Landsat в batch режиме на основе общего слоя тестовых объектов
- Задача: Cоздать модель классификации на основе нескольких пар сцен, сохранить и применить ее последовательно ко всем сценам