I am trying to create and update a field with a count of line features (
tLayer) within a distance of point features (
sLayer). I am attempting to use a combination of
The code I have for this is currently updating all records for the
Line_Count field with the count of the point features (i.e. 2) for only the last record. Though, a print statement following the
GetCount line will return the line count for all of the point features (with a few unessential iterations). I believe it is only printing the last row in 'result' for the
Line_Count update statement. Is there an efficient way for result (i.e.
result=int(arcpy.GetCount_management("tLayer_lyr").getOutput(0))) to be saved as a list or an array that can be written to the
Line_Count field? ...Or would it be best to use a dictionary?
What do I need to do to appropriately update the
Line_Count field for all of the records? Also, this process will be applied to a large dataset and will be extended to include 'where clauses'. Are there any suggestions as to how to make this as efficient as possible?
import arcpy from arcpy import env arcpy.env.OverwriteOutput = True defaultGdbPath = 'C:\Topo_Check_Tess_V5.gdb' sLayer='C:\Topo_Check_Tess_V5.gdb\Stations' tLayer='C:\Topo_Check_Tess_V5.gdb\Lines' #ppLayer='C:\Topo_Check_Tess_V5.gdb\Plants' arcpy.AddField_management(sLayer, "Line_Count", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "") TLineCountField = "Line_Count" arcpy.MakeFeatureLayer_management(tLayer, "tLayer_lyr") with arcpy.da.UpdateCursor (sLayer, TLineCountField) as LineCountList: for s_row in LineCountList: with arcpy.da.SearchCursor(sLayer,["OBJECTID", "SHAPE@"]) as s_list: for station in s_list: arcpy.SelectLayerByLocation_management("tLayer_lyr", 'WITHIN_A_DISTANCE', station,.000002, "NEW_SELECTION") result=int(arcpy.GetCount_management("tLayer_lyr").getOutput(0)) print result LineCountList.updateRow(s_row) del station del s_row print "Done"