I have a script that is using the OID@ as the cursor to iterate through a feature class. It seems to be skipping 3 OIDs at random intervals during the script when using UpdateCursor, but seems to have a consistent 3 row skip when using SearchCursor.
Is there a reason as to why I am getting a random skip here?
with arcpy.da.SearchCursor(IterateLayer, ["OID@"]) as cursor:
for row in cursor:
rowID = str(row[0])
arcpy.AddMessage(fr"Processing for Pole: "+ rowID)
PoleSelected = mgt.SelectLayerByAttribute(IterateLayer, "NEW_SELECTION", "OBJECTID = {}".format(row[0]))
arcpy.AddMessage("Closest River/Stream Processing")
def Closest_RiverStream(SaR, PoleS):
def RiverStream_ID(PoleS):
with arcpy.da.SearchCursor((PoleS), "Stream_ID") as cursor:
for row in cursor:
StreamID = '{}'.format(row[0])
StreamID = str(StreamID)
return StreamID
RID = RiverStream_ID(PoleS)
RID = str(RID)
clause = "OBJECTID = " + RID
StreamSelected = mgt.SelectLayerByAttribute(SaR, "NEW_SELECTION", where_clause=clause)
def StreamPermanence(S_S):
with arcpy.da.SearchCursor(S_S, "StreamPermanence"):
for row in cursor:
StreamPerm = '{}'.format(row[0])
StreamPerm = str(StreamPerm)
return StreamPerm
if (RID != "-1"):
ParclOwner = mgt.CalculateField(PoleS, "StreamPermanence", "'"+str(StreamPermanence(StreamSelected))+"'")
else:
NotInSearchDist = "Not Within 100 Feet of Stream or River"
ParclOwner = mgt.CalculateField(PoleS, "StreamPermanence", "'"+str(NotInSearchDist)+"'")
def StreamSize(S_S):
with arcpy.da.SearchCursor(S_S, "FPAStreamSize"):
for row in cursor:
Stream_Size = '{}'.format(row[0])
Stream_Size = str(Stream_Size)
return Stream_Size
if (RID != "-1"):
ParclOwner = mgt.CalculateField(PoleS, "StreamSize", "'"+str(StreamSize(StreamSelected))+"'")
else:
NotInSearchDist = "Not Within 100 Feet of Stream or River"
ParclOwner = mgt.CalculateField(PoleS, "StreamSize", "'"+str(NotInSearchDist)+"'")
#mgt.Delete(TempPole)
Closest_RiverStream(StreamAndRivers, PoleSelected)
mgt.SelectLayerByAttribute(StreamAndRivers, "CLEAR_SELECTION")