Mi problema: con ArcPy, quiero recorrer buffers y seleccionar geometry_features dentro de cada buffer y hacer algo (actualizar) solo los objetos encontrados dentro de ese buffer específico. El siguiente código explica lo que quiero hacer (más o menos):
def _update_connections_inside_buffers(self):
buffers = arcpy.SearchCursor(self.__buffer_class_name)
in_layer = "connections"
for i_buffer in buffers:
shape = i_buffer.shape
# can not use a geometry to do a selection.. very inconvenient!!
connections = arcpy.SelectLayerByLocation_management(in_layer, "WITHIN", shape)
self._update_connections(connections)
Sin embargo: esto no funcionará porque SelectLayerByLocation_management () no acepta una geometría, "forma" como argumento, pero espera un feature_class_name (nombre de capa). ¿Existe un método arcpy que pueda hacer una búsqueda utilizando un predicado espacial? No pude encontrar cómo hacer esto en el manual de ESRI.
Encontré la solución al problema. Tuve que proporcionar un feature_layer como primer argumento en lugar de una cadena que se refiera al class_layer ".
fuente