เลือก Attribute ที่เหมือนกัน ใน QGIS

เลือก Attribute ที่เหมือนกันใน QGIS แบบเร็ว ๆ ทำอย่างไร?

เมื่อไม่กี่วันก่อน ได้พูดคุยกับผู้ร่วมงาน ซึ่งกำลังทำงานใน QGIS แล้วต้องค้นหาว่า ข้อมูลที่ดินซึ่งต้องการนั้นมีแปลงอื่นที่มีข้อมูลแบบเดียวกัน อยู่ตรงไหนบ้าง สมมติ จะดูว่าแปลงที่ดินนี้ มีข้อมูล St_Value เท่าไหร่ แล้วแปลงอื่น ๆ ที่มีข้อมูล ST_Value นี้เท่ากัน อยู่ตรงไหนบ้าง

ซึ่งวิธีที่ผู้ร่วมงานท่านนี้ใช้คือ คลิกเลือกแปลงที่ต้องการ เปิด Attribute Table มาดูว่า ST_Value เป็นเท่าไหร่ แล้วใช้ Query หา แปลงที่ดินที่มี ST_Value เท่ากัน

เลือก Attribute ที่เหมือนกัน

ตอนแรก ก็สอบถามไปว่า ทำไมไม่กำหนด Symbology แยกตามค่าของ ST_Value ที่ต้องการเลยล่ะ จะได้เห็นชัด ๆ โดยไม่ต้องคลิกเลือกอะไรด้วยซ้ำ ก็ได้รับคำตอบว่าเนื่องจากข้อมูลในฟิลด์ ST_Value นี้มีความหลากหลายมาก ถ้ากำหนดสีตามค่า น่าจะมีความลายพร้อยลานตาไปหมด และอาจจะเห็นสีที่ใกล้เคียงกันเป็นสีเดียวกันหรือเปล่า?

ก็โอเค พอจะเข้าใจอยู่ว่าทำไมถึงต้องมาคลิกเลือกทำ Query กันทีละครั้ง

คือจริง ๆ วิธีนี้มันก็ง่ายอยู่แล้วแหละ แต่จะหาวิธีที่ง่ายกว่านี้อีก มีหรือไม่? ก็ค้นไปจนเจอ https://docs.qgis.org/3.16/en/docs/training_manual/create_vector_data/actions.html (ตอนที่เขียนอยู่นี้ ใช้ QGIS 3.16.6 นะจ๊ะ) วิธีนี้เป็นการสร้าง Actions หรือ “ชุดกลุ่มคำสั่ง” (อันนี้เรียกเอง ไม่รู้ภาษาไทยใช้อะไร) คืออะไรที่เราทำซ้ำ ๆ แบบเดิม เราก็สร้าง Action มาใช้ แบบเดียวกับ macro ใน access นั่นแล สาธุชน

วิดีโอแสดงตัวอย่าง

สร้าง Actions เพื่อเลือก Attribute ที่เหมือนกัน

ตัวอย่างนี้ จะทำงานกับ layer ชื่อ parcel_10050000_47

  1. คลิกขวา Properties ตรงชื่อ Layer
  2. ดูตรงฝั่งซ้ายมือ เลือกหัวข้อ Actios
  3. คลิกเครื่องหมาย + (เพิ่ม Action ใหม่ – Add a New Action)
  4. เลือก Type เป็น Python ใส่ คำอธิบาย (Description) และชื่อเรียก (Shot Name) อย่างที่ต้องการ (แนะนำอย่างจริงใจอย่าใส่ 1234 หรืออะไรแบบนั้น ควรเขียนเพื่อให้รู้ว่า Action นี้ใช้ทำอะไร)
เลือก Attribute ที่เหมือนกัน

ตรงช่อง Action Text ใส่โค้ด

layer = QgsProject.instance().mapLayer('[% @layer_id %]')
layer.selectByExpression('"ST_VALUE"=\'[%ST_VALUE%]\'')

หมายเหตุ ใส่ชื่อฟิลด์ให้ถูก (ในที่นี้คือ ST_VALUE) ถ้าไม่แน่ใจ ดูตัวเลือกด้านล่าง จะมีช่องให้กดสามเหลี่ยมเพื่อเลือกชื่อฟิลด์ แล้วกด insert เพื่อแทรกได้

อ่านเพิ่มเติมเกี่ยวกับการใช้คำสั่ง python ได้ที่ เอกสารของ QGIS

คลิก OK

ใช้งาน

เวลาใช้งาน เจ้า Action ที่เราสร้างมานี้ จะไปอยู่ในเมนูด้านบน รูปหน้าตาจะเป็นฟันเฟือง (ถ้าไม่พบ ลองคลิกขวาที่เมนูบาร์ด้านบน เรียก Attribute Toolbar ขึ้นมา)

ลองคลิกปุ่มที่เราสร้างขึ้นมา อย่างในนี้เราเรียก Select_Attribute ที่สร้างไว้ แล้วมาคลิกเลือกแปลงที่ต้องการ หลังจากนั้น แปลงใดก็ตามที่มีข้อมูลในฟิลด์ ST_VALUE ตรงกับรูปแปลงที่เราคลิกก็จะโดนเลือกมาพร้อมกัน

อันนี้ก็เป็นวิธีหนึ่งที่หวังว่าจะเป็น Trick ในการทำงาน

ความคิดเห็นของคุณ :)

%d bloggers like this: