私の問題:ArcPyを使用して、バッファーをループして各バッファー内のgeometry_featuresを選択し、その特定のバッファー内で見つかったオブジェクトのみに何か(更新)を実行したいと考えています。以下のコードは、私が何をしたいかを説明しています(多かれ少なかれ):
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)
ただし、これは機能しません。SelectLayerByLocation_management()はジオメトリ、「形状」を引数として受け入れませんが、feature_class_name(レイヤー名)を想定しているためです。空間述語を使用して検索できるarcpyメソッドはありますか?Esriマニュアルからこれを行う方法を見つけることができませんでした。