Построитель моделей SEXTANTE

Введение

Построитель моделей позволяет создавать модели, используя простой графический интерфейс. При выполнении какого-либо анализа дело редко ограничивается одной операцией/алгоритмом, чаще всего необходимо выполнять ряд последовательных действий. Т.е. анализ можно представить в виде последовательности шагов. Построитель моделей позволяет описать эту последовательность действий один раз и в дальнейшем обращаться к ней, как к единому целому. Такой подход позволяет сократить время на выполнение обработки большого количества данных. Не важно, сколько шагов необходимо выполнить для достижения результата, модель выполняется как один алгоритм. Такой подход даёт значительную экономию времени и усилий, особенно в случае больших моделей.

Вызвать построитель моделей можно как из меню Анализ ‣ SEXTANTE modeler, так и из панели инструментов: в группе Modeler, в разделе Tools находится единственный элемент для создания новой модели Create new model.

Окно построителя моделей состоит из двух частей: слева находится панель вкладок, в ней выбирают составные элементы модели (исходные данные и алгоритмы), справа — рабочая область, где и создаётся модель.

Figure SEXTANTE 14:

../../../_images/modeler_canvas.png

Modeler win

Создание модели условно можно разделить на два этапа:

  1. Определение исходных данных. Эти данные будут отображаться в диалоге настройки, и пользователь сможет их менять перед запуском модели. Модель сама по себе является алгоритмом SEXTANTE, так что диалог настройки создаётся автоматически, как и для всех остальных алгоритмов.

  2. Описание процесса. На этом шаге устанавливаются связи между исходными данными и отдельными алгоритмами, определяется порядок выполнения действий.

Определение исходных данных

Перед созданием модели нужно задать необходимые исходные данные. Все доступные исходные данные собраны в левой части окна построителя моделей, на вкладке Inputs:

  • растровый слой (raster layer)

  • векторный слой (vector layer)

  • строка (string)

  • поле таблицы (table field)

  • таблица (table)

  • число (number)

  • логическое значение (boolean)

Двойной щелчок на каком-либо элементе вызовет диалог настройки. В зависимости от типа, содержимое диалога будет отличаться. Общим для всех является поле названия параметра Parameter name, где необходимо указать название нового элемента (этот текст будет использован как подпись поля в диалоге запуска модели). В зависимости от типа данных, остальные поля будут отличаться. Например, если выбрано числовое значение, помимо названия требуется указать значение по умолчанию, а также диапазон допустимых значений.

Figure SEXTANTE 15:

../../../_images/models_parameters.png

Model Parameters win

После заполнения полей, в рабочую область построения модели добавится новый блок, соответствующий новому элементу.

Figure SEXTANTE 16:

../../../_images/models_parameters2.png

Model Parameters win

Описание процесса

После того, как заданы все исходные данные, можно приступать к описанию процесса анализа. Доступные алгоритмы находятся на вкладке Algorithms в левой части окна. Алгоритмы сгруппированы точно так же как и в панели инструментов.

Figure SEXTANTE 17:

../../../_images/models_parameters3.png

Model Parameters win

Для добавления алгоритма дважды щелкните по его имени в списке. Появится диалог настроек алгоритма, похожий на тот, что открывается при вызове алгоритма из панели инструментов. Ниже показан диалог настройки для алгоритма SAGA «Convergence index», того же, который мы использовали в разделе, посвященном панели инструментов SEXTANTE.

Figure SEXTANTE 18:

../../../_images/models_parameters4.png

Model Parameters win

Как видим, есть несколько отличий. Вместо поля для указания выходного файла используется обычное поле ввода. Если слой, создаваемый алгоритмом, является временным результатом и используется только в качестве исходных данных для другого алгоритма и не должен сохраняться как конечный результат, ничего не вводите в это поле. Если в поле что-то написано, это значит, что этот результат является конечным, а введённый текст будет использоваться в качестве описания результата, которое показывается пользователю при выполнении модели.

