CÓMO

Eliminar puntos no válidos con ArcPy en ArcGIS Pro

Last Published: April 26, 2024

Resumen

En ArcGIS Pro, las entidades de punto que contienen campos de fecha son importantes para realizar un seguimiento de los patrones a lo largo del tiempo. A veces, estos puntos contienen una duración de fecha especificada y ya no son válidos para mostrarse en el mapa. Esto es importante para evitar confusiones y mejorar la claridad de los datos, ya que los puntos no válidos pueden crear confusión, lo que conlleva una interpretación incorrecta de los datos.

En este artículo se describe el flujo de trabajo para eliminar puntos no válidos mediante ArcPy en ArcGIS Pro.

Procedimiento

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. En ArcGIS Pro, abra el mapa que contiene la capa de entidades de punto.
  2. Abra la ventana de Python. Consulte ArcGIS Pro: ventana de Python para obtener más información.
  3. Ejecute el siguiente script:
    1. Importe los módulos necesarios.
import arcpy
import datetime
  1. Configure el espacio de trabajo y la clase de entidad de punto. Reemplace <pathToPointFc> por la ruta de la clase de entidad de punto. Reemplace <featureClassName> por el nombre de la clase de entidad de punto.
arcpy.env.workspace = r"<pathToPointFc>"
feature_class = "<featureClassName>"
  1. Establezca el campo de fecha con el que se va a comprobar. Reemplace <dateFieldName> por el nombre del campo de fecha.
date_field = "<dateFieldName>"
  1. Establezca el umbral de fecha para eliminar los puntos no vá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 la sesión de edición y la operación de edición.
try:
    edit = arcpy.da.Editor(arcpy.env.workspace)
    edit.startEditing(False, True)

   edit.startOperation()
  1. Cree un cursor para repetir por las entidades.
    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. Detenga la sesión de edición y la operación de edición.
    edit.stopOperation()

    edit.stopEditing(True)
  1. Imprima un mensaje cuando los puntos se hayan ocultado correctamente.
    print("Points removed successfully.")
  1. Imprima un mensaje de error y revierta las ediciones realizadas durante la sesión de edición para evitar daños en los datos.
except Exception as e:
  print(e)
    edit.stopEditing(False)

El siguiente bloque de código demuestra el 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)

La siguiente imagen muestra los puntos caducados eliminados con ArcPy. Actualice el mapa para aplicar los cambios.

Los puntos caducados se eliminan en ArcGIS Pro

Id. de artículo: 000032387

Obtenga soporte con IA

Resuelva su problema rápidamente con el chatbot de inteligencia artificial de soporte de Esri.

Empieza a chatear ahora

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Empieza a chatear ahora

Ir a opciones de descarga