Вычислить значение (ModelBuilder)

Краткая информация

Получить значение на основе заданного выражения Python.

Использование

  • Этот инструмент предназначен для использования в ModelBuilder, а не в скриптах Python.

  • Параметр Тип данных используется в ModelBuilder, чтобы упростить связывание выходных данных инструмента Вычислить значение с другими инструментами. Например, если вы используете инструмент Вычислить значение, чтобы вычислить расстояние для использования в качестве входных данных для параметра Буферное расстояние инструмента Буфер, задайте Линейные единицы для параметра Тип данных.

  • В этом инструменте можно использовать переменные, созданные в ModelBuilder, но переменные, которые желательно использовать в параметре выражения, нельзя соединить с инструментом Вычислить значение. Чтобы использовать их в выражении, заключите имя переменной в знаки процента (%). Например, если вы хотите разделить переменную 'Input' на 100, выражение будет таким %Input%/100.

    Примечание: в предыдущем выражении если Input = 123, результатом выражения будет 1. Чтобы получить десятичные знаки, добавьте десятичный разделитель в выражение. Например: %Input%/100.00 вернет 1.23. Следующий рисунок показывает другой пример использования переменных в выражении.

    Использование переменной модели в инструменте Вычислить значение
    Внимание:

    Встроенные переменные строкового типа должны быть заключены в кавычки ("%string variable%") в выражении. Встроенные переменные числовых типов (double, long) не требуют кавычек (%double%).

  • Выражения могут быть составлены только в стандартном формате Python. Другие языки скриптов не поддерживаются.

  • Инструмент Вычислить значение может вычислить простые математические выражения. Пример:

    • 3+5
    • 9*8
    • 4+(9/3)
  • Инструмент Вычислить значение позволяет использовать математический модуль Python для выполнения более сложных математических операций. Можно получить доступ к математическому модулю, поставив перед нужной функцией math. Пример:

    • math.sqrt(25)
    • math.cos(0.5)
  • Константы также поддерживаются математическим модулем. Пример:

    • math.pi
  • Модуль random используется для генерирования случайных значений. Примеры использования random:

    • Вычисление случайного целого значения, располагающегося между 0 и 10: random.randint(0, 10)
    • Вычисление случайного значения из нормального распределения со средним значением 10 и стандартным отклонением 3: random.normalvariate(10, 3)

    Прежние версии:

    arcgis.rand() в ArcGIS Pro 2.0 больше не поддерживается. Вместо этого следует использовать похожие функции модуля Python random. Для успешного использования модуля random добавьте его в виде импорта в параметр Блок кода.

  • Как правило, вы будете задавать выражения в параметре Выражение. Более сложные выражения, такие как мультилинейные вычисления или логические операции (если такие будут), требуют использования параметра Блок кода. Параметр Блок кода нельзя использовать сам по себе, его нужно использовать только вместе с параметром Выражение.

  • Выражение может ссылаться на переменные, заданные в параметре Блок кода.

    Использование Выражения и Блока кода

  • В параметре Блок кода можно задавать функции и вызывать их из выражения. В приведенном ниже примере, функция выдает строку направления ветра на основе случайного входного значения. В Python функции задаются с помощью ключевого слова def, за которым следует имя функции и входные параметры функции. В нашем случае это функция getWind с одним параметром, wind. Значения возвращаются из функции с помощью ключевого слова return.

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

    Пример If-Else

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

    Пример метода replace Python

  • В параметре блока кода можно вызвать модули Python и объединить или собрать методы, в частности замену. В приведенном ниже примере модуль time импортирован в блоке кода, который возвращает текущие дату и время, такие как Fri Mar 19 2010 09:42:39. Это полученное значение используется в качестве имени папки в инструменте Создать папку. Поскольку имя папки не может содержать пробелы и знаки препинания, метод Python replace используется с помощью накопления метода для каждого элемента, который требуется заменить. В данном примере папка получит имя FriMar192010094239.

    Модуль времени Python. Пример

  • Если вы будете вычислять значение в модели и захотите использовать полученные значения с такими инструментами, как Буфер, которым требуется значение буферного расстояния, то вам придется:

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

  • Результат инструмента Вычислить значение можно использовать непосредственно в любом из инструментов модуля Spatial Analyst, которые принимают растровые или постоянные значения, таких как Сложить, Больше и Меньше (эти инструменты находятся в наборе инструментов модуля Spatial Analyst в группе Математические). Для того, чтобы использовать выходные данные инструмента Вычислить значение, измените тип выходных данных на формализованный растр. Этот формат типа выходных данных представляет собой растровую поверхность, значения ячеек которой представлены формулой или константой.

    Тип данных формализованного растра

  • В синтаксисе Python поддерживаются отступы. Уровень отступа (два пробела или четыре пробела) не имеет значения, поскольку соответствует всем кодам блокировки.

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

  • Примечание:

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

