Instrução
No ArcGIS Pro, a função sum() na ferramenta Calcular Campo pode ser utilizada para calcular a soma de cada registro a partir de uma lista de campos numéricos. No entanto, quando a classe de feição ou tabela contém um grande número de campos, é impraticável selecionar manualmente todos os campos numéricos.
O script ArcPy fornecido neste artigo pode ser utilizado para calcular a soma dos valores de todos os campos numéricos em uma classe de feição ou tabela.
Neste exemplo, há cinco campos numéricos na classe de feição 'Point1', conforme mostrado na próxima imagem.
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)
A soma dos campos numéricos para cada feição agora é preenchida no novo campo, 'SumField'.
Obtenha ajuda de especialistas do ArcGIS
Baixe o Aplicativo de Suporte da Esri