Qgis Processing in Python Standalone Script
อย่างที่ทุกคนทราบกันดีอยู่แล้วว่า โปรแกรม Qgis นั้นใช้ Python เป็นการทำงานเบื้องหลัง ทั้งการประมวลผลและลักษณะหน้าตาของโปรแกรม ดังนั้นเราจึงสามารถเขียนโปรแกรมด้วยภาษา python เพื่อเรียกใช้งานเครื่องมือการประมวลผลของ Qgis
ขั้นตอนการติดตั้งและเรียกใช้งาน
pip install qgis
from qgis.core import QgsApplication
from qgis.gui import QgsMapCanvas
เมื่อติดตั้งไลบรารี่เรียบร้อยขั้นตอนต่อไปจะเป็นการเริ่มการทำงานของโปรแกรมและจบการทำงานหลังทำการประมวลผลเสร็จ
app = QgsApplication([], False)
app.initQgis()
#เขียนโค้ดคำสั่งต่างๆ
app.exitQgis()
app.exit()
สำหรับการใช้เครื่องมือการประมวลนั้นต้องทำการเรียกใช้ plugins processing ของ qgis ก่อนซึ่งทำได้ด้วยการระบุ path ที่ทำการติดตั้งปลั๊กอินไว้
app = QgsApplication([], False)
app.initQgis()
#เขียนโค้ดคำสั่งต่างๆ
sys.path.append('/usr/share/qgis/python/plugins') # Folder where Processing is located
import processing
from processing.core.Processing import Processing
proc = Processing()
proc.initialize()
app.exitQgis()
app.exit()
หลังนี้เราก็จะสามารถเรียกใช้งานเครื่องมือประมวลผลได้แล้ว และสามารถเรียกดูว่ามีคำสั่งอะไรบ้างให้ใช้งานได้ด้วยคำสั่ง
for alg in QgsApplication.processingRegistry().algorithms():
print(alg.id(), "->", alg.displayName())
คำสั่งสำหรับดูว่าแต่ละเครื่องมือประมวลผลต้องการพารามิเตอร์อะไรบ้าง
processing.algorithmHelp('algorithm ID')
#ex
processing.algorithmHelp('qgis:idwinterpolation')
บางครั้งเมื่อเรียกใช้งาน Qgis ในการทำงานเบื้องหลังอาจติดปัญหา อาจจะเป็นต้องตั้งค่าเพิ่มเติมด้วย
os.environ["QT_QPA_PLATFORM"] = "offscreen"
#อย่าลืม import os
ข้อมูลเพิ่มเติม