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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Выражения Python могут быть созданы с использованием свойств объекта , включая Geometry, type, extent, centroid, firstPoint, lastPoint, area, length, isMultipart и partCount (например, !shape.area!).

  • Вы можете использовать свойства геометрии area и length в выражениях Python с единицами измерения площади или расстояния для конвертации значений в другие единицы измерения (например, !shape.length@kilometers!). Если данные хранятся в географической системе координат и поддерживаются линейные единицы (например, мили), вычисления длин будут проведены по геодезическому алгоритму. Использование единиц площади в географических данных приведет к сомнительным результатам, поскольку десятичные градусы не совпадают по всему миру.

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

  • Выражения Python могут использоваться для вычисления геодезической площади или длины объекта с использованием свойств geodesicArea или geodesicLength в сочетании с площадными или линейными единицами измерения (например, !shape.geodesicArea@hectares! или !shape.geodesicLength@miles!).

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

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

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

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

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

    • Эта опция поддерживается только для многопользовательских баз геоданных Db2, Oracle, PostgreSQL, SAP HANA и SQL Server.
    • Вычисление значений полей в соединяемых таблицах не поддерживается.
    • Версионные и архивированные данные не поддерживаются.
    • Возможность отмены операций геообработки не поддерживается.

    Для получения справки по выражениям SQL см. Документацию поставщика вашей базы данных.

Параметры

ПодписьОписаниеТип данных
Входная таблица

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

Table View; Raster Layer; Mosaic Layer
Тип выражения

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

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

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

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

  • Python 3Будет использоваться тип выражения Python. Это значение по умолчанию
  • ArcadeБудет использоваться тип выражения Arcade.
  • SQLБудет использоваться тип выражения SQL.
String
Поля

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

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

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

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

String
Принудительно использовать домены
(Дополнительный)

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

  • Отмечено — правила доменов полей будут включены принудительно. Если поле невозможно обновить, то значение поля останется без изменений, а в сообщениях инструментов появится предупреждение.
  • Не отмечено — правила доменов полей не будут включены принудительно. Используется по умолчанию
Boolean

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

ПодписьОписаниеТип данных
Выходная таблица

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

Table View; Raster Layer; Mosaic Layer

arcpy.management.CalculateFields(in_table, expression_type, fields, {code_block}, {enforce_domains})
ИмяОписаниеТип данных
in_table

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

Table View; Raster Layer; Mosaic Layer
expression_type

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

  • PYTHON3Будет использоваться тип выражения Python. Это значение по умолчанию
  • ARCADEБудет использоваться тип выражения Arcade.
  • SQLБудет использоваться тип выражения SQL.

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

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

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

String
fields
[[Field Name, Expression],...]

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

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

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

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

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

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

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

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

ИмяОписаниеТип данных
out_table

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

Table View; Raster Layer; Mosaic Layer

Пример кода

CalculateFields, пример 1 (окно Python)

Пример скрипта окна Python, иллюстрирующий использование функции CalculateFields в режиме прямого запуска с типом выражений Python.

import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.CalculateFields_management("parcels", "PYTHON3", 
                                 [["xCentroid", "!SHAPE.CENTROID.X!"], 
                                  ["yCentroid", "!SHAPE.CENTROID.Y!"]])
CalculateFields, пример 2 (окно Python)

Пример скрипта окна Python, иллюстрирующий использование функции CalculateFields в режиме прямого запуска с типом выражений SQL.

import arcpy
arcpy.CalculateFields_management("<a feature service url>", "SQL", 
                                 [["ceiling_field", "CEILING(field1)"], 
                                  ["floor_field", "FLOOR(field1)"]])
CalculateFields, пример 3 (окно Python)

Пример скрипта окна Python, иллюстрирующий использование функции CalculateFields в режиме прямого запуска с типом выражений Arcade.

import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.CalculateFields_management(
    "parcels", "ARCADE", 
    [["max_value", "Max($feature.field1, $feature.field2)"], 
     ["min_value", "Min($feature.field1, $feature.field2)"]])

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

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

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