Saya mencoba menulis skrip pemrosesan menggunakan r.neighbors
algoritma rumput untuk raster. Saat Anda menggunakan Gui untuk algoritme ini, Anda bisa membiarkan bidang luas lapisan GRASS untuk menggunakan batas minimal. Sebaliknya, ketika digunakan di konsol python, saya tidak dapat menemukan cara memasukkan nilai "default" semacam ini.
Saya melihat di https://docs.qgis.org/2.2/en/docs/user_manual/processing/console.html bahwa tampaknya wajib untuk memasukkan empat koordinat untuk parameter sejauh. Saya mencoba menggunakan iface.mapCanvas().extent()
tetapi objek yang dikembalikan tidak diterima sebagai parameter dan saya tidak dapat menemukan cara mendapatkan koordinatnya ..
Apakah ada cara untuk mendapatkan xmin, ymin, xmax, ymax
lapisan dalam PyQGIS untuk memasukkannya ke dalam algoritma? Apakah saya salah melakukannya?
extent
hilang sehingga tidak berfungsi .. .Jawaban:
Jawabannya hampir sepenuhnya terkandung dalam posting yang baru-baru ini saya tulis.
Tingkat dikembalikan sebagai objek QgsRectangle () dengan kode berikut:
Untuk mendapatkan koordinat simpul untuk lapisan saat ini, Anda dapat menjalankan kode ini:
Akhirnya, Anda dapat menjalankan kode berikut untuk menggunakan
r.neighbors
modul dari Konsol Python:sumber
Anda berada di jalur yang benar, Anda hanya perlu melangkah lebih jauh. Lihat dokumentasi QGIS untuk QgsRectangle
Pada dasarnya, Anda melakukannya:
dapatkan Layer saat ini
dapatkan sejauh yang merupakan objek QgsRectangle
dan di sana ekstrak Nilai dengan:
sumber