Utilisation de la calculatrice dans QGIS Graphical Modeler

8

Étant donné que la calculatrice de modélisation graphique QGIS n'a pas conduit à une réponse, je vais tenter ma chance ici encore. J'ai créé un modèle simple dans QGIS 2.18.16 qui calculera une distance basée sur l'étendue d'un raster et un nombre donné de divisions, défini par l'utilisateur comme paramètre. Fondamentalement, il doit ressembler à l'outil Fishnet d'ArcGIS. Le modèle ressemble à ceci:

La description dans la calculatrice me dit ce qui suit:

Selon cela, j'ai mis en place ma formule comme:

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

Le journal de l'exécution du modèle me donne alors le message d'erreur suivant:

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

Malheureusement, la documentation est vide. Quelqu'un peut-il me dire comment configurer correctement les variables?

s6hebern
la source
En fait, la question n'est PAS de savoir comment créer un filet de pêche, mais plutôt d'utiliser correctement la calculatrice
s6hebern

Réponses:

3

Je pense que c'est un problème avec le code dans le fichier (pour moi, le chemin est:) /QGIS 2.18/apps/qgis/python/plugins/processing/modeler/CalculatorModelerAlgorithm.py. Il semble que lors de l'exécution de l'algorithme, le code parcourt toutes les variables disponibles (ce qui est 10) et leur attribue leur valeur correspondante.

Mais cela ne semble fonctionner que si toutes les variables sont indiquées dans votre formule, sinon seules les variables incluses dans votre formule recevraient un paramètre ( NUMBERX). C'est à dire de votre journal:

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

Un remède rapide consiste à écrire votre formule et à inclure toutes les variables qui ne sont pas utilisées en les multipliant par 0.


  • Donc, pour votre première calculatrice, essayez de remplacer:

    (e - d) / b
    

    avec:

    (e - d) / b + (a+c+f+g)*0
    
  • Et pour votre deuxième calculatrice, essayez de remplacer:

    (g - f) / a
    

    avec:

    (g - f) / a + (b+c+d+e)*0
    
Joseph
la source
1
C'est vrai. Bien que je ne
sache
@ s6hebern - Je pense qu'avec une petite modification du code, ce problème pourrait être résolu mais heureux que la solution de contournement fonctionne :)
Joseph
Maintenant, je rencontre un autre problème indirectement lié à cela ... l'algorithme Create Grid a besoin d'un CRS, mais je ne peux pas l'utiliser comme paramètre. Aucune suggestion? Ou poster une nouvelle question?
s6hebern
@ s6hebern - Mieux vaut poster cela comme une nouvelle question (avec le même niveau de détail que vous avez posté ici) et j'espère que d'autres pourront vous conseiller car cela semble étrange.
Joseph
1

Je pense que ce plugin "Créer une grille vectorielle indexée" peut vous aider.

nagib
la source
Je connais cette fonction, mais comme indiqué dans la question et le commentaire en dessous, il ne s'agit pas de créer la grille en particulier, mais de la notation correcte dans la calculatrice.
s6hebern