Описание request-файлов openModeller
по адресу http://gis-lab.info/qa/openmodeller-request.html
Чудесной девушке Ане, которая
вдохновила меня на написание статьи.
Изучаем структуру request-файлов openModeller.
В статье, посвященной приложениям openModeller, неоднократно упоминался request-файл. При использовании openModeller в командной строке сталкиваться с этими файлами приходится очень часто, с их помощью можно выполнить практически все необходимые действия и пройти путь от исходных данных до результатов моделирования.
Общие сведения
Request-файл является обычным текстовым файлом, в котором содержатся пары КЛЮЧ = ЗНАЧЕНИЕ, разделенные одним или несколькими переводами строки. Request-файлы часто выступают в роли исходных данных для разных консольных приложений openModeller. Например, руководствуясь указаниями request-файла om_console может: создать модель; применить существующую модель к набору слоёв; создать модель и сразу же применить её к набору слоёв. C request-файлами также работают om_viewer и om_sampler.
Хотя строгой структуры request-файл не имеет, логически его можно разделить на несколько секций:
- описание точек встречи
- описание исходных слоёв, использующихся при создании модели
- описание итоговой модели
- настройки процесса применения модели
- описание слоёв, к которым будет применяться модель
- описание результатов применения модели
- параметры алгоритма
Строки начинающиеся с символа «#» (решетка) являются комментариями и игнорируюся. Также игнорируются пустые строки.
В зависимости от задач, файл может содержать как все из перечисленных секций, так и только некоторые из них. Рассмотрим каждую секцию подробнее.
Описание точек встречи
Как явствует из названия, это параметры тем или иным образом связанные с точками встречи вида. В группу входят следующие параметры:
- WKT Coord System — система координат точек встречи в формате WKT (Well-Known Text). Если точки находятся в разных системах координат, необходимо преобразовать их в одну общую
- Occurrences source — указывает на источник данных по точкам встречи. В качестве источника может использоваться абсолютный или относительный путь к текстовому файлу; абсолютный или относительный путь к файлу XML; адрес сервиса GBIF; адрес сервиса TAPIR. Примечание: необходимо помнить, что om_console может работать только с одним источником точек одновременно
- Occurrences group — метка, по которой будет выполняться отбор точек из источника (чаще всего это название вида). По умолчанию последнее найденное в списке точек значение
- Spatially unique — необязательный параметр при помощи которого можно отсечь точки с одинаковыми координатами. По умолчанию false
- Environmentally unique — необязательный параметр при помощи которого можно отсечь точки с одинаковыми экологическими и/или климатическими условиями. По умолчанию false
Все эти параметры используются только при создании новой модели. Вот пример:
WKT Coord System = GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]] Occurrences source = /home/alex/data/gbif/physalis_peruviana.txt Occurrences group = Physalis peruviana Spatially unique = true Environmentally unique = false
Описание слоёв (создание модели)
Здесь описываются слои, используемые при создании модели.
- Map — растровый слой с непрерывными значениями, который будет использоваться для создания модели. Допускается использование нескольких параметров. В качестве значения можно использовать абсолютный или относительный путь к GDAL-совместимому растру или, если openModeller собран с поддержкой TerraLib, ссылку на растр TerraLib в виде
terralib>yourusername>yourpassword@PostgreSQL>localhost>terralib>5432>rain_coolest
- Categorical map — растровый слой с дискретными значениями, который будет использоваться для создания модели. Допускается использование нескольких параметров. В качестве значения можно использовать абсолютный или относительный путь к GDAL-совместимому растру или, если openModeller собран с поддержкой TerraLib, ссылку на растр TerraLib в виде
terralib>yourusername>yourpassword@PostgreSQL>localhost>terralib>5432>rain_coolest
- Mask — растровый слой маски, задающий область интереса (не обязательный параметр). На практике это значит, что все точки, попавшие за границы этого слоя, будут исключены из анализа. Если параметр не задан, в качестве слоя маски используется первый слой, заданный параметром Map. Примечание: слои, заданные парамерами Map и Categorical map тоже могут исключать точки из анализа, если эти точки попадают в места со значением «nodata».
Слой маски должен поддерживать установку значений «nodata», попадание точки в область со значением 0 (ноль) не приводит к ее исключению из анализа.
В качестве значения можно использовать абсолютный или относительный путь к GDAL-совместимому растру или, если openModeller собран с поддержкой TerraLib, ссылку на растр TerraLib в виде
terralib>yourusername>yourpassword@PostgreSQL>localhost>terralib>5432>south_america
Пример
Map = /data/cru_bioclim/meanDiurnal.asc Map = /data/cru_bioclim/meanDiurnalOverCoolestM.asc Map = /data/cru_bioclim/meanDiurnalOverWarmestM.asc Map = /data/cru_bioclim/meanFrostDays.asc Map = /data/cru_bioclim/meanPrecip.asc Map = /data/cru_bioclim/meanPrecipOverCoolestQ.asc Map = /data/cru_bioclim/meanPrecipOverDriestM.asc Map = /data/cru_bioclim/meanPrecipOverDriestQ.asc Map = /data/cru_bioclim/meanPrecipOverFrostFreeM.asc Mask = /data/cru_bioclim/stdevMeanTemp.asc
Итоговая модель
Результатом анализа является модель, которая может быть сохранена на диск в формате XML (так называемая «сохраненная модель»). Если файл не планируется использовать для создания модели, все параметры этой группы должны быть опущены.
- Output model — абсолютный или относительный путь к файлу, в который будет записана полученная в результате анализа модель
Output model = /home/alex/models/my_model.xml
Настройки процесса применения модели
Ранее созданная при помощи om_console или om_model модель может использоваться в качестве исходной и применяться к некоторому набору слоёв. В этом случае все параметры, относящиеся к точкам встречи и исходным слоям будут проигнорированы.
- Input model — абсолютный или относительный путь к файлу сохраненной модели
Input model = /home/alex/models/test_model.xml
Описание слоёв (применение модели)
Эта группа параметров необходима только если выполняется применение модели к другому набору слоёв. Примечание: необходимо помнить, что число слоёв, их порядок и величины, которые они представляют, должны соответствовать слоям, использованным при создании модели. Например, если модель строилась с использованием трех слоев (данные о температуре, влажности и кислотности почвы), то и второй набор должен состоять из трех слоёв, описывающих те же величины (температуру, влажность и кислотность почвы).
- Output map — растровый слой с непрерывными значениями, который будет использоваться при применении модели. Допускается использование нескольких параметров. В качестве значения можно использовать абсолютный или относительный путь к GDAL-совместимому растру или, если openModeller собран с поддержкой TerraLib, ссылку на растр TerraLib в виде
terralib>yourusername>yourpassword@PostgreSQL>localhost>terralib>5432>rain_coolest
- Output categorical map — растровый слой с дискретными значениями, который будет использоваться при применении модели. Допускается использование нескольких параметров. В качестве значения можно использовать абсолютный или относительный путь к GDAL-совместимому растру или, если openModeller собран с поддержкой TerraLib, ссылку на растр TerraLib в виде
terralib>yourusername>yourpassword@PostgreSQL>localhost>terralib>5432>rain_coolest
- Output mask — растровый слой маски, задающий область интереса (не обязательный параметр). На практике это значит, что все точки, попавшие за границы этого слоя, будут исключены из анализа. Если параметр не задан, в качестве слоя маски используется первый слой, заданный параметром Output map. Примечание: слои, заданные парамерами Output map и Output categorical map тоже могут исключать точки из анализа, если эти точки попадают в места со значением «nodata».
Слой маски должен поддерживать установку значений «nodata», попадание точки в область со значением 0 (ноль) не приводит к ее исключению из анализа.
В качестве значения можно использовать абсолютный или относительный путь к GDAL-совместимому растру или, если openModeller собран с поддержкой TerraLib, ссылку на растр TerraLib в виде
terralib>yourusername>yourpassword@PostgreSQL>localhost>terralib>5432>south_america
Пример:
Output map = /data/clim_2050/meanDiurnal.asc Output map = /data/clim_2050/meanDiurnalOverCoolestM.asc Output map = /data/clim_2050/meanDiurnalOverWarmestM.asc Output map = /data/clim_2050/meanFrostDays.asc Output map = /data/clim_2050/meanPrecip.asc Output map = /data/clim_2050/meanPrecipOverCoolestQ.asc Output map = /data/clim_2050/meanPrecipOverDriestM.asc Output map = /data/clim_2050/meanPrecipOverDriestQ.asc Output map = /data/clim_2050/meanPrecipOverFrostFreeM.asc Output mask = /data/clim_2050/stdevMeanTemp.asc
Результат моделирования
Результатом моделирования (применения модели) является растровый файл, показывающий распределение вероятности в заданной области. Охват этой области определяется пересечением охватов всех слоёв, заданных как Output map и слоя маски. Система координат результирующего растра а также размер пикселя будут такими же, как и у растра-«шаблона». «Шаблон» задается параметром Output format.
- Output file type — задает тип итогового растра. На момент написания статьи поддерживались следующие типы:
- GreyTiff — GeoTiff, оттенки серого, диапазон допустимых значений 0 - 254, «nodata» — 255
- GreyTiff100 — GeoTiff, оттенки серого, диапазон допустимых значений 0 - 100, «nodata» — 127
- FloatingTiff — GeoTiff, тип данных — десятичное число, диапазон допустимых значений 0.0 - 1.0, «nodata» — -1
- GreyBMP — BMP, оттенки серого, диапазон допустимых значений 0 - 255, «nodata» — 0
- FloatingHFA — Erdas Imagine, тип данных — десятичное число, диапазон допустимых значений 0.0 - 1.0, «nodata» — -1
- ByteHFA — Erdas Imagine, диапазон допустимых значений 0 - 100, «nodata» — 101
- ByteASC — ARC/Info ASCII grid, диапазон допустимых значений 0 - 100, «nodata» — 101
- FloatingASC — ARC/Info ASCII grid, тип данных — десятичное число, диапазон допустимых значений 0.0 - 1.0, «nodata» — -9999
- Output format — растр-«шаблон», задающий систему координат и размер пикселя для итогового файла
- Output file — абсолютный или относительный путь к файлу, в который будет записан результат применения модели
Output format = /data/clim_2050/stdevMeanTemp.asc Output file type = ByteHFA Output file = /data/output/acacia-2050.img
Параметры алгоритма
Если параметры этой группы не заданы, om_console переходит в интерактивный режим, выводит список всех имеющихся алгоримов и просит указать нужный. Аналогично будет выполняться и установка параметров алгоритма. Если же алгоритм и его параметры заданы в request-файле, то om_console будет работать в неинтерактивном режиме и обработает файл без вмешательства пользователя.
Параметры этой группы необходимы только при создании модели.
- Algorithm — идентификатор алгоритма. Если не задан, обработка файла приостанавливается и идентификатор запрашивается у пользователя. Получить список доступных алгоритмов и их идентификаторы можно при помощи om_algorithm
- Parameter — настройки алгоритма, заданного ключом Algorithm. Допускается использование нескольких ключей. Формат записи: «идентификатор_параметра значение_параметра».
Если все или часть параметров не заданы, om_console приостанавливает работу и запрашивает значение отсутствующих параметров у пользователя
Например
Algorithm = CSMBS Parameter = Randomisations 8 Parameter = StandardDeviations 2 Parameter = MinComponents 1 Parameter = VerboseDebugging 1
Полный request-файл будет иметь примерно такой вид
# occurences WKT Coord System = GEOGCS["WGS84", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Longitude",EAST], AXIS["Latitude",NORTH]] Occurrences source = /home/alex/data/gbif/physalis_peruviana.txt Occurrences group = Physalis peruviana Spatially unique = true Environmentally unique = false # input layers Map = /data/cru_bioclim/meanDiurnal.asc Map = /data/cru_bioclim/meanDiurnalOverCoolestM.asc Map = /data/cru_bioclim/meanDiurnalOverWarmestM.asc Map = /data/cru_bioclim/meanFrostDays.asc Map = /data/cru_bioclim/meanPrecip.asc Map = /data/cru_bioclim/meanPrecipOverCoolestQ.asc Map = /data/cru_bioclim/meanPrecipOverDriestM.asc Map = /data/cru_bioclim/meanPrecipOverDriestQ.asc Map = /data/cru_bioclim/meanPrecipOverFrostFreeM.asc Mask = /data/cru_bioclim/stdevMeanTemp.asc # save model as Output model = /home/alex/models/my_model.xml # apply model using this layers Output map = /data/clim_2050/meanDiurnal.asc Output map = /data/clim_2050/meanDiurnalOverCoolestM.asc Output map = /data/clim_2050/meanDiurnalOverWarmestM.asc Output map = /data/clim_2050/meanFrostDays.asc Output map = /data/clim_2050/meanPrecip.asc Output map = /data/clim_2050/meanPrecipOverCoolestQ.asc Output map = /data/clim_2050/meanPrecipOverDriestM.asc Output map = /data/clim_2050/meanPrecipOverDriestQ.asc Output map = /data/clim_2050/meanPrecipOverFrostFreeM.asc Output mask = /data/clim_2050/stdevMeanTemp.asc # result Output format = /data/clim_2050/stdevMeanTemp.asc Output file type = ByteHFA Output file = /data/output/acacia-2050.img # algorithm to use Algorithm = SVM Parameter = SvmType 0 Parameter = KernelType 2 Parameter = Degree 3 Parameter = Gamma 0 Parameter = C 1 Parameter = Coef0 0 Parameter = Nu 0.5 Parameter = ProbabilisticOutput 0 Parameter = NumberOfPseudoAbsences 500
Заключение
Как видим, ничего сложного в request-файлах нет. Простой текстовый формат позволяет легко формировать такие файлы програмно, а затем использовать их для обработки данных.