CÓMO

Calcular la suma de todos los valores de los campos de atributos numéricos utilizando ArcPy en ArcGIS Pro

Last Published: April 7, 2023

Resumen

En ArcGIS Pro, la función sum() de la herramienta Calcular campo se puede utilizar para calcular la suma de cada registro a partir de una lista de campos numéricos. Sin embargo, cuando la tabla o clase de entidad contiene un gran número de campos, no es práctico seleccionar manualmente todos los campos numéricos.

La secuencia de comandos de ArcPy proporcionada en este artículo se puede utilizar para calcular la suma de los valores de todos los campos numéricos de una tabla o clase de entidad.

En este ejemplo, hay cinco campos numéricos en la clase de entidad 'Point1', como se muestra en la siguiente imagen.

El campo de atributo de la clase de entidad Point1 en ArcGIS Pro.

Procedimiento

  1. En ArcGIS Pro, en la pestaña Análisis, haga clic en la flecha hacia abajo situada junto a Python y haga clic en Ventana de Python.
  2. En la ventana de Python, introduzca la secuencia de comandos de Python a continuación. Reemplace <ruta> por la ruta de la clase de entidad o la tabla.
import arcpy

# Set the path to the feature class or the table
table = r""

# Add a new field to the table
arcpy.management.AddField(table, "SumField", "DOUBLE")

# Use UpdateCursor to iterate through the rows of the table
with arcpy.da.UpdateCursor(table, "*") as cursor:
    for row in cursor:
        # Initialize a variable to store the sum
        total = 0
        # Iterate through each field in the row
        for i in range(len(row)):
            # Check if the field is numeric and not OBJECTID, Shape_Length, and Shape_Area
            if isinstance(row[i], (int, float, complex)) and cursor.fields[i] not in ['OBJECTID', 'Shape_Length', 'Shape_Area']:
                # Add the field's value to the total
                total += row[i]
        # Update the new field with the total
        row[cursor.fields.index('SumField')] = total
        cursor.updateRow(row)
  1. Sitúe el cursor al final de la secuencia de comandos y pulse Intro dos veces.

La suma de los campos numéricos de cada entidad ahora se rellena en el nuevo campo, 'SumField'.

El campo de atributo de la clase de entidad Point1 con el nuevo campo que contiene el resultado de la secuencia de comandos de ArcPy.

Id. de artículo: 000029132

Recibir notificaciones y encontrar soluciones a problemas nuevos o comunes

Obtenga respuestas resumidas y soluciones de vídeo de nuestro nuevo chatbot de IA.

Descargar la aplicación de soporte de Esri

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Descargar la aplicación de soporte de Esri

Ir a opciones de descarga