Вычислить поле (Инструменты Управление данными)
Краткая информация
Вычисляет значения в заданном поле класса объектов, векторного слоя или растра.
Использование
Внимание:
Этот инструмент изменяет входные значения. Более подробно о стратегиях предотвращения нежелательных изменений данных см. в разделе Инструменты, которые изменяют или обновляют входные данные.
Чтобы узнать больше о выражениях 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. Вместо этого следует использовать похожие функции модуля Pythonrandom. Для успешного использования модуляrandomдобавьте его через импорт в параметр Блок кода.Вы можете создавать сложные выражения с помощью параметра Блок кода. Введите блок кода либо непосредственно в диалоговое окно, либо в виде строки в скрипт. Выражение и блок кода являются соединенными. Блок кода должен иметь обратное отношение к выражению; результат выполнения блока кода должен передаваться в выражение.
Параметр Блок кода поддерживается только для выражений Python.
Вы можете использовать модуль
mathPython и форматирование 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.
|
String |
|
Блок кода (Дополнительный) |
Блок кода, который будет использоваться для сложных выражений Python или VBScript. |
String |
|
Тип поля (Дополнительный) |
Задает тип для нового поля. Этот параметр используется только если имя поля отсутствует во входной таблице. Если поле имеет тип text, длина поля будет равна 512, если только входные данные не являются шейп-файлом или файлом базы данных, в этом случае длина будет равна 254. Для регулировки длины используйте инструмент Изменить поле.
|
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: Да