อัปเดตข้อมูลตารางง่ายๆด้วย Python Console ใน QGIS

Satap_srm
MAPEDIA BLOG
Published in
May 10, 2023

ในโปรแกรม QGIS นั้น เราสามารถจัดการแก้ไขข้อมูลตารางได้อย่างง่ายดาย ด้วยเครื่องมือ Field Calculator แต่บางครั้ง เราต้องการวิธีจัดการที่ซับซ้อน หรือต้องการคำนวณด้วยสูตรที่ไม่มีใน QGIS ปัญหาเหล่านี้แก้ได้ด้วยพระเอกของเรา Python Console

ขั้นแรกเปิด QGIS และเปิด Python Console ขึ้นมา อย่าลืมเปิดเลเยอร์ที่เราต้องการใช้งานด้วย จากนั้นเริ่มเขียนกันได้เลย

#กำหนดเลเยอร์ที่เราต้องการเลือกใช้าน
layer = QgsProject.instance().mapLayersByName('Layer Name')[0]

ในตัวอย่างนี้จะยกตัวอย่าง การนำข้อมูลจาก เลเยอร์1 มาใส่ใน เลเยอร์2 โดยจะทำการเลือกเฉพาะแถวที่ต้องการอัปเดตด้วยการ select

ขั้นตอนการ select features

field_name = 'ชื่อคอลัมน์'
colume_name = 'ชื่อคอลัมน์ที่ต้องการจะอัปเดต'
new_value = 'ค่าที่ต้องการจะอัปเดต'
search_value = 'ประเภทหรือกลุ่มของข้อมูลที่ต้องการอัปเดต'

request = QgsFeatureRequest().setFilterExpression(f"{field_name} = '{search_value}'")
feature = next(layer.getFeatures(request))

ขั้นตอนอัปเดตฟีเจอร์ที่เลือก

#เริ่มการแก้ไข
layer.startEditing()

#กำหนดค่า
feature[colume_name] = new_value

#อัปเดตฟีเจอร์
layer.updateFeature(feature)

#บันทึกการอัปเดต
layer.commitChanges()

เป็นอันเสร็จสิ้น นอกจากนี้สามารถนำไปปรับใช้กับพวกสูตรคำนวณต่างๆได้เช่น นำค่าจากเลเยอร์นึง ไปคำนวณแล้วนำไปอัปเดตในอีกเลเยอร์เป็นต้น

--

--