ArcGIS Desktop

  • Documentación
  • Soporte

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS for Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

Calcular campo

  • Resumen
  • Uso
  • Sintaxis
  • Muestra de código
  • Entornos
  • Información sobre licencias

Resumen

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

Ver ejemplos de usos de Calcular campo

Uso

  • Cuando se utiliza con un conjunto seleccionado de entidades, como las creadas a partir de una consulta en Crear capa de entidades o Seleccionar capa por atributo, esta herramienta solamente actualiza los registros seleccionados.

  • El cálculo solamente se puede aplicar a un campo por operación.

  • Los valores de campo existentes se sobrescriben. Para conservar los valores originales, se debe hacer una copia de la tabla de entrada.

  • En los cálculos en Python, los nombres de campo deben estar entre signos de admiración (!fieldname!).

    En los cálculos en VB, los nombres de campo deben estar entre corchetes ([fieldname]).

  • Para calcular cadenas de caracteres para campos de texto o de caracteres, en el cuadro de diálogo la cadena debe estar entre comillas dobles (“cadena”) y, en una secuencia de comandos, la cadena entre comillas dobles también debe estar entre comillas simples (’“cadena”’)

  • Esta herramienta también se puede utilizar para actualizar elementos de caracteres. Las expresiones que utilicen una cadena de caracteres deben estar entre comillas simples, por ejemplo, [CHARITEM] = 'NEW STRING'. Sin embargo, si la cadena de caracteres tiene comillas simples integradas, se debe encerrar entre comillas dobles, por ejemplo, [CHARITEM] = "TYPE'A'".

  • Si desea calcular un campo para que sea un valor numérico, introduzca el valor numérico en el parámetro Expresión; no se exigen comillas para este valor.

  • Esta herramienta admite la función arcgis.rand() cuando se especifica una expresión en Python. La función arcgis.rand() se ha creado para las herramientas de ArcGIS y no se debe confundir con el módulo random de Python. La sintaxis de las distribuciones disponibles para la función arcgis.rand() se puede encontrar en La sintaxis de distribución de los valores aleatorios.

  • La expresión y el bloque de código están conectados. El bloque de código debe estar relacionado con la expresión; el resultado del bloque de código se debe pasar a la expresión.

  • El parámetro Bloque de código permite crear expresiones complejas. Puede introducir el bloque de código directamente en el cuadro de diálogo o como una cadena de caracteres continua en una secuencia de comandos.

  • El módulo y el formato de math de Python están disponibles para el uso en el parámetro Bloque de código. Puede importar módulos adicionales. El módulo math proporciona funciones de representación y de teoría de números, funciones potencia y logarítmicas, funciones trigonométricas, funciones de conversión angular, funciones hiperbólicas y constantes matemáticas. Para obtener más información sobre el módulo math, consulte la Ayuda de Python.

  • Los archivos .cal guardados de versiones anteriores de ArcGIS pueden funcionar o pueden precisar modificaciones mínimas. Si tiene código VBA de versiones anteriores que utilizan ArcObjects, deberá modificar los cálculos para que funcionen.

  • Se pueden crear expresiones en Python utilizando las propiedades del objeto Geometry como type, extent, centroid, firstPoint, lastPoint, area, length, isMultipart y partCount (por ejemplo, !shape.area!).

  • Las expresiones de Python pueden utilizar las propiedades area y length de geometría con una unidad lineal o de área para convertir el valor en una unidad de medida diferente (por ejemplo, !shape.length@kilometers!). Si los datos se almacenan en un sistema de coordenadas geográficas y se proporciona una unidad lineal (por ejemplo, millas), la longitud se calculará mediante un algoritmo geodésico. Utilizar unidades de área en los datos geográficos producirá resultados cuestionables ya que los grados decimales no son consistentes en el globo.

    • Palabras clave de unidad de medida de área:
      • ACRES | ARES | HECTARES | SQUARECENTIMETERS | SQUAREDECIMETERS | SQUAREINCHES | SQUAREFEET | SQUAREKILOMETERS | SQUAREMETERS | SQUAREMILES | SQUAREMILLIMETERS | SQUAREYARDS | SQUAREMAPUNITS | UNKNOWN
    • Palabras clave de unidad de medida lineal:
      • CENTIMETERS | DECIMALDEGREES | DECIMETERS | FEET | INCHES | KILOMETERS | METERS | MILES | MILLIMETERS | NAUTICALMILES | POINTS | UNKNOWN | YARDS
  • Se pueden usar expresiones de Python para calcular la longitud o el área geodésica de una entidad mediante el uso de las propiedades geodesicArea o geodesicLength combinadas con unidades de medida lineales o de área (por ejemplo, !shape.geodesicArea@hectares! o !shape.geodesicLength@miles!).

  • Las aplicaciones de ArcGIS usan la codificación UTF-16-LE para la lectura y escritura de archivos .cal. Otras aplicaciones (por ejemplo, Bloc de notas) se pueden utilizar para crear o modificar archivos .cal, siempre que la salida se escriba usando la codificación UTF-16-LE. El uso de cualquier otra codificación generará un archivo que no se cargará en el bloque de código.

  • Cuando calcula datos unidos, no puede calcular directamente las columnas unidas. Sin embargo, puede calcular directamente las columnas de la tabla de origen. Para calcular los datos unidos, primero debe agregar las tablas o capas unidas al mapa. Después puede realizar cálculos en estos datos por separado. Estos cambios se reflejarán en las columnas que se unieron.

  • Los cálculos de campo con un tipo de expresión VB no se admiten en los productos de 64 bits, incluidos ArcGIS Desktop Geoprocesamiento en segundo plano (64 bits) y ArcGIS Server. Para utilizar correctamente Calcular campo en estos productos, las expresiones deben convertirse a Python o de forma alternativa, en el caso de Geoprocesamiento en segundo plano (64 bits), se puede desactivar el procesamiento en segundo plano.

  • Las expresiones de Python que intentan concatenar los campos de cadenas de caracteres que incluyan un valor nulo, o dividir por cero, devolverán un valor nulo para el valor de ese campo.

  • Tenga en cuenta que esta herramienta respeta la configuración de entorno Extensión de salida. Solo se calcularán los valores de campo de las entidades que estén dentro de la extensión. La configuración de entorno no tiene ningún efecto en datos no espaciales como las tablas

  • Ejemplos de Calcular campo

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.

