Примеры использования Логических инструментов в ModelBuilder

Если данные существуют

В следующем примере используется инструмент Если данные существуют, который проверяет, существуют ли входные объекты, указанные в параметре модели. Инструмент Если данные существуютвыводит две Булевы переменные, True и False. Если данные есть, выходная переменная будет True, и предварительное условие, установленное для значения true, соответственно запускает инструмент Вычислить поле. Если выходное значение процесса – False – то есть выходные данные не существуют, в модели запускается процесс копирования другого набора данных, и только потом запускается инструмент Вычислить поле, использующий в качестве входного другой набор данных.

Если данные существуют в ModelBuilder

Если поле существует

В следующем примере используется инструмент Если поле существует, для проверки наличия поля с указанными именем в наборе данных. Инструмент Если поле существуетвыводит две Булевы переменные, True и False. Если поле отсутствует, выходная переменная будет False, и предварительное условие, установленное для этого значения, соответственно запускает инструмент Добавить поле. Если же выходная переменная ­ True ­ то есть поле существует - модель заканчивается, так как к ветви True не подсоединены другие процессы.

Если поле существует в ModelBuilder

Если выборка существует

В следующем примере используется инструмент Если выборка существует, для проверки, содержат ли входные данные какие-либо выбранные объекты, и если да – возвращает число выбранных объектов. Если выборка существует Используется после запуска инструмента Выбрать в слое по атрибуту. Инструмент Если выборка существуетвыводит две Булевы переменные, True и False. Если во входных данных есть какие-либо выбранные объекты, выходная переменная будет True, и предварительное условие, установленное для значения true, соответственно запускает инструмент Суммарная статистика. Если же выходная переменная ­ False ­ то есть выбранных объектов нет - модель заканчивается, так как к ветви False не подсоединены другие процессы.

Если выборка существует в ModelBuilder

Если система координат

В следующем примере используется инструмент Если система координат, который проверяет, ModelBuilder соответствует ли система координат набора данных установленной. Инструмент Если система координат выводит две Булевы переменные, True и False. Эта модель итерирует классы объектов в базе геоданных и проверяет для каждого класса объектов соответствие ли система координат класса определенной, указанной в функции. Если пространственная привязка каждого класса объектов не соответствует указанной, возвращается значение False и предварительное условие, установленное на true, запускает инструмент Проецировать. Если же выходная переменная ­ True ­ то есть система координат набора данных не соответствует указанной ­ модель заканчивается, так как к ветви True не подсоединены другие процессы.

Если система координат – в ModelBuilder

Если тип данных

В следующем примере используется инструмент Если тип данных для проверки, соответствует ли тип данных входному набору. Инструмент Если тип данных выводит две Булевы переменные, True и False. Модель проверяет, являются ли входные данные, указанные в параметре модели, шейп-файлом или классом объектов, и обрабатывает данные соответственно. Если входные данные в формате шейп-файла, выходная переменная будет True, и предварительное условие, установленное для значения true, запускает нижнюю ветвь с множественным запуском инструментов Добавить поле и Вычислить поле. Если же выходная переменная – False – то есть входные данные не в формате шейп-файла, модель пойдет по верхней ветви.

Если тип данных – в ModelBuilder

Если тип объекта

В следующем примере используется инструмент Если тип объекта, который проверяет, является ли указанный набор данных классом точечных объектов. Инструмент Добавить положения воспринимает в качестве входных объектов только точки, то есть если в качестве входного в модель добавлен не точечный класс объектов, сначала он будет конвертирован в класс точечных объектов. Инструмент Если тип объекта выводит две Булевы переменные, True и False. Если входные объекты – линии или полигоны, выходная переменная будет True, и предварительное условие, установленное для значения true запустит инструмент Объект в точки для конвертации входного класса объектов в точечный. Если выходная переменная – False – то есть выходные данные не являются линиями или полигонами, модель будет использовать входной класс как есть, без предварительной в точечные объекты.

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

Если тип объекта – в ModelBuilder

Если значение поля равно

В следующем примере показано использование инструмента Если значение поля равно для проверки, содержится ли указанное значение в атрибутивном поле. Инструмент Если значение поля равно выводит две Булевы переменные, True и False. Если указанное поле содержит проверяемое значение, выходная переменная будет True, и предварительное условие, установленное для значения true, соответственно запускает инструмент Применить символы слоя. Если указанное поле не содержит проверяемое значение, выходная переменная будет False и запустится инструмент Добавить соединение перед тем, как применять символы.

Если значение поля равно в ModelBuilder

Если число строк равно

В следующем примере используется функция Если число строк равно для подсчета числа записей во входном наборе данных. Инструмент Если число строк равно выводит две Булевы переменные, True и False. Если входной набор данных содержит более одного объекта, выходная переменная будет True, и предварительное условие, установленное для значения true, соответственно запускает инструмент Слияние по атрибуту. Если во входном наборе не содержится более одного объекта, выходная переменная будет False, и в результате запустится нижняя ветвь модели.

Если число строк равно в ModelBuilder

Если пространственное отношение

В следующем примере используется инструмент Если пространственное отношение, для проверки, имеет ли слой объекты, которые находятся в пространственных отношениях с объектами другого слоя. Логический инструмент Если пространственное отношениевыводит две Булевы переменные, True и False. В этом примере, если какие-либо данные о преступлениях пересекают район школы, возвращается значение True, и предварительное условие, установленное для значения true, соответственно запускает инструменты Создать векторный слой и Выбрать в слое по расположению. Если же выходная переменная ­ False ­ то есть ни один из входных объектов не находится в пространственных отношениях с выбранными объектами - модель заканчивается, так как к ветви False не подсоединены другие процессы.

Если пространственное отношение в ModelBuilder

Если значение равно

В следующем примере используется инструмент Если значение равно для поиска доступного жилья из текущих списков объектов недвижимости. В модели есть три параметра, которые позволяют потенциальным покупателям указать три значения Тип недвижимости, Максимальная стоимость и булево выражение для вопроса Вы готовы изменить цену?. Логический инструмент Если значение равно проявит ли потенциальный покупатель гибкость с выбранными значениями. Инструмент Если значение равно выводит две Булевы переменные, True и False. Если покупатель готов проявить гибкость, возвращается значение True и предварительное условие, установленное для значения true, позволяет инструменту Выбрать в слое по атрибуту добавить буфер в $100000 к указанной стоимости перед выбором всех домов из списка доступных. Если покупатель не проявляет гибкость, возвращается значение False и предварительное условие запустит другой вариант инструмента Выбрать в слое по атрибуту, чтобы выбрать только те дома, стоимость которых соответствует диапазону, определенному покупателем.

Если значение равно в ModelBuilder