Impor modul GRASS dan SAGA ke skrip python


13

Saya baru dalam hal ini. Saya "membangun" plugin python untuk qgis dan saya ingin mengimpor modul dari GRASS dan SAGA tetapi saya tidak mengerti bagaimana cara melakukannya. Plugin yang ingin saya impor adalah Kriging interpolasi dari SAGA atau v.surf.idw dari GRASS atau plugin interpolasi dari Raster qgis. Saya ingin metode interpolasi untuk mengonversi titik dalam kotak.

Bisakah kamu membantuku?


Saya punya keraguan lain.

Saya menjalankan baris ini dalam kode saya:

vectorlayer_vector =  ftools_utils.getVectorLayerByName(inputLayer)
Elevation = self.lineAttrib.currentText()
cellSize = int(self.linePix.value())
outPath = self.inputLayerCombo3.text()
output = ftools_utils.getRasterLayerByName(outPath) 

Processing.runAlgorithm("saga:shapestogrid", vectorlayer_vector, Elevation, 0, 0, 4, None, cellSize, output)

Ketika saya berlari, saya mendapatkan gambar yang tiff tetapi tidak ada. File .aux tidak dibuat dan ketika saya mencoba untuk membuka gambar tiff yang saya buat muncul pesan ini:

c: ... teste3.tif bukan sumber data raster yang didukung

Jadi, saya kira outputnya salah. Apa yang harus saya lakukan untuk mendapatkan hasil yang benar? Apa yang saya lewatkan?

Jawaban:


15

Kerangka kerja pemrosesan dalam QGIS dapat memanggil fungsi ini langsung dari Python.

Dari konsol Python QGIS:

>>>import processing
>>>outputs_0=Processing.runalg("saga:ordinarykriging", vectorlayer_pointtable, z, True, 0, 0, True, 100, True, 0.0, 10.0, 100.0, 1.0, 0.1, 1, 0.5, 1000.0, 4, 20, 1.0, True, None, None, None)
>>>outputs_1=Processing.runalg("grass:r.surf.idw", outputs_0['GRID'], 12, True, None, 0.0, None)

Jika Anda membuatnya sebagai model dalam Kerangka Pemrosesan, Anda dapat menyimpan model itu sebagai skrip Python. Ini memberi Anda semacam GUI builder untuk fungsi pemrosesan runalg.

Model pengolahan

masukkan deskripsi gambar di sini


Jawaban Anda sangat membantu. Terima kasih. Jadi, jika saya membuat skrip Python dari model sextante, saya dapat memasukkan kode itu dalam plugin saya?
Bárbara Duarte

Ya, kode juga berjalan di plugin.
Jakob

Ketika saya menjalankan kode, itu memberi saya pesan ini "AttributeError: class Processing tidak memiliki atribut 'runalg'". Mengapa? Saya mengimpor pemrosesan.
Bárbara Duarte

Saya tahu jawaban untuk pertanyaan saya. Dalam versi QGIS saya, saya memiliki fungsi runAlgorithm alih-alih runalg. Sekarang ini berfungsi dengan baik. Terima kasih.
Bárbara Duarte
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.