Вычислить поле (Управление данными (Data Management))

Уровень лицензии:BasicStandardAdvanced

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

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

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

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

Синтаксис

CalculateField_management (in_table, field, expression, {expression_type}, {code_block})
ПараметрОбъяснениеТип данных
in_table

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

Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View
field

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

Field
expression

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

SQL Expression
expression_type
(дополнительно)

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

  • VBВыражение будет записано в стандартном формате VB. Это значение используется по умолчанию.
  • PYTHONВыражение будет записано в стандартный формат Python. Используются те же методы и параметры геопроцессора, что и при создании геопроцессора версии 9.2.
  • PYTHON_9.3Выражение будет записано в стандартный формат Python. Используются те же методы и параметры геопроцессора, что и при создании геопроцессора версии 9.3.
String
code_block
(дополнительно)

Разрешает ввод блока кода в сложные выражения.

String

Пример кода

Пример CalculateField (окно Python)

Пример скрипта Python для выполнения функции CalculateField с запуском из окна Python в ArcGIS.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.AddField_management("vegtable.dbf", "VEG_TYP2", "TEXT", "", "", "20")
arcpy.CalculateField_management("vegtable.dbf", "VEG_TYP2", 
                                '!VEG_TYPE!.split(" ")[-1]', "PYTHON_9.3")
Пример CalculateField: Вычисление центроидов

Используйте CalculateField для присвоения новым полям значения центроида.

# Name: CalculateField_Centroids.py
# Description: Use CalculateField to assign centroid values to new fields

# Import system modules
import arcpy

try: 
    # Set environment settings
    arcpy.env.workspace = "C:/data/airport.gdb"
 
    # Set local variables
    inFeatures = "parcels"
    fieldName1 = "xCentroid"
    fieldName2 = "yCentroid"
    fieldPrecision = 18
    fieldScale = 11
 
    # Add fields
    arcpy.AddField_management(inFeatures, fieldName1, "DOUBLE", 
                              fieldPrecision, fieldScale)
    arcpy.AddField_management(inFeatures, fieldName2, "DOUBLE", 
                              fieldPrecision, fieldScale)
 
    # Calculate centroid
    arcpy.CalculateField_management(inFeatures, fieldName1, 
                                    "!SHAPE.CENTROID.X!",
                                    "PYTHON_9.3")
    arcpy.CalculateField_management(inFeatures, fieldName2, 
                                    "!SHAPE.CENTROID.Y!",
                                    "PYTHON_9.3")
except Exception as e:
    # If an error occurred, print line number and error message
    import traceback
    import sys
    tb = sys.exc_info()[2]
    print("Line {0}".format(tb.tb_lineno))
    print(e.message)
Пример CalculateField: Вычисление диапазонов

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

# Name: CalculateField_Ranges.py
# Description: Use CalculateField with a codeblock to calculate values
#  based on ranges

# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
 
# Set local variables
inTable = "parcels"
fieldName = "areaclass"
expression = "getClass(float(!SHAPE.area!))"
codeblock = """def getClass(area):
    if area <= 1000:
        return 1
    if area > 1000 and area <= 10000:
        return 2
    else:
        return 3"""
 
# Execute AddField
arcpy.AddField_management(inTable, fieldName, "SHORT")
 
# Execute CalculateField 
arcpy.CalculateField_management(inTable, fieldName, expression, "PYTHON_9.3", 
                                codeblock)
Пример CalculateField: Вычисление произвольных значений

Используйте CalculateField для присвоения новым полям случайных значений.

# Name: CalculateField_Random.py
# Description: Use CalculateField to assign random values to a new field


# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
  
# Set local variables
inFeatures = "parcels"
fieldName = "RndValue"
expression = "arcgis.rand('Integer 0 10')"
 
# Execute AddField
arcpy.AddField_management(inFeatures, fieldName, "LONG")
 
# Execute CalculateField 
arcpy.CalculateField_management(inFeatures, fieldName, expression, "PYTHON_9.3")

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

Связанные темы

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

ArcGIS for Desktop Basic: Да
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
5/10/2014