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

Сводка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Ключевые слова площадных единиц измерения:
      • ACRES | ARES | HECTARES | SQUARECENTIMETERS | SQUAREDECIMETERS | SQUAREINCHES | SQUAREFEET | SQUAREKILOMETERS | SQUAREMETERS | SQUAREMILES | SQUAREMILLIMETERS | SQUAREYARDS | SQUAREMAPUNITS | UNKNOWN
    • Ключевые слова линейных единиц измерения:
      • CENTIMETERS | DECIMALDEGREES | DECIMETERS | FEET | INCHES | KILOMETERS | METERS | MILES | MILLIMETERS | NAUTICALMILES | POINTS | UNKNOWN | YARDS
  • Выражения Python могут использоваться для вычисления геодезической площади или длины объекта с использованием свойств geodesicArea или geodesicLength в сочетании с площадными или линейными единицами измерения (например, !shape.geodesicArea@hectares! или !shape.geodesicLength@miles!).

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

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

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

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

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

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

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

Синтаксис

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

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

Table View; Raster Layer; Mosaic Layer
expression_type

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

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

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

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

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

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

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

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

Блок кода для сложных выражений.

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

String

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

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

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

Представление таблицы; Растровый слой; Слой мозаики

Пример кода

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: Да

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