Uso de la calculadora en QGIS Graphical Modeler

8

Dado que la calculadora de modelador gráfico QGIS no dio una respuesta, probaré mi suerte aquí nuevamente. Creé un modelo simple en QGIS 2.18.16 que calculará una distancia basada en la extensión de un ráster y un número dado de divisiones, establecido por el usuario como parámetro. Básicamente se parecerá a la herramienta Fishnet de ArcGIS. El modelo se ve así:

La descripción en la calculadora me dice lo siguiente:

De acuerdo con esto, configuré mi fórmula como:

(e - d) / b    # this should give me the segment length
(g - f) / a    # this should give me the segment height

El registro de la ejecución del modelo me da el siguiente mensaje de error:

Parameters: 
    FORMULA =(g-f)/a, 
    NUMBER0 =2, 
    NUMBER1 =3125884.941, 
    NUMBER2 =3135324.941, 
    NUMBER3 =None, NUMBER4 =None, NUMBER5 =None, NUMBER6 =None, NUMBER7 =None, NUMBER8 =None, NUMBER9 =None
Failed
Error executing algorithm Calculator Wrong formula: (None-None)/2

Lamentablemente, la documentación está vacía. ¿Alguien puede decirme cómo configurar las variables correctamente?

s6hebern
fuente
En realidad, la pregunta NO se trata de cómo crear una red de pesca, sino de usar la calculadora correctamente
s6hebern

Respuestas:

3

Creo que este es un problema con el código en el archivo (para mí, la ruta es:) /QGIS 2.18/apps/qgis/python/plugins/processing/modeler/CalculatorModelerAlgorithm.py. Parece que al ejecutar el algoritmo, el código itera a través de todas las variables disponibles (que es 10) y les asigna su valor correspondiente.

Pero esto solo parece funcionar si todas las variables están establecidas en su fórmula, de lo contrario solo las variables incluidas en su fórmula recibirían un parámetro ( NUMBERX). Es decir, de su registro:

Parameters: 
    FORMULA =(g-f)/a, 
     NUMBER0 =2,   --> a
     NUMBER1 =3125884.941,   --> f
     NUMBER2 =3135324.941,   --> g

Un remedio rápido es escribir su fórmula e incluir todas las variables que no se usan multiplicándolas por 0.


  • Entonces, para su primera calculadora, intente reemplazar:

    (e - d) / b
    

    con:

    (e - d) / b + (a+c+f+g)*0
    
  • Y para su segunda calculadora, intente reemplazar:

    (g - f) / a
    

    con:

    (g - f) / a + (b+c+d+e)*0
    
José
fuente
1
Es cierto, eso es todo. Aunque no tengo idea de por qué es tan complicado
s6hebern
@ s6hebern - Creo que con una pequeña edición del código, este problema podría resolverse, pero me alegra que la solución funcione :)
Joseph
Ahora me encuentro con otro problema indirectamente relacionado con esto ... el algoritmo Create Grid necesita un CRS, pero no puedo usarlo como parámetro. ¿Alguna sugerencia? O publicar una nueva pregunta?
s6hebern
@ s6hebern: mejor publíquelo como una nueva pregunta (con un nivel de detalle similar al que publicó aquí) y espero que otros puedan aconsejar, ya que suena extraño.
Joseph
1

Creo que este complemento "Crear cuadrícula de vectores indexados" puede ayudarlo.

nagib
fuente
Conozco esa función, pero como se indica en la pregunta y el comentario debajo de ella, no se trata de crear la cuadrícula en particular, sino de la notación correcta en la calculadora.
s6hebern