Tengo el problema siguiente: Trato de hacer dos selecciones paralelas. Para esto he aplicado antes del algoritmo "extracto por ubicación". Ahora me gustaría ejecutar en el siguiente paso de esta capa dos selecciones paralelas con el algoritmo "seleccionar por expresión". Sin embargo, esto probablemente no funciona. El modeller me creó las dos capas de selección, pero contienen los mismos registros. Así que la selección se lleva a cabo correctamente, pero para la otra selección toma el mismo valor.
Respuesta
¿Demasiados anuncios?Usted podría tratar de crear una secuencia de comandos personalizada que:
- Asegura que todas las características se anula la selección.
- Selecciona la característica(s) que coincidan con su expresión.
- Guarda la función seleccionada(s) en una capa.
Puede crear uno desde:
Processing Toolbox > Scripts > Tools > Create new script
A continuación, utilice algo como lo siguiente:
##Save_selected_features=name
##Input_Layer=vector
##Expression=string
##Output=output vector
from qgis.core import QgsExpression, QgsFeatureRequest
layer = processing.getObject(Input_Layer)
layer.removeSelection()
exp = QgsExpression( Expression)
ids = [i.id() for i in layer.getFeatures(QgsFeatureRequest(exp))]
layer.setSelectedFeatures(ids)
processing.runalg("qgis:saveselectedfeatures", layer, Output)
Asegúrese de que el script se guarda en su /.qgis2/processing/scripts/
directorio. Ahora en su modeler, reemplace el Select by expression
y Save selected features
algoritmos con la secuencia de comandos y el uso de los mismos parámetros. Repita para el otro lado. Esperemos que, esta debe guardar el correcto características en sus respectivas capas.
Ejemplo:
Usted puede configurar su modelo como se muestra, y la introducción de parámetros de la secuencia de comandos:
A continuación, repita: