อัปเดตข้อมูลตารางง่ายๆด้วย Python Console ใน QGIS
ในโปรแกรม 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()
เป็นอันเสร็จสิ้น นอกจากนี้สามารถนำไปปรับใช้กับพวกสูตรคำนวณต่างๆได้เช่น นำค่าจากเลเยอร์นึง ไปคำนวณแล้วนำไปอัปเดตในอีกเลเยอร์เป็นต้น