Skip to main content

Вычислить поля (несколько) (Инструменты Управление данными)

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

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

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

Внимание:

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

  • Чтобы узнать больше о выражениях Python, см. Примеры скриптов Python для вычислений полей.

    Более подробно о выражениях Arcade см. в разделе ArcGIS Arcade в Справке для разработчиков.

    Более подробно о выражениях SQL см. в разделах Синтаксис SQL выражений и Вычислить значения полей.

    Более подробно о выражениях VBScript см. в примерах Вычислить поля в VBScript.

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

    Внимание:

    В Windows 11 версии 24H2 VBScript становится доступным по запросу и требует наличия функции VBScript.

    Чтобы продолжить использовать опцию VBScript, выполните одно из следующих действий:

    — Измените тип выражения на Python, Arcade или SQL.

    — Включите дополнительную функцию VBScript в системных настройках Windows.

    Более подробную информацию см. в разделе Уведомления об удалении и устаревании.

  • При использовании с выбранным набором объектов, например, созданных из запроса в инструментах [Создать векторный слой] или Выбрать в слое по атрибуту, этот инструмент обновит только выбранные записи.

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

  • Для вычислений Python имена полей должны быть заключены в восклицательные знаки (например, !fieldname!).

    В вычислениях Arcade перед именами полей должно стоять $feature. (например, $feature.fieldname).

    Примечание:

    Для переноса временных значений между разными типами полей (дата, только дата, только время, сдвиг метки времени и текст) используйте инструмент Конвертировать поле времени.

  • Чтобы вычислить строки в текстовые или символьные поля, в диалоговом окне строка должна использовать двойные кавычки (например, "строка"), или в скрипте строка, использующая двойные кавычки, также должна быть заключена в одинарные кавычки (например, '"string"').

  • Для вычисления значения в числовом поле введите соответствующее числовое значение в качестве параметра Выражение, кавычек при этом не требуется.

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

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

  • Вы можете использовать модуль math Python и форматирование Python в параметре Блок кода. Вы также можете импортировать дополнительные модули. Модуль math предлагает теоретико-числовые функции и функции представления, степенные и логарифмические функции, тригонометрические функции, функции преобразования углов, гиперболические функции и математические константы. Дополнительные сведения о модуле math вы найдете в справке Python.

  • Чтобы вычислить информацию о геометрии в Python, воспользуйтесь свойствами объекта Geometry. Например, используйте выражение !shape!.pointCount! для вычисления числа вершин объекта.

    Примечание:

    Инструмент Вычислить атрибуты геометрии поддерживает аналогичные вычисления.

    Чтобы вычислить площадь и длину в , используйте методы getArea и getLength с указанием метода и типа единицы измерения.

    • Для расчета геодезической площади полигонов в квадратных километрах воспользуйтесь следующим выражением:

      !shape!.getArea('GEODESIC', 'SQUAREKILOMETERS')!

    • Чтобы вычислить длину полилиний или полигонов на плоскости в ярдах, используйте следующее выражение:

      !shape!.getLength('PLANAR', 'YARDS')

    См. объекты ArcPy 'Polygon' и 'Polyline' для получения дополнительной информации.

    Подробнее об инструментах геообработки и линейных и площадных единицах измерения

  • При работе с присоединенными данными вы можете обновлять только поля исходной таблицы. Невозможно обновлять поля присоединенной таблицы. Чтобы выполнить вычисление в присоединенной таблице, он должен осуществляться непосредственно в этой таблице.

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

  • Выражения SQL поддерживают более быстрые вычисления для сервисов пространственных объектов. Вместо выполнения вычислений по одному объекту или строке за раз, к серверу устанавливается один запрос, что приводит к более быстрым вычислениям.

    Только сервисы пространственных объектов поддерживают выражения SQL. Для других форматов используйте выражения Python или Arcade.

    При использовании опции SQL для параметра Тип выражения есть следующие ограничения:

Параметры

Подпись Объяснение Тип данных

Входная таблица

Входная таблица, содержащая поля, которые будут обновлены при вычислении.

Table View; Raster Layer; Mosaic Layer

