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?

Bárbara Duarte
sumber

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

Jakob
sumber
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