Menggunakan Kalkulator di QGIS Graphical Modeler

8

Karena kalkulator pemodel grafis QGIS tidak menghasilkan jawaban, saya akan mencoba keberuntungan saya di sini lagi. Saya membuat model sederhana dalam QGIS 2.18.16 yang akan menghitung jarak berdasarkan tingkat raster dan sejumlah divisi yang diberikan, yang ditetapkan oleh pengguna sebagai parameter. Pada dasarnya itu akan menyerupai alat Fishnet dari ArcGIS. Modelnya terlihat seperti ini:

Deskripsi dalam kalkulator memberi tahu saya hal berikut:

Menurut ini, saya mengatur formula saya seperti:

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

Log dari model dijalankan kemudian memberi saya pesan kesalahan berikut:

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

Sayangnya, Dokumentasi ini kosong. Adakah yang bisa memberi tahu saya cara mengatur variabel dengan benar?

s6hebern
sumber
Sebenarnya, pertanyaannya BUKAN tentang cara membuat jala ikan, melainkan tentang menggunakan kalkulator dengan benar
s6hebern

Jawaban:

3

Saya pikir ini adalah masalah dengan kode dalam file (bagi saya jalannya adalah:) /QGIS 2.18/apps/qgis/python/plugins/processing/modeler/CalculatorModelerAlgorithm.py. Tampaknya ketika menjalankan algoritme, kode ini mengulangi melalui semua variabel yang tersedia (yaitu 10) dan memberikan nilai yang sesuai.

Tapi ini hanya berfungsi jika semua variabel dinyatakan dalam rumus Anda, jika tidak hanya variabel yang termasuk dalam rumus Anda akan diberikan parameter ( NUMBERX). Yaitu dari log Anda:

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

Obat cepat adalah menulis rumus Anda dan memasukkan semua variabel yang tidak digunakan dengan mengalikannya dengan 0.


  • Jadi untuk kalkulator pertama Anda, coba ganti:

    (e - d) / b
    

    dengan:

    (e - d) / b + (a+c+f+g)*0
    
  • Dan untuk kalkulator kedua Anda, coba ganti:

    (g - f) / a
    

    dengan:

    (g - f) / a + (b+c+d+e)*0
    
Yusuf
sumber
1
Benar itu saja. Meskipun saya tidak tahu mengapa itu rumit
s6hebern
@ s6hebern - Saya pikir dengan sedikit mengedit kode, masalah ini bisa diselesaikan tetapi senang solusinya bekerja :)
Joseph
Sekarang saya mengalami masalah lain yang tidak langsung terkait dengan ini ... algoritma Buat Grid membutuhkan CRS, tapi saya tidak bisa menggunakannya sebagai parameter. Ada saran? Atau memposting pertanyaan baru?
s6hebern
@ s6hebern - Posting yang lebih baik sebagai pertanyaan baru (dengan tingkat detail yang serupa dengan yang Anda posting di sini) dan semoga orang lain dapat memberi saran karena memang terdengar aneh.
Joseph
1

Saya pikir plugin ini "Buat Kotak Vector Indexed" dapat membantu Anda.

Nagib
sumber
Saya tahu fungsi itu, tetapi seperti yang dinyatakan dalam pertanyaan dan komentar di bawahnya, ini bukan tentang membuat kotak pada khususnya, tetapi tentang notasi yang benar dalam kalkulator.
s6hebern