Menulis skrip Python mandiri menggunakan PyQGIS?

17

Saya telah belajar cara menggunakan Konsol Python di QGIS menggunakan referensi dari qgisworkshop.org . Saya terbiasa menulis skrip mandiri di ArcGIS dan ingin belajar bagaimana melakukan hal yang sama dengan QGIS.

Misalnya, dalam ArcGIS 10 skrip python mandiri sederhana adalah:

import arcpy 

setFolder = ''

doProcess

Saya mengerti bagaimana melakukan ini menggunakan konsol python di QGIS, tetapi saya belum berhasil menemukan contoh untuk melakukan langkah-langkah yang sama menggunakan skrip mandiri. Saya curiga saya kurang beruntung dengan pencarian saya. Adakah contoh yang jelas tentang bagaimana melakukan ini secara online?

djq
sumber

Jawaban:

15

Saya belum menulis skrip yang berdiri sendiri berdasarkan QGIS API, tetapi buku masak PyQGIS menggunakan inisialisasi berikut:

Pertama-tama Anda harus mengimpor modul qgis, mengatur jalur QGIS tempat mencari sumber daya - basis data proyeksi, penyedia dll. Ketika Anda menetapkan jalur awalan dengan argumen kedua ditetapkan sebagai Benar, QGIS akan menginisialisasi semua jalur dengan dir standar di bawah direktori awalan . Fungsi memanggil initQgis () penting untuk membiarkan QGIS mencari penyedia yang tersedia.

from qgis.core import *

# supply path to where is your qgis installed
QgsApplication.setPrefixPath("/path/to/qgis/installation", True)

# load providers
QgsApplication.initQgis()

Sekarang Anda dapat bekerja dengan QGIS API - memuat layer dan melakukan pemrosesan atau menjalankan GUI dengan kanvas peta. Kemungkinannya tidak terbatas :-)

Ketika Anda selesai menggunakan perpustakaan QGIS, panggil exitQgis () untuk memastikan bahwa semuanya telah dibersihkan (mis. Hapus pendaftaran layer peta dan hapus layer):

QgsApplication.exitQgis()
underdark
sumber
1
Terima kasih @ underdark - itu sangat membantu. Saya merasa tidak mudah untuk mulai from qgis.core import *bekerja di OSX, jadi saya berencana untuk mengajukan pertanyaan baru tentang topik ini.
djq
Maaf memberi tag pertanyaan lain di sini, tetapi adakah dokumentasi online dari modul qgis? Yang bisa saya temukan hanyalah referensi yang mirip dengan c ++ docs, tetapi tidak ada tautan sebenarnya ke python docs.
DJJ
Spesifikasi python ada di dalam pyQGIS Cookbook. Kalau tidak, Anda dapat mengandalkan dokumen C ++ API yang normal - tidak hanya serupa, tetapi juga sama.
underdark
Untuk pengguna ubuntu lihat: gis.stackexchange.com/questions/52919/… untuk jalur pemasangan. (ini "/ usr")
Tuan Ungu