Вычислить значение (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
  • BooleanBoolean
  • Слой категории зданийСлой категории зданий
  • Слой сцены категории зданийСлой сцены категории зданий
  • Слой зданийСлой зданий
  • Слой сцены зданийСлой сцены зданий
  • Набор данных чертежа САПРНабор данных чертежа САПР
  • Выражение калькулятораВыражение калькулятора
  • Корневой узел каталогаКорневой узел каталога
  • Размер ячейкиРазмер ячейки
  • Размер ячейки XYРазмер ячейки XY
  • Составной слойСоставной слой
  • СжатиеСжатие
  • Система координатСистема координат
  • Папка систем координатПапка систем координат
  • ПокрытиеПокрытие
  • Класс объектов покрытияКласс объектов покрытия
  • Элемент данныхЭлемент данных
  • Файл данныхФайл данных
  • Подключения к базам данныхПодключения к базам данных
  • Набор данныхНабор данных
  • DateDate
  • Таблица dBASEТаблица dBASE
  • ПрореживаниеПрореживание
  • Слой схемыСлой схемы
  • Слой размеровСлой размеров
  • Подключение дискаПодключение диска
  • DoubleDouble
  • Слой поверхности высотСлой поверхности высот
  • Зашифрованная строкаЗашифрованная строка
  • КонвертКонверт
  • Шкала оценкиШкала оценки
  • ЭкстентЭкстент
  • Извлечение значенийИзвлечение значений
  • Класс пространственных объектовКласс пространственных объектов
  • Набор классов объектовНабор классов объектов
  • Векторный слойВекторный слой
  • Набор объектовНабор объектов
  • ПолеПоле
  • Информация поляИнформация поля
  • Сопоставление полейСопоставление полей
  • ФайлФайл
  • ПапкаПапка
  • Формализованный растрФормализованный растр
  • Нечеткая функцияНечеткая функция
  • Сервер геоданныхСервер геоданных
  • Набор геоданныхНабор геоданных
  • Геометрическая сетьГеометрическая сеть
  • Геостатистический слойГеостатистический слой
  • Геостатистическая окрестность поискаГеостатистическая окрестность поиска
  • Таблица геостатистических значенийТаблица геостатистических значений
  • GlobeServerGlobeServer
  • GPServerGPServer
  • ДиаграммаДиаграмма
  • Таблица данных диаграммыТаблица данных диаграммы
  • Составной слойСоставной слой
  • Горизонтальный факторГоризонтальный фактор
  • Сервис изображенийСервис изображений
  • ИндексИндекс
  • Выражение INFOВыражение INFO
  • Элемент INFOЭлемент INFO
  • Таблица INFOТаблица INFO
  • Веб-слой, разделенный на листыВеб-слой, разделенный на листы
  • Слой KMLСлой KML
  • Набор данных LASНабор данных LAS
  • Слой набора данных LASСлой набора данных LAS
  • СлойСлой
  • Файл слояФайл слоя
  • КомпоновкаКомпоновка
  • ЛинииЛинии
  • Единица длиныЕдиница длины
  • LongLong
  • M доменM домен
  • КартаКарта
  • Картографический сервисКартографический сервис
  • Слой картографического сервераСлой картографического сервера
  • Набор данных мозаикиНабор данных мозаики
  • Слой мозаикиСлой мозаики
  • ОкрестностьОкрестность
  • Список полей класса Network AnalystСписок полей класса Network Analyst
  • Настройки иерархии Network AnalystНастройки иерархии Network Analyst
  • Слой Network AnalystСлой Network Analyst
  • Источник сетевых данныхИсточник сетевых данных
  • Набор сетевых данныхНабор сетевых данных
  • Слой набора сетевых данныхСлой набора сетевых данных
  • Режим передвижения по сетиРежим передвижения по сети
  • Набор данных участковНабор данных участков
  • Набор данных участков для ArcMapНабор данных участков для ArcMap
  • Слой набора данных участков для ArcMapСлой набора данных участков для ArcMap
  • Слой участковСлой участков
  • ТочкаТочка
  • ПолигонПолигон
  • Файл проекцииФайл проекции
  • Пирамидные слоиПирамидные слои
  • РадиусРадиус
  • Генератор случайных чиселГенератор случайных чисел
  • Канал растраКанал растра
  • Выражение калькулятора растраВыражение калькулятора растра
  • Каталог растровКаталог растров
  • Слой каталога растровСлой каталога растров
  • Слой растровых данныхСлой растровых данных
  • Набор растровых данныхНабор растровых данных
  • Растровый слойРастровый слой
  • Статистика растраСтатистика растра
  • Растровый типРастровый тип
  • Набор записейНабор записей
  • Класс отношенийКласс отношений
  • ПерекодировкаПерекодировка
  • ОтчетОтчет
  • Свойства событий измерений на маршрутеСвойства событий измерений на маршруте
  • Слой сценыСлой сцены
  • ВариограммаВариограмма
  • ServerConnectionServerConnection
  • Шейп-файлШейп-файл
  • Пространственная привязкаПространственная привязка
  • Выражение SQLВыражение SQL
  • StringString
  • Скрытая строкаСкрытая строка
  • ТаблицаТаблица
  • Представление таблицыПредставление таблицы
  • Слой TerrainСлой Terrain
  • Текстовый файлТекстовый файл
  • Размер листаРазмер листа
  • Конфигурация времениКонфигурация времени
  • Единицы времениЕдиницы времени
  • TINTIN
  • Слой TINСлой TIN
  • ИнструментИнструмент
  • Набор инструментовНабор инструментов
  • Топографические объектыТопографические объекты
  • ТопологияТопология
  • Слой топологииСлой топологии
  • Сеть трассировкиСеть трассировки
  • Слой сети трассировкиСлой сети трассировки
  • Функция преобразованияФункция преобразования
  • Инженерная сетьИнженерная сеть
  • Слой инженерной сетиСлой инженерной сети
  • ВариантВариант
  • Слой векторных листовСлой векторных листов
  • Вертикальный факторВертикальный фактор
  • Слой вокселовСлой вокселов
  • Покрытие VPFПокрытие VPF
  • Таблица VPFТаблица VPF
  • Покрытие WCSПокрытие WCS
  • Таблица взвешенного наложенияТаблица взвешенного наложения
  • Взвешенная суммаВзвешенная сумма
  • Карта WMSКарта WMS
  • WMTS слойWMTS слой
  • Рабочая областьРабочая область
  • XY доменXY домен
  • Z доменZ домен
String

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

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

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

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

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

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

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

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