Instrução

remover pontos inválidos utilizando ArcPy no ArcGIS Pro

Last Published: April 26, 2024

Resumo

No ArcGIS Pro, as feições de ponto contendo campos de data são importantes para rastrear padrões ao longo do tempo. Às vezes, esses pontos contêm uma duração de data especificada e não são mais válidos para serem exibidos no mapa. Isso é importante para evitar confusão e melhorar a clareza dos dados, pois pontos inválidos podem criar confusão, levando a interpretações incorretas dos dados.

Este artigo descreve o fluxo de trabalho para remover pontos inválidos utilizando ArcPy no ArcGIS Pro.

Procedimento

Note:
This workflow requires a full script to run in the ArcGIS Pro Python window. All the indents are to be kept as portrayed in the code block.
  1. No ArcGIS Pro, abra o mapa que contém a camada de feição de ponto.
  2. Abra a janela Python. Consulte ArcGIS Pro: Janela Python para obter mais informações.
  3. Execute o seguinte script:
    1. Importe os módulos necessários.
import arcpy
import datetime
  1. Configure a área de trabalho e a classe de feição de ponto. Substitua <pathToPointFc> pelo caminho da classe de feição de ponto. Substitua <featureClassName> pelo nome da classe de feição de ponto.
arcpy.env.workspace = r"<pathToPointFc>"
feature_class = "<featureClassName>"
  1. Defina o campo de data a ser verificado. Substitua <dateFieldName> pelo nome do campo de data.
date_field = "<dateFieldName>"
  1. Defina o limite de data para remover os pontos inválidos.
#If using the Date field type
threshold_date = datetime.datetime(YYYY, MM, DD)

#If using the Date Only field type
threshold_date = datetime.date(YYYY, MM, DD)
  1. Inicie a sessão de edição e a operação de edição.
try:
    edit = arcpy.da.Editor(arcpy.env.workspace)
    edit.startEditing(False, True)

   edit.startOperation()
  1. Crie um cursor para iterar pelas feições.
    with arcpy.da.UpdateCursor(feature_class, ["OID@", date_field]) as cursor:
        for row in cursor:
            date_value = row[1]
            # Check if date is not None and if it's expired
            if date_value:
                if date_value < threshold_date:
                    print(f"Deleting feature with OID {row[0]} and date {date_value}")
                    cursor.deleteRow()
            else:
                print(f"Skipping feature with OID {row[0]} because date field is None")
  1. Pare a sessão de edição e a operação de edição.
    edit.stopOperation()

    edit.stopEditing(True)
  1. Imprima uma mensagem quando os pontos forem ocultados com sucesso.
    print("Points removed successfully.")
  1. Imprima uma mensagem de erro e reverta todas as edições feitas durante a sessão de edição para evitar corrupção de dados.
except Exception as e:
  print(e)
    edit.stopEditing(False)

O bloco de código abaixo demonstra o script completo.

import arcpy
import datetime

arcpy.env.workspace = r"C:\Users\Documents\ArcGIS\Projects\MyProject40\MyProject40.gdb"
feature_class = "Pointsss"

date_field = "Date"

threshold_date = datetime.datetime(2023, 1, 1)

try:
    edit = arcpy.da.Editor(arcpy.env.workspace)
  edit.startEditing(False, True)

  edit.startOperation()

    with arcpy.da.UpdateCursor(feature_class, ["OID@", date_field]) as cursor:
        for row in cursor:
          date_value = row[1]
            if date_value:
                if date_value < threshold_date:
                    print(f"Deleting feature with OID {row[0]} and date {date_value}")
                    cursor.deleteRow()
            else:
                print(f"Skipping feature with OID {row[0]} because date field is None")

    edit.stopOperation()

    edit.stopEditing(True)

    print("Points removed successfully.")

except Exception as e:
  print(e)
    edit.stopEditing(False)

A imagem abaixo mostra os pontos expirados removidos usando o ArcPy. Atualize o mapa para aplicar as alterações.

Os pontos expirados são removidos no ArcGIS Pro

ID do Artigo: 000032387

Obtenha suporte com IA

Resolva seu problema rapidamente com o chatbot de IA de suporte da Esri.

Comece a conversar agora

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Comece a conversar agora

Ir para as opções de download