import arcpy def get_id_of_higest(fc, attr): """Return object ID of a feature with the highest value of attribute attr. Returns None if fc is an empty feature class. fc -- feature class (MUST BE STORED IN A GEODATABASE!!!) attr -- name of the attribute to examine """ ret = None with arcpy.da.SearchCursor(fc, ['OID@', attr], sql_clause=(None, 'ORDER BY "' + str(attr) + '" DESC')) as sc: for row in sc: ret = row[0] break return ret myfc = r'c:\temp\cities.shp' myattr = 'pop_max' maxido = get_id_of_higest(myfc, myattr) # now you can use maxido to select the feature
copiedFeatureNumber = 1 featureLayer = arcpy.mapping.Layer(featureClass) while True: # Break out of loop when feature class is empty if int(arcpy.GetCount_management(geodatabaseLayer).getOutput(0)) == 0: break # Get List from Search Cursor sortedList = [row for row in arcpy.da.SearchCursor(featureLayer,["OID@","pointValue"])] # Sort List by the Point Value sortedList = sorted(sortedList, key=lambda x: x[1], reverse=True) # Get the FID of the largest Point Value FID = sortedList[0][0] # Select that Feature arcpy.SelectLayerByAttribute_management(featureLayer,"NEW_SELECTION","FID = {0}".format(FID)) # Add to Selection all features within 5 Miles of that Feature arcpy.SelectLayerByLocation_management(featureLayer,"WITHIN_A_DISTANCE",featureLayer,"5 Miles","ADD_TO_SELECTION") # Make a copy of those features for whatever use desired arcpy.CopyFeatures_management(featureLayer,"featureLayer_Num_{0}".format(copiedFeatureNumber)) # Make a list of the selected FIDs FIDList = [row[0] for row in arcpy.da.SearchCursor(featureLayer,["OID@"])] # Clear Selection arcpy.SelectLayerByAttribute_management("address_final_lm","CLEAR_SELECTION") # Iterate through that Feature Class and remove all features in the selected FID List with arcpy.da.UpdateCursor(featureLayer, ["OID@"]) as updatecursor: for row in updatecursor: if row[0] in FIDList: updatecursor.deleteRow() copiedFeatureNumber += 1
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.