Calcular campo (Administración de datos)

Resumen

Calcula los valores de un campo para una clase de entidad, una capa de entidades o un catálogo de ráster.

Ver ejemplos de usos de la herramienta Calcular campo

Uso

Sintaxis

CalculateField_management (in_table, field, expression, {expression_type}, {code_block})
ParámetroExplicaciónTipo de datos
in_table

Tabla que contiene el campo que se actualizará con el cálculo nuevo.

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

Campo que se actualizará con el cálculo nuevo.

Field
expression

Expresión de cálculo simple que se utiliza para crear un valor que completará las filas seleccionadas.

SQL Expression
expression_type
(Opcional)

Especifique el tipo de expresión que se utilizará.

  • VBLa expresión se escribe en formato VB estándar. Esta es la opción predeterminada.
  • PYTHONLa expresión se escribe en un formato estándar de Python. El uso de propiedades y métodos de geoprocesadores es igual a la creación de un geoprocesador de la versión 9.2.
  • PYTHON_9.3La expresión se escribe en un formato estándar de Python. El uso de propiedades y métodos de geoprocesadores es igual a la creación de un geoprocesador de la versión 9.3.
String
code_block
(Opcional)

Permite introducir un bloque de código para expresiones complejas.

String

Ejemplo de código

Ejemplo de CalculateField (ventana de Python)

La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función CalculateField en el modo inmediato.

import arcpy from arcpy import env 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")
Ejemplo de CalculateField: Calcular centroides

Utilice CalculateField para asignar valores del centroide a campos nuevos.

# Name: CalculateField_Centroids.py # Description: Use CalculateField to assign centroid values to new fields  # Import system modules import arcpy from arcpy import env  try:      # Set environment settings     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)
Ejemplo de CalculateField: Calcular rangos

Utilice CalculateField con un código bloque para calcular los valores basados en rangos.

# Name: CalculateField_Ranges.py # Description: Use CalculateField with a codeblock to calculate values #  based on ranges  # Import system modules import arcpy from arcpy import env   # Set environment settings 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)
Ejemplo de CalculateField: Calcular valores aleatorios

Utilice CalculateField para asignar valores aleatorios al campo nuevo.

# Name: CalculateField_Random.py # Description: Use CalculateField to assign random values to a new field   # Import system modules import arcpy from arcpy import env   # Set environment settings 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")

Entornos

Temas relacionados

9/11/2013