Обсудить в форуме Комментариев 3Редактировать в вики
Чудесной девушке Ане, которая
вдохновила меня на завершение статьи.
Описание консольных инструментов openModeller.
В предыдущей статье мы познакомились с openModeller — свободным инструментом моделирования единовременного пространственного распределения с открытым исходным кодом, а также рассмотрели базовые приниципы работы в графическом интерфейсе openModeller Desktop. Но часто быстрее и проще выполнить необходимые действия воспользовавшись инструментами командной строки. Им и посвящена эта статья.
Как уже говорилось в предыдущей статье, openModeller имеет модульную архитектуру: основной функционал предоставляется библиотекой openModeller, алгоритмы загружаются в виде модулей, а для доступа к функциям библиотеки разработано несколько интерфейсов. Одним из первых был реализован консольный интерфейс.
Консольный интерфейс openModeller представлен несколькими приложениями, каждое из которых предназначено для решения своей задачи. Все приложения имеют префикс om_ и на момент написания статьи их было 10:
Некоторые приложения (а именно, om_viewer и om_niche) зависят от дополнительных компонент и, если в вашей системе необходимые компоненты отсутствуют, могут не запускаться или вообще быть недоступными.
Рассмотрим каждое приложение подробнее. Для демонстрации там, где это возможно, будем использовать тестовый набор данных из поставки openModeller (загрузить архив).
Консольный фронтэнд к библиотеке openModeller. Используется для создания и применения моделей потенциального распределения. В качестве единственного аргумента принимает request-файл.
om_console request.txt
Развернутое описание request-файла приводится в отдельной статье.
Служит для визуализации слоёв, использующихся при построении модели. В качестве единственного аргумента принимает request-файл.
om_viewer request.txt
Также может использоваться для визуализации итогового распределения. Для активации этого режима служит ключ -r.
om_viewer -r request.txt
Внимание! Приложение доступно только если openModeller собран с поддержкой X11.
Выполняет визуализацию сохраненных моделей в экологическом пространстве. Модели в формате XML получаеются в результате работы om_console или om_model.
om_niche -o furcata.xml
На рисунках ниже показаны результаты визуализации ниш, построенных по одним и тем же данным алгоритмами SVM (слева) и MaxEnt (справа).
Это демонстрационный инструмент, и работает он только в тех случаях, когда эксперимент содержит только два слоя. Главная его цель — показать как разные алгоритмы генерируют разные модели по одним и тем же исходным данным.
Внимание! Приложение доступно только если openModeller собран с поддержкой X11.
В процессе создания модели openModeller извлекает данные (значения пикселей) из каждого слоя, входящего в эксперимент. Набор таких значений для некоторой точки называют «образцом» или «сэмплом» (sample). Именно для получения сэмплов для каждой точки встречи вида и служит это приложение.
om_sampler принимает в качестве аргумента файл, содержащий «ссылки» на климатические и другие слои, а также на файл с информацией о точках встречи. Таким файлом может быть request-файл либо XML-файл с описанием параметров модели, либо XML-файл с сохраненной моделью.
om_sampler --source request.txt
По умолчанию om_sampler печатает на стандартный вывод (т.е. на экран) все данные для каждой точки встречи из исходного файла. Но если указать параметр --dump-env, то выводится будут все данные для каждой ячейки (пикселя) маскирующего слоя. При необходимости можно указать диапазон ячеек используя ключи --cell-start (по умолчанию 0) и --cell-end (по умолчанию 1000). Первой ячейкой считается верхняя левая, обход выполняется слева направо и сверху вниз.
om_sampler --source request.txt --dump-env
В этом режиме вместо координат точек встречи используются координаты центра соответствующей ячейки растра. Если для какой-то ячейки вместо значений выдается «nodata», значит в каком-то из слоёв (включая слой маски) отсутствуют данные.
Создаёт модель распределения. Исходные данные считываются из XML файла, содержащего параметры в соответствии с описанием элемента ModelParameters. Результирующая модель распределения будет сохранена в другой XML-файл в соответствии с описанием элемента SerializedModel. Необходимо иметь в виду, что каждый алгоритм записывает модель в своем собственном представлении.
При помощи ключа --xml-req задается исходный файл с описанием параметров модели; ключ --model-file задает файл, в который будет записана модель распределения.
om_model --xml-req model_request.xml --model-file acacia_model.xml
Если модель строится для большого числа слоёв или точек встречи можно, при помощи ключа --prog-file, указать файл, в который будет записываться информация о прогрессе операции. Файл прогресса является обычным текстовым файлов, в него в процессе работы приложения могут записываться следующие числа:
Для генерации карты распределения по модели необходимо использовать приложение om_project.
Инструмент тестирования и проверки моделей. В качестве исходных данных может принимать файл-описание тестов (элемент TestParameters, см. также файл test_request.xml)
om_test --xml-req test_request.xml
или два файла: сохраненную модель и текстовый файл с описанием точек встречи, которые необходимо проверить
om_test --model acacia_model.xml --points test_points.txt --calc-matrix
Примечание: точки должны быть в той же СК и иметь такую же метку, как и тренировочные точки, по которым строилась модель. Кроме того, во время теста будут использоваться те же слои, что использовались при построении модели.
По умолчанию результат работы печатается на стандартный вывод, указав ключ --result можно записать его в файл (формат XML, элемент ModelStatisticsType).
Контролировать процесс тестирования можно при помощи ключей:
Применяет сохраненную модель к некоторому набору слоёв. Результат операции — распределение вероятности в виде растра.
Есть два способа использовать om_project. В первом случае в качестве исходного файла необходимо передать XML файл содержащий настройки процесса применения модели (для примера см. файл projection_request.xml в архиве. Доступно также полное описание элемента ProjectionParameters). В этом случае модель можно применить к набору слоёв, отличному от набора, использовавшегося при построении модели. Примечание: тем не менее, необходимо соответствие между слоями, использовавшимися при создании модели, и слоями, к которым модель применяется.
Создание модели | Применение модели |
---|---|
temperature | temperature_2 |
rainfall | rainfall_2 |
precipitation | precipitation_2 |
и т.д. | и т.д. |
Команда в этом случае выглядит так
om_project --xml-req projection_request.xml --dist-map furcata.img
Ключ --dist-map задает имя выходного файла, в который будет записан результат применения модели (карта распределения вероятности).
Во втором случае om_project использует XML-описание сохраненной модели и применять модель можно только к тем же слоям, которые использовались для её создания. В этом случае также можно указать слой, который будет использоваться в качестве шаблона (--template) и желаемый формат итогового растра (--format).
om_project --model acacia_model.xml --dist-map acacia.img
При необходимости можно указать файл прогресса (--prog-file) и файл статистики (--stat-file).
Используется для получения информации о доступных алгоритмах. Например, в результате выполнения команды
om_algorithm --list
мы получим список всех доступных алгоритмов в формате «id: название». Получить развернутую информацию о конкретном алгоритме можно вот такой командой
om_algorithm --id algID
где algID — идентификатор нужного алгоритма. А при помощи ключа --dump-xml можно вывести информацию об алгоритмах в XML формате (по умолчанию информация выдается на стандартный вывод, при необходимости используйте перенаправление в файл).
Служит для загрузки точек встречи из различных источников и их сохранения в текстовом или XML формате.
Загрузка точек встречи возможна из источников для которых существует соответствующий драйвер. В случае необходимости можно создавать свои драйвера для работы с дополнительными источниками данных. Команда
om_points --list
выведет список всех доступных драйверов в формате «id: название (режим доступа)». На момент написания статьи была реализована работа со следующими источниками данных:
terralib>dbUsername>dbPassword@dbType>dbHost>dbName>dbPort>layerName>tableName>columnName
Доступен только для чтения.
Процессом получения точек встречи можно управлять при помощи следующих ключей:
Например, команда
om_points --source http://data.gbif.org/ws/rest/occurrence/list --name "Physalis peruviana"
запросит информацию о точках встречи вида «Physalis peruviana» в базе GBIF и выведет полученные данные на стандартный вывод с использованием формата TXT.
Используется для генерации случайных точек в пределах заданной географической области (маски). Результат печатается на стандартный вывод в виде текста с разделителями (разделитель табуляция) в совместимом с openModeller виде.
om_pseudo --num-points 20 --mask rain_coolest.tif
Процесс генерации точек контролируется при помощи следующих параметров:
Координаты точек всегда создаются с использованием датума WGS84.
Как видим, функционал описанных приложений не уступает функционалу графического интерфейса. Консольная природа и более низкое, по сравнению с openModeller Desktop, потребление ресурсов делают их идеальным решением для автоматизированной обработки данных, подбора наиболее оптимального алгоритма, а также для работы с большими объемами информации.
Обсудить в форуме Комментариев 3Редактировать в вики
Последнее обновление: 2014-05-14 22:07
Дата создания: 02.05.2012
Автор(ы): Александр Бруй
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).