Mein Problem: Mit ArcPy möchte ich Puffer durchlaufen und Geometriefunktionen in jedem Puffer auswählen und nur die in diesem bestimmten Puffer gefundenen Objekte aktualisieren. Der folgende Code erklärt, was ich tun möchte (mehr oder weniger):
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)
Dies funktioniert jedoch nicht, da SelectLayerByLocation_management () keine Geometrie "Form" als Argument akzeptiert, sondern einen Feature-Klassennamen (Layername) erwartet. Gibt es eine arcpy-Methode, die eine Suche mit einem räumlichen Prädikat durchführen kann? Wie das geht, konnte ich im ESRI-Handbuch nicht finden.
Ich habe die Lösung für das Problem gefunden. Ich musste einen feature_layer als erstes Argument angeben, anstatt einen String, der sich auf den class_layer bezieht. "
quelle