Raster Catalog Layer; Mosaic 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á.

  • VB —La expresión se escribe en formato VB estándar. Esta es la opción predeterminada.
  • PYTHON —La 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.3 —La 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.
Precaución:

Los cálculos de campo con un tipo de expresión VB no se admiten en los productos de 64 bits, incluidos ArcGIS Pro, ArcGIS Desktop Geoprocesamiento en segundo plano (64 bits) y ArcGIS Server. Para utilizar correctamente Calcular campo en estos productos, las expresiones deben convertirse a Python o de forma alternativa, en el caso de Geoprocesamiento en segundo plano (64 bits), se puede desactivar el procesamiento en segundo plano.

String
code_block
(Opcional)

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

String

Muestra de código

Ejemplo de CalculateField (ventana de Python)

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

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")
Ejemplo de CalculateField: calcular centroides

Utilice CalculateFieldpara 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
# 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")
Ejemplo de CalculateField: calcular rangos

Utilice CalculateField con un bloque de código 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
 
# 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)
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
 
# 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")

Entornos

  • Espacio de trabajo actual
  • Extensión

Información sobre licencias

  • ArcGIS Desktop Basic: Sí
  • ArcGIS Desktop Standard: Sí
  • ArcGIS Desktop Advanced: Sí

Temas relacionados

  • Vista general del conjunto de herramientas Campos

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

Plataforma ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog interno
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2018 Esri. | Privacidad | Legal