PROCÉDURE
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.
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)
La somme des champs numériques de chaque entité est désormais renseignée dans le nouveau champ, « SumField ».
Obtenir de l’aide auprès des experts ArcGIS
Télécharger l’application Esri Support