Параметры

ПодписьОписаниеТип данных
Выражение

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

SQL Expression
Блок кода
(Дополнительный)

Блок кода Python. На код в коде блокировки можно сослаться в параметре Выражение .

String
Тип данных
(Дополнительный)

Тип выходных данных, полученным выражением Python. Этот параметр следует использовать в ModelBuilder, чтобы связать в последовательность инструмент Вычислить значение и другие инструменты.

  • Локатор адресов —Локатор адресов
  • Стиль локатора адресов —Стиль локатора адресов
  • Размер ячейки анализа —Размер ячейки анализа
  • Слой аннотаций —Слой аннотаций
  • Любое значение —Любое значение
  • Документ ArcMap —Документ ArcMap
  • Единицы измерения площади —Единицы измерения площади
  • Рабочая область файлов BIM —Рабочая область файлов BIM
  • Boolean —Boolean
  • Слой категории зданий —Слой категории зданий
  • Слой сцены категории зданий —Слой сцены категории зданий
  • Слой зданий —Слой зданий
  • Слой сцены зданий —Слой сцены зданий
  • Набор данных чертежа САПР —Набор данных чертежа САПР
  • Выражение калькулятора —Выражение калькулятора
  • Корневой узел каталога —Корневой узел каталога
  • Размер ячейки —Размер ячейки
  • Размер ячейки XY —Размер ячейки XY
  • Составной слой —Составной слой
  • Сжатие —Сжатие
  • Система координат —Система координат
  • Папка систем координат —Папка систем координат
  • Покрытие —Покрытие
  • Класс объектов покрытия —Класс объектов покрытия
  • Элемент данных —Элемент данных
  • Файл данных —Файл данных
  • Подключения к базам данных —Подключения к базам данных
  • Набор данных —Набор данных
  • Date —Date
  • Таблица dBASE —Таблица dBASE
  • Прореживание —Прореживание
  • Слой схемы —Слой схемы
  • Слой размеров —Слой размеров
  • Подключение диска —Подключение диска
  • Double —Double
  • Слой поверхности высот —Слой поверхности высот
  • Зашифрованная строка —Зашифрованная строка
  • Конверт —Конверт
  • Шкала оценки —Шкала оценки
  • Экстент —Экстент
  • Извлечение значений —Извлечение значений
  • Класс пространственных объектов —Класс пространственных объектов
  • Набор классов объектов —Набор классов объектов
  • Векторный слой —Векторный слой
  • Набор объектов —Набор объектов
  • Поле —Поле
  • Информация поля —Информация поля
  • Сопоставление полей —Сопоставление полей
  • Файл —Файл
  • Папка —Папка
  • Формализованный растр —Формализованный растр
  • Нечеткая функция —Нечеткая функция
  • Сервер геоданных —Сервер геоданных
  • Набор геоданных —Набор геоданных
  • Геометрическая сеть —Геометрическая сеть
  • Геостатистический слой —Геостатистический слой
  • Геостатистическая окрестность поиска —Геостатистическая окрестность поиска
  • Таблица геостатистических значений —Таблица геостатистических значений
  • GlobeServer —GlobeServer
  • GPServer —GPServer
  • Диаграмма —Диаграмма
  • Таблица данных диаграммы —Таблица данных диаграммы
  • Составной слой —Составной слой
  • Горизонтальный фактор —Горизонтальный фактор
  • Сервис изображений —Сервис изображений
  • Индекс —Индекс
  • Выражение INFO —Выражение INFO
  • Элемент INFO —Элемент INFO
  • Таблица INFO —Таблица INFO
  • Веб-слой, разделенный на листы —Веб-слой, разделенный на листы
  • Слой KML —Слой KML
  • Набор данных LAS —Набор данных LAS
  • Слой набора данных LAS —Слой набора данных LAS
  • Слой —Слой
  • Файл слоя —Файл слоя
  • Компоновка —Компоновка
  • Линии —Линии
  • Единица длины —Единица длины
  • Long —Long
  • M домен —M домен
  • Карта —Карта
  • Картографический сервис —Картографический сервис
  • Слой картографического сервера —Слой картографического сервера
  • Набор данных мозаики —Набор данных мозаики
  • Слой мозаики —Слой мозаики
  • Окрестность —Окрестность
  • Список полей класса Network Analyst —Список полей класса Network Analyst
  • Настройки иерархии Network Analyst —Настройки иерархии Network Analyst
  • Слой Network Analyst —Слой Network Analyst
  • Источник сетевых данных —Источник сетевых данных
  • Набор сетевых данных —Набор сетевых данных
  • Слой набора сетевых данных —Слой набора сетевых данных
  • Режим передвижения по сети —Режим передвижения по сети
  • Набор данных участков —Набор данных участков
  • Набор данных участков для ArcMap —Набор данных участков для ArcMap
  • Слой набора данных участков для ArcMap —Слой набора данных участков для ArcMap
  • Слой участков —Слой участков
  • Точка —Точка
  • Полигон —Полигон
  • Файл проекции —Файл проекции
  • Пирамидные слои —Пирамидные слои
  • Радиус —Радиус
  • Генератор случайных чисел —Генератор случайных чисел
  • Канал растра —Канал растра
  • Выражение калькулятора растра —Выражение калькулятора растра
  • Каталог растров —Каталог растров
  • Слой каталога растров —Слой каталога растров
  • Слой растровых данных —Слой растровых данных
  • Набор растровых данных —Набор растровых данных
  • Растровый слой —Растровый слой
  • Статистика растра —Статистика растра
  • Растровый тип —Растровый тип
  • Набор записей —Набор записей
  • Класс отношений —Класс отношений
  • Перекодировка —Перекодировка
  • Отчет —Отчет
  • Свойства событий измерений на маршруте —Свойства событий измерений на маршруте
  • Слой сцены —Слой сцены
  • Вариограмма —Вариограмма
  • ServerConnection —ServerConnection
  • Шейп-файл —Шейп-файл
  • Пространственная привязка —Пространственная привязка
  • Выражение SQL —Выражение SQL
  • String —String
  • Скрытая строка —Скрытая строка
  • Таблица —Таблица
  • Представление таблицы —Представление таблицы
  • Слой Terrain —Слой Terrain
  • Текстовый файл —Текстовый файл
  • Размер листа —Размер листа
  • Конфигурация времени —Конфигурация времени
  • Единицы времени —Единицы времени
  • TIN —TIN
  • Слой TIN —Слой TIN
  • Инструмент —Инструмент
  • Набор инструментов —Набор инструментов
  • Топографические объекты —Топографические объекты
  • Топология —Топология
  • Слой топологии —Слой топологии
  • Сеть трассировки —Сеть трассировки
  • Слой сети трассировки —Слой сети трассировки
  • Функция преобразования —Функция преобразования
  • Инженерная сеть —Инженерная сеть
  • Слой инженерной сети —Слой инженерной сети
  • Вариант —Вариант
  • Слой векторных листов —Слой векторных листов
  • Вертикальный фактор —Вертикальный фактор
  • Слой вокселов —Слой вокселов
  • Покрытие VPF —Покрытие VPF
  • Таблица VPF —Таблица VPF
  • Покрытие WCS —Покрытие WCS
  • Таблица взвешенного наложения —Таблица взвешенного наложения
  • Взвешенная сумма —Взвешенная сумма
  • Карта WMS —Карта WMS
  • WMTS слой —WMTS слой
  • Рабочая область —Рабочая область
  • XY домен —XY домен
  • Z домен —Z домен
String

Производные выходные данные

ПодписьОписаниеТип данных
Значение

Вычисленное значение.

Элемент данных; Слой; Представление таблицы

Параметры среды

Этот инструмент не использует параметры среды геообработки

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да