Estoy tratando de escribir un python script que itera sobre las características de una capa, selecciona una característica y se alimenta en processing.runalg(). Estoy bastante seguro de que la selección se lleva a cabo. Sin embargo, el bit processing.runalg("qgis:xxx") ocurre sin tener en cuenta la selección. Sé que hay muchas preguntas y respuestas similares, pero he probado sus sugerencias y no he tenido éxito. Pensé que tal vez si alguien ve el código podría ayudarme a resolver esto.
Este es el código (las sangrías en los bucles for pueden estar desordenadas por el formato):
inter_shpmemory = iface.addVectorLayer(main_directory + "\\" +
intersect_shpname,"Zone layer",labtype)
specieslayer_mem = iface.addVectorLayer(main_directory + "\\" +
bd_shpname,"GBIF layer",labtype)
###Create a folder to safe all stuff
newfolder = main_directory + "\\" + "Zonal_GBIF"
if not os.path.exists(newfolder):
os.makedirs(newfolder)
it = specieslayer_mem.getFeatures( QgsFeatureRequest() )
inputLayerIds = [i.id() for i in it]
#selects all of the input feature and one feature from the clip layer
specieslayer_mem.setSelectedFeatures( inputLayerIds )###is this even
#needed?
features = inter_shpmemory.getFeatures()
for feature in features:
indbd_name = feature['simp_name']
inter_shpmemory.setSelectedFeatures([feature.id()])
print "Feature ID %d: " % feature.id()
print indbd_name
processing.runalg('qgis:clip', specieslayer_mem, inter_shpmemory, newfolder + '\\' + indbd_name +'.shp')
inter_shpmemory.setSelectedFeatures([])
specieslayer_mem.setSelectedFeatures([])
No puedo conseguir hacer lo que quiero.