Tengo una vieja herramienta ArcView 3 que me han encargado convertir a Python. Lo estoy dividiendo en etapas, pero hay una "selección andante" que no puedo atrapar.
Para contextualizar la consulta, el usuario selecciona un lugar (datos puntuales): selección A. A continuación, se seleccionan todos los lugares situados en un radio de X kilómetros de la selección A (selección B), luego se seleccionan todos los lugares situados en un radio de X de kilómetros de la selección B, y así sucesivamente hasta que no se realizan nuevas selecciones.
He intentado utilizar un bucle While... con un Get Count en vano. El problema creo que es porque el Get Count siempre tendrá un valor, así que creo que tengo que hacer algo como Get Count <> Previous Get Count?
#Import ArcPy site package
import arcpy
# Overwrite files
arcpy.env.overwriteOutput = True
try:
# Make a feature layer with all the farms
arcpy.MakeFeatureLayer_management(r"shapefile.shp", "Farms")
# Make a feature layer containing only the farm of interest
arcpy.MakeFeatureLayer_management(r"shapefile_select.shp","Farms_select")
# Apply a selection to farms layer
fcFarms = arcpy.SelectLayerByLocation_management ("Farms","WITHIN_A_DISTANCE","Farms_select", "2000 Meters")
# Apply a further selection to farms layer
fcFarms2 = arcpy.SelectLayerByLocation_management("Farms","WITHIN_A_DISTANCE",fcFarms, "2000 Meters", "ADD_TO_SELECTION")
while getCount > 0:
fcFarms3 = arcpy.SelectLayerByLocation_management("Farms","WITHIN_A_DISTANCE", fcFarms2, "2000 Meters", "ADD_TO_SELECTION")
fcFarms4 = arcpy.SelectLayerByLocation_management("Farms","WITHIN_A_DISTANCE", fcFarms3, "2000 Meters", "NEW_SELECTION")
getCount = int(arcpy.GetCount_management(fcFarms4))
except:
print arcpy.GetMessages()