Qgis Processing in Python Standalone Script

Satap_srm
MAPEDIA BLOG
Published in
Dec 26, 2022

อย่างที่ทุกคนทราบกันดีอยู่แล้วว่า โปรแกรม 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

ข้อมูลเพิ่มเติม

--

--