Построитель моделей позволяет создавать модели, используя простой графический интерфейс. При выполнении какого-либо анализа дело редко ограничивается одной операцией/алгоритмом, чаще всего необходимо выполнять ряд последовательных действий. Т.е. анализ можно представить в виде последовательности шагов. Построитель моделей позволяет описать эту последовательность действий один раз и в дальнейшем обращаться к ней, как к единому целому. Такой подход позволяет сократить время на выполнение обработки большого количества данных. Не важно, сколько шагов необходимо выполнить для достижения результата, модель выполняется как один алгоритм. Такой подход даёт значительную экономию времени и усилий, особенно в случае больших моделей.
Редактор моделей можно вызвать из меню Анализ ‣ Редактор моделей
Окно построителя моделей состоит из двух частей: слева находится панель вкладок, в ней выбирают составные элементы модели (исходные данные и алгоритмы), справа — рабочая область, где и создаётся модель.
Figure Processing 16:
Создание модели условно можно разделить на два этапа:
Определение исходных данных. Эти данные будут отображаться в диалоге настройки, и пользователь сможет их менять перед запуском модели. Модель сама по себе является алгоритмом, так что диалог настройки создаётся автоматически, как и для всех остальных алгоритмов платформы.
Описание процесса. На этом шаге устанавливаются связи между исходными данными и отдельными алгоритмами, определяется порядок выполнения действий.
Перед созданием модели нужно задать необходимые исходные данные. Все доступные исходные данные собраны в левой части окна построителя моделей, на вкладке Исходные данные:
растровый слой (raster layer)
векторный слой (vector layer)
строка (string)
поле таблицы (table field)
таблица (table)
охват (extent)
число (number)
логическая величина (boolean)
файл (file)
Двойной щелчок на каком-либо элементе вызовет диалог настройки. В зависимости от типа, содержимое диалога будет отличаться. Общим для всех является поле названия параметра Parameter name, где необходимо указать название нового элемента (этот текст будет использован как подпись поля в диалоге запуска модели). В зависимости от типа данных, остальные поля будут отличаться. Например, если выбрано числовое значение, помимо названия требуется указать значение по умолчанию, а также диапазон допустимых значений.
Figure Processing 17:
После заполнения полей, в рабочую область построения модели добавится новый блок, соответствующий новому элементу.
Figure Processing 18:
После того, как заданы все исходные данные, можно приступать к описанию процесса анализа. Доступные алгоритмы находятся на вкладке Algorithms в левой части окна. Алгоритмы сгруппированы точно так же как и в панели инструментов.
Figure Processing 19:
Список алгоритмов в редакторе моделей также имеет два режима: упрощённый и расширенный. Однако возможность переключения между ними в редакторе отсутствует, это можно сделать только в основной панели инструметов. Режим, выбранный для панели инструментов будет также использоваться и в редакторе моделей.
Для добавления алгоритма дважды щелкните по его имени в списке. Появится диалог настроек алгоритма, похожий на тот, что открывается при вызове алгоритма из панели инструментов. Ниже показан диалог настройки для алгоритма SAGA «Convergence index», того же, который мы использовали в разделе, посвященном панели инструментов.
Figure Processing 20:
Как видим, есть несколько отличий. Вместо поля для указания выходного файла используется обычное поле ввода. Если слой, создаваемый алгоритмом, является временным результатом и используется только в качестве исходных данных для другого алгоритма и не должен сохраняться как конечный результат, ничего не вводите в это поле. Если в поле что-то написано, это значит, что этот результат является конечным, а введённый текст будет использоваться в качестве описания результата, которое показывается пользователю при выполнении модели.
Выбор значений параметров также отличается, т.к. имеется значительное отличие между контекстами построителя моделей и панели инструментов. Эти отличия описаны ниже.
Слои (растровые и векторные) и таблицы по прежнему выбираются из списка. Но в этом случае в списке находятся только слои, заданные в качестве исходных данных, а также слои, полученные в результате работы других алгоритмов модели.
Числовые значения могут быть заданы пользователем путем ввода значения в поле. Но это поле также позволяет выбирать любое из значений, определенных в качестве исходных данных модели. В этом случае значение параметра необходимо будет ввести при запуске модели.
Строки. Как и в случае чисел, значения строк могут быть заданы пользователем или выбраны из списка строк, сгенерированных другими алгоритмами.
Поле таблицы. Список полей таблицы или слоя в момент создания модели не известен, поскольку он зависит от того, какой слой будет выбран пользователем. Поэтому имя поля в большинстве случаев необходимо вводить вручную. Исключением является ситуация, когда используется поле слоя или таблицы, определенных в качестве исходных данных, в этом случае возможен выбор из выпадающего списка. Правильность введеного имени поля проверяется на этапе выполнения модели.
Кроме того, в окне присутствует дополнительный параметр Parent algorithms, который отсутствует при запуске алгоритма из панели инструментов. Этот параметр позволяет установить порядок выполнения алгоритмов, указывая родительский алгоритм, который должен быть выполнен перед запуском текущего.
При использовании результата работы одного алгоритма в качестве входных данных другого первый становится неявным родителем для второго (и в редакторе моделей связь между алгоритмами обозначается стрелкой). Однако, в некоторых случаях алгоритм может зависеть од другого даже если он не использует его результаты (например, алгоритм, выполняющий запрос к базе PostGIS, и другой алгоритм, загружающий слой в эту же базу). В таком случае достаточно задать параметр Parent algorithms и алгоритмы будут выполнены в правильном порядке.
После того, как все параметры алгоритма определены, нажимаем [OK], и блок алгоритма будет добавлен в рабочую область. Он будет связан с со всеми другими элементами (исходными данными и другими алгоритмами), которые предоставляют ему исходные данные.
Figure Processing 21:
Все элементы модели можно перетаскивать в пределах рабочей области, меняя их расположение и делая схему модели более легкой для восприятия. При этом связи между элементами будут обновляться автоматически.
В процессе создания модели можно в любое время проверить её работоспособность, нажав кнопку [Run]. Но чтобы использовать модель из панели инструментов необходимо её сохранить и закрыть окно построителя.
Сохранение текущей модели выполняется по нажатию кнопки [Save], нажатие кнопки [Open] позволяет загрузить любую ранее сохраненную модель. Модели сохраняются в файлы с расширением .model. Если модель уже была сохранена, имя файла запрашиваться не будет, т.к. файл, связанный с моделью, уже существует.
Прежде чем сохранять модель, ей надо дать имя и указать в какой группе она будет находиться. Эти данные вносятся в два поля над рабочей областью построителя моделей.
По умолчанию модели сохраняются в папке models каталога пользователя, и отображаются в соответствующей группе панели инструментов. При вызове панели инструментов, в каталоге models ищутся файлы с расширением .model и загружаются содержащиеся в них модели. Так как модели являются алгоритмами, они добавляются на панель инструментов как и все остальные алгоритмы.
Расположение каталога моделей, при желании путь можно изменить в настройках в группе Modeler.
Модели, загруженные из каталога models появляются не только в панели инструментов, но и в списке алгоритмов вкладки Алгоритмы редактора моделей. Это значит, что модель может использоваться внутри более крупной модели, как любой другой алгоритм.
В некоторых случаях модель загрузить не удаётся, так как не удаётся найти все используемые в ней алгоритмы. Если какой-либо алгоритм используется в модели, он должен быть быть доступен (т.е. отображаться в панели инструментов) при загрузке этой модели. Деактивация провайдера в окне настройки платформы делает все его алгоритмы недоступными для редактора моделей, и может приводить к проблемам при их загрузке. Имейте это ввиду, когда сталкиваетесь с ошибками загрузки или выполнения моделей.
Текущую модель можно редактировать, изменяя описание процесса и меняя связи между алгоритмами и исходными данными, описающими модель.
Нажатие правой клавиши мыши на блоке алгоритма вызовет следующее контекстное меню:
Figure Processing 22:
Выбор пункта Remove приведет к удалению выделенного блока алгоритма. Необходимо помнить, что алгоритм может быть удален тогда и только тогда, когда нет других, зависящих от него, алгоритмов. Т.е. результаты удаляемого алгоритма нигде не используются. Если вы попытаетесь удалить алгоритм, от которого зависят другие алгоритмы, появится предупреждение:
Figure Processing 23:
Пункт Edit или просто двойной щелчок по блоку алгоритма откроют диалог настройки параметров, где можно изменить исходные данные и значения параметров. В этом случае в качестве доступных исходных данных будут отображены не все имеющиеся в модели данные. Слои и значения, созданные на более поздних этапах процесса будут недоступны, если они приводят к циклическим зависимостям.
Выберите новые значения и нажмите кнопку [OK]. Связи между элементами модели будут соответствующим образом обновлены.
Иногда возникает необходимость исключить определенные действия из модели не удаляя их. В этом случае соотвествующий алгоритм нужно деактивировать.
Для деактивации алгоритма вызовите контекстное меню и выберите пункт Deactivate. Деактивированные блоки отображаются красным цветом и помечаются специальной подписью «[deactivated]».
Figure Processing 24:
Все зависящие от них (прямо или косвенно) алгоритмы также будут деактивированы, т.к. теперь они не могут быть выполнены.
Активировать алгоритм очень просто, снова вызываем контекстное меню и выбираем пункт Activate.
Созданные модели можно документировать. Для этого нажмите на кнопку [Edit model help], откроется диалог редактирования описания модели.
Figure Processing 25:
В правой части отображается простая HTML-страница, созданная на основе описаний исходных и выходных данных модели, а также некоторые общие сведения, такие как описание модели и её автор. При первом открытии редактора все эти описания пустые. Для их редактирования используются поля ввода в левой части окна. В верхнем поле выбирается элемент, описание которого необходимо добавить, в нижнем — добавляется текст.
Описание модели сохраняется в тот же каталог, что и сама модель, автоматически при сохранении модели.
Возможно, вы обратили внимание на то, что не все алгоритмы, присутствующие в панели инструментов, доступны в построителе моделей. Чтобы использоваться в модели, алгоритм должен иметь корректную семантику, т.е. иметь возможность связываться с другими элементами процесса. Если алгоритм не имее такой четко определённой семантики (например, число выходных слоёв заранее не известно), то он не может использоваться в модели, и соответственно, не будет отображаться в списке доступных алгоритмов построителя моделей.
Кроме того, в редакторе моделей есть алгоритмы, недоступные в панели инструментов. Эти алгоритмы созданны специально для использования исключительно в моделях и не представляют никакого интереса вне их. Примером такого алгоритма может служить «Calculator». Этот алгоритм реализует простой арифметический калькулятор и используется для изменения числовых значений (введённых пользователем или сгенерированных каким-либо алгоритмом). Подобные инструменты исключительно полезны в моделях, но не имеют никакого смысла вне их.
После создания модели можно автоматически сгенерировать код Python, который будет выполнять те же действия, что и модель. Эот код может использоваться для создания консольного скрипта (рассматривается в одном из следующих разделов), а также модифицироваться путём добавления действий и методов, недоступных в редакторе моделей, например циклов или условных операторов.
Также это хороший способ познакомиться с возможностями платформы геообработки по созданию скриптов и научиться создавать новые алгоритмы на Python.
Сохраните модель в каталог models и откройте панель инструментов. Модель должна появиться в списке алгороитмов. Вызовите контекстное меню и выберите пункт Save as Python script. Откроется диалог, в котором необходимо указать расположение файла скрипта.