QGISグラフィカルモデラーでの電卓の使用


8

以来QGISグラフィカルモデラーの計算は答えをもたらさなかった、私は再びここに私の運を試してみましょう。QGIS 2.18.16で簡単なモデルを作成しました。これは、ラスターの範囲とユーザーがパラメーターとして設定した特定の分割数に基づいて距離を計算するものです。基本的には、ArcGISのフィッシュネットツールに似ています。モデルは次のようになります。

電卓の説明から、次のことがわかります。

これによると、私は私のような式を次のように設定しました:

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

モデル実行からのログには、次のエラーメッセージが表示されます。

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

残念ながら、ドキュメントは空です。変数を正しく設定する方法を誰かに教えてもらえますか?


実際には、質問が漁網を作成する方法についてではなく、正しく計算機を使用した話ではありません
s6hebern

回答:


3

これはファイル内のコードの問題だと思います(私にとってのパスはです/QGIS 2.18/apps/qgis/python/plugins/processing/modeler/CalculatorModelerAlgorithm.py)。アルゴリズムを実行すると、コードはすべての使用可能な変数(つまり10)を反復処理し、それらに対応する値を割り当てます。

ただし、これはすべての変数が式に記述されている場合にのみ機能するようです。そうでない場合、式に含まれる変数のみにパラメーター(NUMBERX)が与えられます。すなわちあなたのログから:

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

簡単な解決策は、数式を記述して、使用しないすべての変数にを乗算することで含めること0です。


  • だからあなたの最初の計算機のために、交換してみてください:

    (e - d) / b
    

    と:

    (e - d) / b + (a+c+f+g)*0
    
  • そして、あなたの2番目の計算機のために、取り替えてみてください:

    (g - f) / a
    

    と:

    (g - f) / a + (b+c+d+e)*0
    

1
本当です。私はそれがいることを複雑になる理由は考えていませんが
s6hebern

@ s6hebern-コードを少し編集すれば、この問題は解決できると思いますが、回避策が機能してうれしいです:)
Joseph

これに間接的に関連する別の問題が発生しています... Create GridアルゴリズムにはCRSが必要ですが、それをパラメーターとして使用することはできません。助言がありますか?または新しい質問を投稿しますか?
s6hebern 2018

@ s6hebern-新しい質問として投稿してください(ここに投稿したのと同じレベルの詳細を使用してください)。
ジョセフ

1

このプラグイン「インデックス付きベクトルグリッドの作成」が役立つと思います。


私はその機能を知っていますが、質問とその下のコメントで述べたように、特にグリッドを作成することではなく、計算機での正しい表記についてです。
s6hebern 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.