Usando a calculadora no QGIS Graphical Modeler

8

Como a calculadora do modelador gráfico QGIS não levou a uma resposta, tentarei minha sorte aqui novamente. Eu criei um modelo simples no QGIS 2.18.16 que deve calcular uma distância com base na extensão de uma varredura e em um determinado número de divisões, definido pelo usuário como parâmetro. Basicamente, deve se parecer com a ferramenta Fishnet do ArcGIS. O modelo fica assim:

A descrição na calculadora me diz o seguinte:

De acordo com isso, configurei minha fórmula como:

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

O log da execução do modelo me fornece a seguinte mensagem de erro:

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

Infelizmente, a documentação está vazia. Alguém pode me dizer como configurar as variáveis ​​corretamente?

s6hebern
fonte
Na verdade, a questão não é sobre como criar uma rede de pesca, mas sim sobre como utilizar a calculadora corretamente
s6hebern

Respostas:

3

Eu acho que esse é um problema com o código no arquivo (para mim o caminho é:) /QGIS 2.18/apps/qgis/python/plugins/processing/modeler/CalculatorModelerAlgorithm.py. Parece que, ao executar o algoritmo, o código itera através de todas as variáveis ​​disponíveis (que são 10) e atribui a elas o valor correspondente.

Mas isso parece funcionar apenas se todas as variáveis ​​forem indicadas na sua fórmula, caso contrário, apenas as variáveis ​​incluídas na sua fórmula receberão um parâmetro ( NUMBERX). Ou seja, do seu log:

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

Uma solução rápida é escrever sua fórmula e incluir todas as variáveis ​​que não são usadas, multiplicando-as por 0.


  • Portanto, para sua primeira calculadora, tente substituir:

    (e - d) / b
    

    com:

    (e - d) / b + (a+c+f+g)*0
    
  • E para sua segunda calculadora, tente substituir:

    (g - f) / a
    

    com:

    (g - f) / a + (b+c+d+e)*0
    
Joseph
fonte
1
Verdade, é isso. Embora eu não tenho idéia por que ele é tão complicado
s6hebern
@ s6hebern - Eu acho que com um pouco de edição para o código, esse problema poderia ser resolvido, mas prazer as obras de solução :)
José
Agora estou encontrando outro problema indiretamente relacionado a isso ... o algoritmo Create Grid precisa de um CRS, mas não posso usá-lo como parâmetro. Alguma sugestão? Ou postar uma nova pergunta?
S6hebern
@ s6hebern - Melhor postar isso como uma nova pergunta (com nível semelhante de detalhe que você postou aqui) e espero que outros possam aconselhar, pois soa estranho.
Joseph
1

Eu acho que este plugin "Criar grade de vetor indexada" pode ajudá-lo.

Nagib
fonte
Eu conheço essa função, mas como declarado na pergunta e no comentário abaixo, não se trata de criar a grade em particular, mas da anotação correta na calculadora.
S6hebern