Resumen
Calcula los valores de los campos de una clase de entidad, una capa de entidades o un ráster.
Uso
Para obtener más información sobre las expresiones de Python, consulte Ejemplos de Python de Calcular campo.
Para obtener más información sobre las expresiones de Arcade, consulte la Guía de ArcGIS Arcade.
Para obtener más información sobre las expresiones de SQL, consulte Calcular valores de campo.
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.
Los valores de campo existentes se sobrescriben. Realice una copia de la tabla de entrada si desea conservar los valores originales.
En los cálculos en Python, los nombres de campo deben estar entre signos de admiración (!fieldname!).
En los cálculos de Arcade, los nombres de campo deben tener el prefijo $feature. ($feature.fieldname).
Para calcular cadenas para campos de texto o de caracteres, en el cuadro de diálogo la cadena debe estar entre comillas dobles ("cadena") y, en un script, la cadena entre comillas dobles también debe estar entre comillas simples ('"cadena"').
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.
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 un script. 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 solo se admite en expresiones de Python.
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.
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
- Palabras clave de unidad de medida de área:
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!).
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.
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.
Se implementaron expresiones SQL para permitir cálculos más rápidos en servicios de entidades. En lugar de realizar cálculos entidad por entidad o fila por fila, se define una sola solicitud para el servicio de entidades, lo cual genera cálculos considerablemente más rápido.
Solo los servicios de entidades admiten expresiones SQL. Para otros formatos, utilice expresiones de Python o Arcade.
Sintaxis
CalculateFields(in_table, expression_type, fields, {code_block})
Parámetro | Explicación | Tipo de datos |
in_table | Tabla que contiene los campos que se actualizarán con el cálculo nuevo. | Table View; Raster Layer; Mosaic Layer |
expression_type | Especifique el tipo de expresión que se utilizará.
Para obtener más información sobre las expresiones de Python, consulte Ejemplos de Calcular campo. Para obtener más información sobre las expresiones de Arcade, consulte la Guía de ArcGIS Arcade. Para obtener más información sobre las expresiones de SQL, consulte Calcular valores de campo. | String |
fields [[Field Name, Expression],...] | Campos que se van a calcular y sus expresiones. | Value Table |
code_block (Opcional) | Bloque de código para expresiones complejas. No se puede utilizar una función para devolver varios valores. | String |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_table | Las tablas actualizadas. | Vista de tabla; Capa ráster; Capa de mosaico |
Muestra de código
El siguiente script de la ventana de Python demuestra cómo utilizar la función CalculateFields en el modo inmediato con el tipo de expresión de Python.
import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.CalculateFields_management("parcels", "PYTHON3",
[["xCentroid", "!SHAPE.CENTROID.X!"],
["yCentroid", "!SHAPE.CENTROID.Y!"]])
El siguiente script de la ventana de Python demuestra cómo utilizar la función CalculateFields en el modo inmediato con el tipo de expresión SQL.
import arcpy
arcpy.CalculateFields_management("<a feature service url>", "SQL",
[["ceiling_field", "CEILING(field1)"],
["floor_field", "FLOOR(field1)"]])
El siguiente script de la ventana de Python demuestra cómo utilizar la función CalculateFields en el modo inmediato con el tipo de expresión de Arcade.
import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.CalculateFields_management(
"parcels", "ARCADE",
[["max_value", "Max($feature.field1, $feature.field2)"],
["min_value", "Min($feature.field1, $feature.field2)"]])
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí