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"').

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

    Прежние версии:

    arcgis.rand() не поддерживается, начиная с версии ArcGIS Pro 2.0. Вместо этого следует использовать похожие функции модуля Python random. Для успешного использования модуля random добавьте его через импорт в параметр Блок кода.

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

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

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

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

    Примечание:

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

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

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

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

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

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

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

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

  • В приложениях ArcGIS для записи и чтения файлов .cal используется кодировка UTF-16-LE. Другие приложения (например, Блокнот) также можно использовать для создания и редактирования файлов .cal, если файлы записываются в кодировке UTF-16-LE. Файл с любой другой кодировкой не будет загружен в блок кода.

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

    Примечание:

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

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

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

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

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

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

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

    • Не поддерживаются данные версионных и архивных баз геоданных.

    • Операции отмены геообработки не поддерживаются.

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

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

Параметры

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

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

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

Mosaic Layer; Raster Layer; Table View

Имя поля (существующего или нового)

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

Если во входной таблице нет поля с этим именем, оно будет добавлено.

Field

Выражение

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

SQL Expression

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

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

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

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

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

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

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

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

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

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

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

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

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

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

String

Блок кода

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

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

String

Тип поля

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

Задает тип для нового поля. Этот параметр используется только если имя поля отсутствует во входной таблице.

Если поле имеет тип text, длина поля будет равна 512, если только входные данные не являются шейп-файлом или файлом базы данных, в этом случае длина будет равна 254. Для регулировки длины используйте инструмент Изменить поле.

  • Короткое целое (16-разрядное целочисленное)Тип поля будет Короткое целое. Поля типа Короткое целое поддерживают целые числа от -32 768 до 32 767.

  • Длинное целое (32-разрядное целочисленное)Тип поля будет Длинное целое. Поля типа Длинное целое поддерживают целые числа от -2 147 483 648 до 2 147 483 647.

  • Большое целочисленное (64-разрядное целое число)Типом поля будет большое целое. Поля типа большое целое поддерживают целые числа в диапазоне от -(253) до 253.

  • С плавающей точкой (32-разрядное с плавающей точкой)Тип поля будет С плавающей точкой. Поля типа С плавающей точкой поддерживают дробные числа от -3.4E38 до 1.2E38.

  • Двойной точности (64-разрядное с плавающей точкой)Тип поля будет Двойной точности. Поля типа Двойной точности поддерживают дробные числа от -2.2E308 до 1.8E308.

  • TextТип поля будет Текст. Текстовые поля поддерживают строку символов.

  • ДатаТипом поля будет Дата. Поля даты поддерживают значения даты и времени.

  • Дата (высокой точности)Типом поля будет дата высокой точности. Поля даты с высокой точностью поддерживают значения даты и времени с миллисекундами.

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

  • Time onlyТипом поля будет только время. Поля только для времени поддерживают значения времени без значений дат.

  • Сдвиг метки времениТипом поля будет сдвиг метки времени. Поля сдвига метки времени поддерживают дату, время и сдвиг от значения UTC.

  • BLOB (большой двоичный объект)Тип поля будет BLOB. Поле BLOB поддерживает данные, хранящиеся в виде длинной последовательности двоичных чисел. Необходимо использовать пользовательский загрузчик или вьюер, или приложение сторонних производителей для загрузки элементов в поле типа BLOB или просмотра его содержимого.

  • GUID (глобальный уникальный идентификатор)Типом поля будет GUID. В полях GUID хранятся строки в стиле реестра, состоящие из 36 символов, заключенных в фигурные скобки.

  • РастрТипом поля будет Растр. Растровые поля могут хранить растровые данные в базе геоданных или вне ее. Можно хранить все поддерживаемые в ArcGIS форматы наборов растровых данных, но рекомендуется использовать только маленькие изображения.

String

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

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

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

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

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

Boolean

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

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

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

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

Table View; Raster Layer; Mosaic Layer

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

Текущая рабочая область, Экстент, Перенос описаний доменов полей

Особые случаи

Перенос описаний доменов полей

When this environment is turned on, any fields that have an associated domain will use the domain description instead of the field's value. Values from fields that do not have a domain will be unaffected.

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

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