4 votos

Selección de entrada para QGIS los modelos de Procesamiento

QGIS 2.14.11 LTR. En un script de procesamiento se puede definir una selección como parámetro de entrada por ##auswahl_test=selection spam;egg;dummy resultante en

enter image description here

Trasfondo es que yo quiero darle una selección de fórmulas (cadenas) como entrada para la field calculator algoritmo utilizado en un modelo. Por ahora, estoy escribiendo estas fórmulas en un campo de entrada de cadena con la mano, lo cual es molesto, lento y propenso a errores.

Ahora hay una manera de obtener tales campo de entrada en el auto-generado interfaz gráfica de usuario de un modelo de procesamiento? O alguna sugerencia de cómo proporcionar una selección de las cuerdas, como un modelo de entrada?

5voto

Mue Puntos 2469

Esto es más de una solución, ya que no estoy seguro de si es posible en el momento para permitir a un usuario seleccionar de una gama de valores de cadena. En su lugar, puedes utilizar booleanos que representaría sus fórmulas (estos se conectan a una secuencia de comandos personalizada que contengan sus fórmulas). De modo que cuando un usuario hace clic en un valor booleano de la modeler, la secuencia de comandos de salida será la correspondiente fórmula para la calculadora de campo.


Aquí está un ejemplo de una secuencia de comandos personalizada donde las entradas son tres booleanos y dependiendo de la opción seleccionada, el output string contendrá la fórmula. Las fórmulas son muy simples, multiplicando los valores de la id de campo con un número entero:

##Example=name
##formula_1=boolean
##formula_2=boolean
##formula_3=boolean
##selected_formula=output string

if formula_1 == True:
    selected_formula=""" "id" * 2 """
if formula_2 == True:
    selected_formula=""" "id" * 3 """
if formula_3 == True:
    selected_formula=""" "id" * 4 """
else:
    pass

Ahora en su modeler, crear los tres booleanos (yo las dejaría desactivada de forma predeterminada). A continuación, agregue la secuencia de comandos personalizada vinculación de los booleanos. A continuación, agregue la calculadora de campo, y para su Formula de parámetro, seleccione el 'selected formula' from algorithm 'Example':

Example modeler

Ahora al ejecutar el modelo, debería ser algo como la siguiente, donde puede seleccionar la fórmula a utilizarse:

Running model

3voto

DBM Puntos 51

Otra solución acaba de salir de mi cerebro, ya que en los modelos que podemos seleccionar de campos de la tabla. Así que mi workaroud va como esto:

Puse mi fórmula recogida en una bonita hoja de cálculo, es decir, con una descripción de lo que las fórmulas hacer como los encabezados:

enter image description here

Esto añado a mi proyecto.

Ya que no puedo pasar de campo de tabla de valores como entrada a field calculator, tengo un pequeño script personalizado, que hace que las cadenas de campo de la tabla de valores:

##input=table
##a=field input
##text=output string
formeln=processing.getObject(input)
for fo in formeln.getFeatures():
    text = fo[a]

En mi modelo, me tiene como parámetros de entrada un table, un table field y vector, pasando table y table field a la secuencia de comandos personalizada, y pasando su salida a la field calculator:

enter image description here

En la interfaz gráfica de usuario, que ahora puede seleccionar a partir de las descripciones de mi fórmulas (de hacerlo, variedad de diferentes fórmula colecciones sería pensable):

enter image description here

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