import arcpy layer = arcpy.GetParameterAsText(0) apn = arcpy.GetParameterAsText(1) mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames (mxd, "LAYERS")[0] def select_parcels(layer, distance): while True: print_search_distance(distance) arcpy.SelectLayerByLocation_management(layer, "WITHIN_A_DISTANCE", layer, "%i Feet"%(distance),"NEW_SELECTION") if get_count(layer): r = arcpy.GetCount_management(layer) cnt = int(r.getOutput(0)) print "%i Features selected at a distance of %i Feet."%(cnt, distance) arcpy.AddMessage("%i Features selected at a distance of %i Feet."%(int(cnt),distance)) break layer = reselect(layer, selstring) distance += 25 ## End select_parcels function def get_count(layer): result = arcpy.GetCount_management(layer) if int(result.getOutput(0)) >= 31: return True else: return False ## End get_count function def reselect(layer, selection_string): arcpy.SelectLayerByAttribute_management(layer,'CLEAR_SELECTION') arcpy.SelectLayerByAttribute_management(layer, "NEW_SELECTION", selection_string) return layer ## End clear_selection function def print_search_distance(distance): arcpy.AddMessage('Searching %i Feet'%(distance)) arcpy.AddMessage(apn) selstring = """TAG = '{0}'""".format(apn) arcpy.AddMessage("Selection string = " + selstring) if not arcpy.Describe(layer).datatype == 'FeatureLayer': layer = arcpy.MakeFeatureLayer_management(layer, 'flayer') arcpy.SelectLayerByAttribute_management(layer, "NEW_SELECTION", selstring) rows = arcpy.SearchCursor(layer) n = 0 val = 0.0 for row in rows: val = val + row.tmp_pacres n = n + 1 arcpy.AddMessage("Sum of PACRES = " + str(val)) if n > 1: arcpy.Message("More than one record found") if val <= 1.0: select_parcels(layer, 300) elif (val > 1.0 and val <= 40.0): select_parcels(layer, 600) else: select_parcels(layer, 1200)
Solved! Go to Solution.
def select_parcels(layer, distance): while True: print_search_distance(distance) arcpy.SelectLayerByLocation_management(layer, "WITHIN_A_DISTANCE", layer, "%i Feet"%(distance),"NEW_SELECTION") if get_count(layer): r = arcpy.GetCount_management(layer) cnt = int(r.getOutput(0)) print "%i Features selected at a distance of %i Feet."%(cnt, distance) arcpy.AddMessage("%i Features selected at a distance of %i Feet."%(int(cnt),distance)) break layer = reselect(layer, selstring) distance += 25 return distance ## End select_parcels function
if val <= 1.0: radius = select_parcels(layer, 300) elif (val > 1.0 and val <= 40.0): radius = select_parcels(layer, 600) else: radius = select_parcels(layer, 1200)
R=c/pi/2 #R = radius, c = circimference
def select_parcels(layer, distance): while True: print_search_distance(distance) arcpy.SelectLayerByLocation_management(layer, "WITHIN_A_DISTANCE", layer, "%i Feet"%(distance),"NEW_SELECTION") if get_count(layer): r = arcpy.GetCount_management(layer) cnt = int(r.getOutput(0)) print "%i Features selected at a distance of %i Feet."%(cnt, distance) arcpy.AddMessage("%i Features selected at a distance of %i Feet."%(int(cnt),distance)) break layer = reselect(layer, selstring) distance += 25 return distance ## End select_parcels function
if val <= 1.0: radius = select_parcels(layer, 300) elif (val > 1.0 and val <= 40.0): radius = select_parcels(layer, 600) else: radius = select_parcels(layer, 1200)