HOW TO
In ArcGIS Pro sind Punkt-Features mit Datumsfeldern wichtig, um Muster im Zeitverlauf zu verfolgen. Es kommt vor, dass diese Punkte eine bestimmte Dauer für die Gültigkeit des Datums aufweisen und nicht mehr gültig sind. Sie werden dann nicht mehr auf der Karte angezeigt. Dies ist wichtig, um Verwirrung zu vermeiden und die Übersichtlichkeit der Daten zu verbessern, da ungültige Punkte zu Verwirrung führen und eine Fehlinterpretation der Daten zur Folge haben können.
In diesem Artikel wird der Workflow zum Entfernen ungültiger Punkte mithilfe von ArcPy in ArcGIS Pro beschrieben.
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.
import arcpy
import datetime
arcpy.env.workspace = r"<pathToPointFc>"
feature_class = "<featureClassName>"
date_field = "<dateFieldName>"
#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)
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]
# 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")
edit.stopOperation()
edit.stopEditing(True)
print("Points removed successfully.")
except Exception as e:
print(e)
edit.stopEditing(False)
Im folgenden Code-Block finden Sie das vollständige Skript.
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)
Die folgende Abbildung zeigt die abgelaufenen Punkte, die mit ArcPy entfernt wurden. Aktualisieren Sie die Karte, um die Änderungen zu übernehmen.

Artikel-ID: 000032387
Unterstützung durch ArcGIS-Experten anfordern
Beginnen Sie jetzt mit dem Chatten