PROCÉDURE

calculer la somme de toutes les valeurs des champs d’attributs numériques à l’aide d’ArcPy dans ArcGIS Pro

Last Published: April 7, 2023

Résumé

Dans ArcGIS Pro, la fonction sum() de l’outil Calculer un champ permet de calculer la somme de chaque enregistrement à partir d’une liste de champs numériques. Toutefois, lorsque la classe d’entités ou la table contient un grand nombre de champs, il n’est pas pratique de sélectionner manuellement tous les champs numériques.

Le script ArcPy fourni dans cet article permet de calculer la somme des valeurs de tous les champs numériques d’une classe d’entités ou d’une table.

Dans cet exemple, la classe d’entités « Point1 » comporte cinq champs numériques, comme illustré dans l’image suivante.

Champ attributaire de la classe d’entités Point1 dans ArcGIS Pro.

Procédure

  1. Dans ArcGIS Pro, dans l’onglet Analysis (Analyse), cliquez sur la flèche déroulante en regard de Python, puis sur Python Window (Fenêtre Python).
  2. Dans la fenêtre Python, saisissez le script Python ci-dessous. Remplacez <path> par le chemin d’accès à la classe d’entités ou à la table.
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. Placez le curseur à la fin du script et appuyez deux fois sur Entrée.

La somme des champs numériques de chaque entité est désormais renseignée dans le nouveau champ, « SumField ».

Champ attributaire de la classe d’entités Point1 avec le nouveau champ contenant le résultat du script ArcPy.

ID d’article: 000029132

Recevoir des notifications et trouver des solutions liées à de nouvelles questions ou à des problèmes connus

Recevez des réponses synthétisées et des solutions en vidéo de notre nouvel agent conversationnel (IA).

Télécharger l’application Esri Support

Obtenir de l’aide auprès des experts ArcGIS

Contacter le support technique

Télécharger l’application Esri Support

Accéder aux options de téléchargement