Hi all,
I am working with ArcGIS Pro 3.0.5 and I am using a python notebook for managing my layers. One layer contains streets (old ones which are out of date and actual ones). So in the attribute table, there is a field with the ToDate for each street segment. My goal is to delet all the old street segments, however, I struggel a bit with the task.
So, following the script which I have so far:
# Loading the libraries
import arcpy
import os
import numpy as np
import datetime
# Referencing the current project
aprx = arcpy.mp.ArcGISProject('current')
# Rerencing the appropiate map
mp = aprx.listMaps('Map')[0]
# Referencing the individual map layers in different variables
CLayer = aprx.listMaps()[0].listLayers('C-line')
ALayer = aprx.listMaps()[0].listLayers('achsen')
# Referencint the table
clsTable = aprx.listMaps()[0].listTables('CLS_Table')
# Checking the data type
print(type(clsTable))
print(type(CLayer))
print(type(ALayer))
# Printing the first rows of the table - should work similar for the other variables
with arcpy.da.SearchCursor(clsTable[0], "*") as cursor:
# Use slicing to get the first 5 rows
first_five_rows = [row for i, row in enumerate(cursor)][:5]
# Print the first five rows
for row in first_five_rows:
print(row)
So far, the script is working. But now it starts:
# Creating a variable for the current date
cur_date = datetime.datetime.today()
# Cleaning the layer
where_clause1 = """ToDate < '{}'""".format(cur_date.strftime('%Y-%m-%d'))
# Selecting the rows
arcpy.Select_analysis(ALayer, "select_past_dates", where_clause1)
# Deleting the selected rows
arcpy.DeleteFeatures_management("select_past_dates")
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
In [8]:
Line 5: arcpy.Select_analysis(ALayer, "select_past_dates", where_clause1)
File C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\analysis.py, in Select:
Line 138: raise e
File C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\analysis.py, in Select:
Line 135: retval = convertArcObjectToPythonObject(gp.Select_analysis(*gp_fixargs((in_features, out_feature_class, where_clause), True)))
File C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\geoprocessing\_base.py, in <lambda>:
Line 512: return lambda *args: val(*gp_fixargs(args, True))
RuntimeError: Object: Error in executing tool
---------------------------------------------------------------------------
And I also tried it this way:
cursor = arcpy.da.UpdateCursor(ALayer, ["ToDate"])
for row in cursor:
if row[0] < cur_date:
cursor.deletRow()
cursor.close()
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
In [13]:
Line 1: cursor = arcpy.da.UpdateCursor(ALayer, ["ToDate"])
RuntimeError: 'in_table' is not a table or a featureclass
---------------------------------------------------------------------------
It would be great if someone could help me.
Thanks in advance,
Nadja