Тип выражения

Указывает тип используемого выражения.

Если входные данные — сервис объектов, тип выражения по умолчанию — SQL. Для остальных типов входных данных тип выражения по умолчанию — Python.

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

Более подробно о выражениях Arcade см. в разделе ArcGIS Arcade в Справке для разработчиков.

Более подробно о выражениях SQL см. в разделах Синтаксис SQL выражений и Вычислить значения полей.

Более подробно о выражениях VBScript см. в примерах Вычислить поля в VBScript.

  • PythonБудет использоваться тип выражения Python.

  • ArcadeБудет использоваться тип выражения ArcGIS Arcade.

  • SQLБудет использоваться тип выражения SQL.

  • VBScript (Устаревший)Будет использоваться тип выражения VBScript.

String

Поля

Поля, которые будут вычисляться, выражения, которые будут вычисляться, а также необязательные выражения where и типы полей.

Дополнительное выражение SQL будет использоваться для выбора поднабора записей. Будут вычислены только те записи, которые соответствуют условию where. Если условие where оставить пустым, будут вычислены все записи. Более подробно о синтаксисе SQL см. [Справочник по SQL для выражений запросов, применяемых в ArcGIS] (../../help/mapping/navigation/sql-reference-for-elements-used-in-query-expressions.md).

Если во входной таблице нет поля с этим именем, оно будет добавлено. Тип поля будет задан с помощью значения типа поля. Если тип поля не указан, поле будет добавлено как текстовое.

Столбцы таблицы значений:

  • Field Name (Existing or New)The field that will be updated with the new calculation. If a field with the specified name does not exist in the input table, it will be added.

  • ExpressionThe expression that will be used to create a value that will populate the selected rows.

  • Where ClauseThe SQL expression that will be used to select a subset of records.

  • Field TypeSpecifies the field type of the new field. This value is only used when the field name does not exist in the input table.

    • Short (16-bit integer)The field type will be short. Short fields support whole numbers between -32,768 and 32,767.

    • Long (32-bit integer)The field type will be long. Long fields support whole numbers between -2,147,483,648 and 2,147,483,647.

    • Big integer (64-bit integer)The field type will be big integer. Big integer fields support whole numbers between -(253) and 253.

    • Float (32-bit floating point)The field type will be float. Float fields support fractional numbers between -3.4E38 and 1.2E38.

    • Double (64-bit floating point)The field type will be double. Double fields support fractional numbers between -2.2E308 and 1.8E308.

    • TextThe field type will be text. Text fields support a string of characters.

    • DateThe field type will be date. Date fields support date and time values.

    • Date (high precision)The field type will be high precision date. High precision date fields support date and time values with millisecond time.

    • Date onlyThe field type will be date only. Date only fields support date values with no time values.

    • Time onlyThe field type will be time only. Time only fields support time values with no date values.

    • Timestamp offsetThe field type will be timestamp offset. Timestamp offset fields support a date, time, and offset from a UTC value.

    • BLOB (binary data)The field type will be BLOB. BLOB fields support data stored as a long sequence of binary numbers. You need a custom loader or viewer or a third-party application to load items into a BLOB field or view the contents of a BLOB field.

    • GUID (globally unique identifier)The field type will be GUID. GUID fields store registry-style strings consisting of 36 characters enclosed in curly brackets.

    • RasterThe field type will be raster. Raster fields can store raster data in or alongside the geodatabase. All ArcGIS software-supported raster dataset formats can be stored, but it is recommended that only small images be used.

Value Table

Блок кода

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

Блок кода, который будет использоваться для сложных выражений.

Функцию нельзя использовать для того, чтобы вернуть несколько значений.

String

Принудительно использовать домены

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

Определяет, будут ли принудительно использованы правила доменов полей.

  • ОтмеченоПравила доменов полей будут включены принудительно.

  • Не отмеченоПравила доменов полей не будут включены принудительно. Используется по умолчанию.

Boolean

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

Подпись Объяснение Тип данных

Выходная таблица

Обновленная таблица.

Table View; Raster Layer; Mosaic Layer

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

Сохранение Global ID

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

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