Выбор значений параметров также отличается, т.к. имеется значительное отличие между контекстами построителя моделей и панели инструментов. Эти отличия описаны ниже.

  • Слои (растровые и векторные) и таблицы по прежнему выбираются из списка. Но в этом случае в списке находятся только слои, заданные в качестве исходных данных, а также слои, полученные в результате работы других алгоритмов модели.

  • Числовые значения могут быть заданы пользователем путем ввода значения в поле. Но это поле также позволяет выбирать любое из значений, сгенерированных другими алгоритмами модели.

  • Строки. Как и в случае чисел, значения строк могут быть заданы пользователем или выбраны из списка строк, сгенерированных другими алгоритмами.

  • Поле таблицы. Список полей таблицы или слоя в момент создания модели не известен, поскольку он зависит от того, какой слой будет выбран пользователем. Поэтому имя поля в большинстве случаев необходимо вводить вручную. Исключением является ситуация, когда используется поле слоя или таблицы, определенных в качестве исходных данных, в этом случае возможен выбор из выпадающего списка. Правильность введеного имени поля проверяется на этапе выполнения модели.

После того, как все параметры алгоритма определены, нажимаем [OK], и блок алгоритма будет добавлен в рабочую область. Он будет связан с со всеми другими элементами (исходными данными и другими алгоритмами), которые предоставляют ему исходные данные.

Figure SEXTANTE 19:

../../../_images/models_parameters5.png

Model Parameters win

Все элементы модели можно перетаскивать в пределах рабочей области, меняя их расположение и делая схему модели более легкой для восприятия. При этом связи между элементами будут обновляться автоматически.

В процессе создания модели можно в любое время проверить её работоспособность, нажав кнопку [Run]. Но чтобы использовать модель из панели инструментов необходимо её сохранить и закрыть окно построителя.

Сохранение и загрузка модели

Сохранение текущей модели выполняется по нажатию кнопки [Save], нажатие кнопки [Open] позволяет загрузить любую ранее сохраненную модель. Модели сохраняются в файлы с расширением .model. Если модель уже была сохранена, имя файла запрашиваться не будет, т.к. файл, связанный с моделью, уже существует.

Прежде чем сохранять модель, ей надо дать имя и указать в какой группе она будет находиться. Эти данные вносятся в два поля над рабочей областью построителя моделей.

По умолчанию модели сохраняются в папке models каталога пользователя, и отображаются в соответствующей группе панели инструментов. При вызове панели инструментов, SEXTANTE ищет в каталоге models файлы с расширением .model и загружает, содержащиеся в них модели. Так как модели являются алгоритмами SEXTANTE, они добавляются на панель инструментов как и все остальные алгоритмы.

Расположение каталога моделей, при желании путь можно изменить в настройках SEXTANTE (Анализ ‣ SEXTANTE options and configuration ‣ Modeler ‣ Models folder).

Модели, загруженные из каталога models появляются не только в панели инструментов, но и в списке алгоритмов вкладки Algorithms построителя моделей. Это значит, что модель может использоваться внутри более крупной модели, как любой другой алгоритм.

В некоторых случаях SEXTANTE не может загрузить модель, так как не может найти все используемые в ней алгоритмы. Если какой-либо алгоритм используется в модели, он должен быть быть доступен (т.е. отображаться в панели инструментов) при загрузке этой модели. Деактивация провайдера в окне настройки SEXTANTE делает все его алгоритмы недоступными для построителя моделей, и может приводить к проблемам при их загрузке. Имейте это ввиду, когда сталкиваетесь с ошибками загрузки или выполнения моделей.

Редактирование модели

Текущую модель можно редактировать, изменяя описание процесса и меняя связи между алгоритмами и исходными данными, описающими модель.

Нажатие правой клавиши мыши на блоке алгоритма вызовет следующее контекстное меню:

Figure SEXTANTE 20:

../../../_images/modeler_right_click.png

Modeler Right Click win

