Saya ingin memanggil fungsi plugin interpolasi QGIS (metode TIN) (Raster-> Interpolate) dari konsol python.
Saya tidak dapat menemukan fungsi yang sesuai dalam QGIS API atau dalam daftar algoritma pemrosesan. Saya menemukan algoritma Trigaulasi SAGA, yang berfungsi dengan baik tetapi 5-10 x lebih lambat dan kecepatan penting dalam kasus saya.
Adakah cara untuk menjalankannya?
qgis
python
qgis-plugins
pyqgis
Vincent D.
sumber
sumber
from rasterinterpolation import rasterinterpolation
tetapi tidak yakin modul mana yang harus dipanggil (atau bagaimana cara memanggil).Jawaban:
Saya dapat memberikan solusi lengkap dalam pertanyaan berikut:
Bagaimana cara menghitung raster interpolasi dari konsol python di QGIS?
Saya akan memposting ulang jawabannya di sini juga, karena besarnya minat yang tampaknya menarik:
Menjawab:
Dokumentasi di pyqgis sangat tidak cukup jelas, tapi saya tahu bagaimana benar memanggil kelas interpolasi terkait (
QgsInterpolator
,QgsTINInterpolator
,QgsIDWInterpolator
,QgsGridFileWriter
) dari python. Saya akan menjelaskan setiap langkah naskah dengan sangat rinci:Langkah 1:
Impor inti dan modul analisis dan dapatkan layer vektor yang diinginkan untuk interpolasi dengan memilihnya dengan mouseclick pada tab layer.
Langkah 2:
Siapkan kelas interpolasi dengan Parameter yang diperlukan. Parameter tepat untuk inisialisasi struct LayerData dapat ditemukan di dokumen QGIS API (searchterm: QgsInterpolator).
Harap perhatikan bahwa saya tidak menggunakan Koordinat z, saya mendapatkan bidang pertama yang tersedia (indeks = 0) sebagai atribut interpolasi, dan menggunakan POIN sebagai tipe input.
Langkah 3:
Pilih mesin interpolasi Anda. Di sini Anda dapat memilih antara metode TIN-Interpolasi (
QgsTINInterpolator
) dan IDW-Interpolasi (QgsIDWInterpolator
). Saya mengambilQgsTINInterpolator
kode saya.Ingatlah bahwa Anda harus memberikan daftar python
layer_data
ke mesin interpolasi! Ini juga memungkinkan Anda untuk menambahkan beberapa skenario layer_data.Langkah 4:
Setup parameter yang diperlukan untuk ekspor interpolasi-output (lihat dokumentasi
QgsGridFileWriter
). Itu termasuk informasi yang mirip dengan gui interpolasi (filepath, luas, resolusi, jumlah kolom dan baris).Waspadai ekstensi file output-raster Anda karena
QgsGridFileWriter
hanya menulis ASCII-grids (.asc
). Data ditulis ke disk dengan memanggilwriteFile()
metode. Setelah ekspor Anda dapat menambahkan file grid sebagai raster ke kanvas.Skrip lengkap untuk referensi:
Perlu diingat bahwa QGIS-API saat ini ditulis ulang ke versi 3.0 dan kelas interpolasi yang digunakan dipindahkan dari
qgis.analysis
keqgis.core
! Ini akan memiliki dampak besar pada fungsionalitas skrip ini sehingga harus ditulis ulang untuk versi 3.0!sumber
Anda dapat melakukan ini jika plugin Raster Interpolasi diinstal menggunakan Plugin Manager.
Catatan: saya tidak benar-benar tahu apa yang dilakukan kode di atas selain fakta bahwa ia mencetak nilai. Tapi itu mungkin akan membantu Anda untuk memahami penggunaannya.
sumber