7 votos

Dos selecciones de una capa en el procesador Modeller

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.

5voto

Mue Puntos 2469

Usted podría tratar de crear una secuencia de comandos personalizada que:

  1. Asegura que todas las características se anula la selección.
  2. Selecciona la característica(s) que coincidan con su expresión.
  3. 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:

Step 1

A continuación, repita:

Step 2

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X