Instrução

Calcular a soma de todos os valores de campos de atributos numéricos utilizando ArcPy in ArcGIS Pro

Last Published: April 7, 2023

Resumo

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.

O campo de atributo da classe de feição Point1 no ArcGIS Pro.

Procedimento

  1. No ArcGIS Pro, na guia Análise, clique na seta para baixo ao lado de Python e clique em Janela do Python.
  2. Na janela Python, insira o script Python abaixo. Substitua <caminho> pelo caminho para a classe de feição ou a tabela.
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. Posicione o cursor no final do script e pressione Enter duas vezes.

A soma dos campos numéricos para cada feição agora é preenchida no novo campo, 'SumField'.

O campo de atributo da classe de feição Point1 com o novo campo contendo o resultado do script ArcPy.

ID do Artigo: 000029132

Receba notificações e encontre soluções para problemas novos ou comuns

Obtenha respostas resumidas e soluções de vídeo do nosso novo chatbot de IA.

Baixe o Aplicativo de Suporte da Esri

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download