Выбор пункта Remove приведет к удалению выделенного блока алгоритма. Необходимо помнить, что алгоритм может быть удален тогда и только тогда, когда нет других, зависящих от него, алгоритмов. Т.е. результаты удаляемого алгоритма нигде не используются. Если вы попытаетесь удалить алгоритм, от которого зависят другие алгоритмы, SEXTANTE отобразит предупреждение:

Figure SEXTANTE 21:

../../../_images/cannot_delete_alg.png

Cannot Delete ALG win

Пункт Edit или просто двойной щелчок по блоку алгоритма откроют диалог настройки параметров, где можно изменить исходные данные и значения параметров. В этом случае в качестве доступных исходных данных будут отображены не все имеющиеся в модели данные. Слои и значения, созданные на более поздних этапах процесса будут недоступны, если они приводят к циклическим зависимостям.

Выберите новые значения и нажмите кнопку [OK]. Связи между элементами модели будут соответствующим образом обновлены.

Активация и деактивация алгоритмов

Иногда возникает необходимость исключить определенные действия из модели не удаляя их. В этом случае соотвествующий алгоритм нужно деактивировать.

Для деактивации алгоритма вызовите контекстное меню и выберите пункт Deactivate. Деактивированные блоки отображаются красным цветом и помечаются специальной подписью «[deactivated]».

Figure SEXTANTE 22:

../../../_images/deactivated.png

Deactivate win

Все зависящие от них (прямо или косвенно) алгоритмы также будут деактивированы, т.к. теперь они не могут быть выполнены.

Активировать алгоритм очень просто, снова вызываем контекстное меню и выбираем пункт Activate.

Документирование моделей

Созданные модели можно документировать. Для этого нажмите на кнопку [Edit model help], откроется диалог редактирования описания модели.

Figure SEXTANTE 23:

../../../_images/help_edition.png

Help Edition win

В правой части отображается простая HTML-страница, созданная на основе описаний исходных и выходных данных модели, а также некоторые общие сведения, такие как описание модели и её автор. При первом открытии редактора все эти описания пустые. Для их редактирования используются поля ввода в левой части окна. В верхнем поле выбирается элемент, описание которого необходимо добавить, в нижнем — добавляется текст.

Описание модели сохраняется в тот же каталог, что и сама модель, автоматически при сохранении модели.

Немного о доступных алгоритмах

Возможно, вы обратили внимание на то, что не все алгоритмы, присутствующие в панели инструментов, доступны в построителе моделей. Чтобы использоваться в модели, алгоритм должен иметь корректную семантику, т.е. иметь возможность связываться с другими элементами процесса. Если алгоритм не имее такой четко определённой семантики (например, число выходных слоёв заранее не известно), то он не может использоваться в модели, и соответственно, не будет отображаться в списке доступных алгоритмов построителя моделей.

Кроме того, в построителе моделей есть алгоритмы, недоступные в панели инструментов. Эти алгоритмы созданны специально для использования исключительно в моделях и не представляют никакого интереса вне их. Примером такого алгоритма может служить «Calculator». Этот алгоритм реализует простой арифметический калькулятор и используется для изменения числовых значений (введённых пользователем или сгенерированных каким-либо алгоритмом). Подобные инструменты исключительно полезны в моделях, но не имеют никакого смысла вне их.

Конвертация моделей SEXTANTE в код Python

Эта возможность временно недоступна

Помимо вкладки с графическим представлением модели, в построителе есть и вторая — содержащая скрипт на языке Python, который выполняеет те же действия, что и модель. Используя этот код можно создать скрипт для консоли (использование консоли рассматривание ниже) или модифицировать, добавив методы и действия, недоступные в построителе моделей, например циклы или условные операторы.

Эта возможность также являеться отличным подспорьем при изучении консольного интерфейса SEXTANTE и создании собственных алгоритмов на языке Python.

Под полем с Python-кодом находится кнопка. Нажав на неё вы создадите новый скрипт из этого кода, без необходимости копировать и вставлять его в редактор скриптов SEXTANTE.