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

Ayuda

  • Inicio
  • Introducción
  • Mapa
  • Analizar
  • Administrar datos
  • Herramientas
  • Más...

Utilizar la herramienta Calcular campo

  • Consejos y mejores prácticas para utilizar la herramienta Calcular campo
  • Ejemplos de código bloque con la herramienta Calcular campo

La herramienta Calcular campo se encuentra en la caja de herramientas de Administración de datos en el conjunto de herramientas Campos. Esta es la misma herramienta que se abre cuando hace clic en el comando Calculadora de campo del menú de acceso directo de campo de una tabla de atributos. Cuando realiza cálculos de campo, es importante saber qué tipo de datos utiliza y en qué contexto se van a utilizar en el futuro. La sintaxis que debe utilizarse en la expresión del cálculo difiere según la fuente de datos y el idioma de la secuencia de comandos.

A continuación se incluyen varios consejos importantes y mejores prácticas para utilizar la herramienta Calcular campo.

Consejos y mejores prácticas para utilizar la herramienta Calcular campo

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

Las expresiones pueden crearse con VBScript o un formato Python estándar. El estilo de formato de la cadena utilizada para la expresión debe ser apropiado para el entorno (tipo).

Se pueden crear expresiones en Python utilizando las propiedades del objeto Geometría, 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.

!shape.area@acres!
  • 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

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 campos siempre se encierran en corchetes [ ] para VBScript.

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

Para calcular las cadenas de caracteres de los campos de texto o de caracteres, en el cuadro de diálogo la cadena de caracteres debe utilizar comillas dobles ("cadena de caracteres") o, en una secuencia de comandos, la cadena de caracteres que utilice comillas dobles también debe estar entre comillas simples ('"cadena de caracteres"').

This tool can also be used to update character items. Expressions using a character string should be wrapped, using single quotes—for example, [CHARITEM] = 'NEW STRING'. However, if the character string has embedded single quotes, wrap the string using double quotes—for example, [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.

La función arcgis.rand() es compatible con la herramienta Calcular campo y el tipo de expresión debe ser Python. La función arcgis.rand() se creó para las herramientas de ArcGIS y no debe confundirse con la función Python Rand().

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 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.

Saved VB .cal files from previous versions of ArcGIS may work or require minimal modifications. If you have VBA code from past releases that use ArcObjects, you will need to modify your calculations to work.

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.

El tipo de expresión debe ser Python cuando ejecuta Calcular campo con ArcGIS 10.1 Engine o ArcGIS for Server. Utilice solo Python como el tipo de expresión siempre que la herramienta se incluya en un modelo que se publicará en ArcGIS for Server.

Ejemplos de código bloque con la herramienta Calcular campo

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

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:
    e = sys.exc_info()[1]
    print(e.args[0])

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

Temas relacionados

  • Principios de cálculos de campo
  • Realizar cálculos de campo simples
  • Calcular el área, la longitud y otras propiedades geométricas
  • Cambiar las mayúsculas y minúsculas de los valores de campo de texto
  • Ejemplos de Calcular campo

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 de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2018 Esri. | Privacidad | Legal