Вычислить значение (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 вместо инструмента Вычислить значение.

Синтаксис

CalculateValue(expression, {code_block}, {data_type})
ParameterОбъяснениеТип данных
expression

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

SQL Expression
code_block
(Дополнительный)

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

String
data_type
(Дополнительный)

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

  • Address Locator —Локатор адресов
  • Address Locator Style —Стиль локатора адресов
  • Analysis cell size —Размер ячейки при анализе
  • Any value —Любое значение
  • ArcMap Document —Документ ArcMap
  • Areal unit —Единица площади
  • Boolean —Логическое
  • CAD Drawing Dataset —Набор данных чертежа САПР
  • Calculator Expression —Выражение калькулятора
  • Catalog Root —Корень Каталога
  • Cell Size —Размер ячейки
  • Cell Size XY —Размер ячейки XY
  • Composite Layer —Составной слой
  • Compression —Сжатие
  • Coordinate System —Система координат
  • Coordinate Systems Folder —Папка систем координат
  • Coverage —Покрытие
  • Coverage Feature Class —Класс объектов покрытия
  • Data Element —Элемент данных
  • Data File —Файл данных
  • Database Connections —Подключения баз данных
  • Dataset —Набор данных
  • Date —Дата
  • dBASE Table —Таблица dBASE
  • Decimate —Прореживание
  • Disk Connection —Подключение диска
  • Double —Двойной точности
  • Encrypted String —Зашифрованная строка
  • Envelope —Конверт
  • Evaluation Scale —Шкала оценки
  • Extent —Экстент
  • Extract Values —Извлечь значения
  • Facility Network —Сеть пунктов обслуживания
  • Feature Class —Класс пространственных объектов
  • Feature Dataset —Набор классов объектов
  • Feature Layer —Векторный слой
  • Feature Set —Набор объектов
  • Field —Поле
  • Field Info —Информация поля
  • Field Mappings —Соответствие полей
  • File —Файл
  • Folder —Папка
  • Formulated Raster —Формализованный растр
  • Fuzzy function —Нечеткая функция
  • GeoDataServer —GeoDataServer
  • Geodataset —Набор геоданных
  • Geometric Network —Геометрическая сеть
  • Geostatistical Layer —Геостатистический слой
  • Geostatistical Search Neighborhood —Геостатистическая окрестность поиска
  • Geostatistical Value Table —Таблица геостатистических значений
  • GlobeServer —GlobeServer
  • GPServer —GPServer
  • Graph —Диаграмма
  • Graph Data Table —Таблица данных диаграммы
  • Group Layer —Составной слой
  • Horizontal factor —Горизонтальный фактор
  • Image Service —Сервис изображений
  • Index —Индекс
  • INFO Expression —Выражение INFO
  • INFO Item —Элемент INFO
  • INFO Table —Таблица INFO
  • Internet Tiled Layer —Веб-слой, разделенный на листы
  • LAS Dataset —Набор данных LAS
  • LAS Dataset Layer —Слой набора данных LAS
  • Layer —Слой
  • Layer File —Файл слоя
  • Line —Линии
  • Linear unit —Линейные единицы измерения
  • Long —Длинное целое
  • M Domain —M домен
  • Map —Карта
  • Map Server Layer —Слой картографического сервера
  • MapServer —MapServer
  • Mosaic Dataset —Набор данных мозаики
  • Mosaic Layer —Слой мозаики
  • Neighborhood —Окрестность
  • Network Analyst Class FieldMap —Список полей класса Network Analyst
  • Network Analyst Hierarchy Settings —Настройки иерархии Network Analyst
  • Network Analyst Layer —Слой Network Analyst
  • Network Dataset —Набор сетевых данных
  • Network Dataset Layer —Слой набора сетевых данных
  • Parcel Fabric —Набор данных участков
  • Parcel Fabric Layer —Слой набора данных участков
  • Point —Точка
  • Polygon —Полигон
  • Projection File —Файл проекции
  • Pyramid —Пирамидные слои
  • Radius —Радиус
  • Random Number Generator —Генератор случайных чисел
  • Raster Band —Канал растра
  • Raster Calculator Expression —Выражение калькулятора растра
  • Raster Catalog —Каталог растров
  • Raster Catalog Layer —Слой каталога растров
  • Raster Data Layer —Слой растровых данных
  • Raster Dataset —Набор растровых данных
  • Raster Layer —Растровый слой
  • Raster Statistics —Статистика растра
  • Raster Type —Растровый тип
  • Record Set —Набор записей
  • Relationship Class —Класс отношений
  • Remap —Перекодировка
  • Route Measure Event Properties —Свойства событий измерений на маршруте
  • Schematic Dataset —Набор схематических данных
  • Schematic Diagram —Схематическое представление
  • Schematic Diagram Class —Класс схематического представления
  • Schematic Folder —Папка схемы
  • Schematic Layer —Схематический слой
  • SemiVariogram —Вариограмма
  • ServerConnection —ServerConnection
  • Shapefile —Шейп-файл
  • Spatial Reference —Пространственная привязка
  • SQL Expression —Выражение SQL
  • String —Строковое
  • String Hidden —Строка скрыта
  • Table —Таблица
  • Table View —Представление таблицы
  • Terrain Layer —Слой Terrain
  • Text File —Текстовый файл
  • Tile Size —Размер листа
  • Time configuration —Конфигурация времени
  • Time unit —Единица времени
  • TIN —TIN
  • TIN Layer —Слой TIN
  • Tool —Инструмент
  • Toolbox —Набор инструментов
  • Topo features —Топологические объекты
  • Topology —Топология
  • Topology Layer —Слой топологии
  • Transformation function —Функция преобразования
  • Variant —Вариант
  • Vertical factor —Вертикальный фактор
  • VPF Coverage —Покрытие VPF
  • VPF Table —Таблица VPF
  • WCS Coverage —Покрытие WCS
  • Weighted Overlay Table —Таблица взвешенного наложения
  • Weighted Sum —Взвешенная сумма
  • WMS Map —WMS-карта
  • Workspace —Рабочее пространство
  • XY Domain —XY Домен
  • Z Domain —Z Домен
String

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

NameОбъяснениеТип данных
value

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

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

Environments

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

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

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