ArcGIS Desktop

  • Документация
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

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

  • Краткая информация
  • Использование
  • Синтаксис
  • Параметры среды
  • Информация о лицензиях

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

Инструмент Вычислить значение выдает результирующее значение на основе указанного выражения Python.

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

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

  • Параметр Тип данных (Data Type) используется в 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)
  • Поддерживается функция arcgis.rand(). Функция arcgis.rand() была создана для инструментов ArcGIS, ее не следует путать с функцией Python Rand(). Примеры использования arcgis.rand():

    • Вычислить случайное значение из равномерного распределения целых чисел между 0 и 10: arcgis.rand("Integer 0 10")
    • Вычислить случайное значение из нормального распределения со средним значением 10 и стандартным отклонением 3: arcgis.rand("Normal 10 3")

    Внимание:

    Выражение arcgis.rand надо вводить строчными символами.

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

  • Выражение может ссылаться на переменные, заданные в параметре Код блокировки (Code Block).

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

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

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

    Пример If-Else

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

    Пример Метода Python Заменить (replace)

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

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

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

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

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

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

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

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

  • Переменные модели типа list не должны использоваться в Выражении (Expression). В силу особенностей работы переменных списка в ModelBuilder, инструмент Вычислить значение (Calculate Value) выполняется один раз с использованием первого значения из списка переменных; другие значения на обработку не передаются.

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

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

Синтаксис

CalculateValue_management (expression, {code_block}, {data_type})
ПараметрОбъяснениеТип данных
expression

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

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

Дополнительный код Python. На код в коде блокировки можно сослаться в параметре Выражение (Expression) .

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

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

String

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

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

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

  • ArcGIS Desktop Basic: Да
  • ArcGIS Desktop Standard: Да
  • ArcGIS Desktop Advanced: Да

Связанные разделы

  • Обзор группы инструментов Общие

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
© Copyright 2016 Environmental Systems Research Institute, Inc. | Конфиденциальность | Правовая информация