สอนใช้โปรแกรม QGIS แสดงข้อมูลพื้นที่ป่าในไทยเบื้องต้น 🌳

Nuttaset kuapanich
7 min readMay 6, 2024

--

หากยังไม่ได้ติดตั้งโปรแกม QGIS ลงเครื่อง สามารถดูวิธีติดตั้งได้ใน ลิงค์นี้ ครับ

ขั้นตอนการทำมีดังต่อไปนี้ครับ

  1. โหลดข้อมูลที่เป็นไฟล์ csv และเตรียมข้อมูล
  2. โหลด shapefile แผนที่ประเทศไทย
  3. ใช้ QGIS นำเสนอข้อมูลออกมาในรูปแบบแผนที่

โดยแผนที่ที่จะสร้างมี 2 ภาพ คือแผนที่แสดงพื้นที่ป่าแต่ละจังหวัดของปี 2566 และแผนที่แสดงปริมาณป่าไม้ที่เปลี่ยนแปลงไป (คิดเป็นเปอร์เซ็นต์) ของแต่ละจังหวัดเมื่อเทียบระหว่างปี 2556 กับ 2566 (11 ปี)

1. โหลดข้อมูลที่เป็นไฟล์ csv และเตรียมข้อมูล

กรมป่าไม้

ข้อมูลที่ผมใช้เป็นข้อมูลจากกรมป่าไม้ เข้าได้จาก ลิงค์นี้ ครับ โดยโหลดข้อมูลพื้นที่ป่า 11 ปี จาก “ข้อมูลสภาพพื้นที่ป่าปี 2556–2566” จะได้ไฟล์ชื่อว่า “areaforest2556–2566.xlsx”

หน้าเว็บของกรมป่าไม้
ข้อมูลในไฟล์ “areaforest2556–2566.xlsx”

ตรวจเช็คความครบถ้วนของข้อมูล เนื่องจากเราจะใช้ข้อมูลของปี 2556 กับ 2566 ดังนั้นเช็คว่า มีข้อมูลของ ทั้ง 2 ปีนี้ครบถ้วนหรือไม่

พบว่าข้อมูลป่าของสิงห์บุรีในปี 2556 ขาดหายไป ดังนั้นใช้ข้อมูลที่ใกล้เคียงกับ คือของปี 2557 มาแทนที่

นำข้อมูลของปี 2557 มาแทนที่ข้อมูลปี 2556 ที่ขาดไปของจังหวัดสิงห์บุรี

ลบแถว และคอลลัมน์ที่ไม่ใช้ออก ได้แก่ข้อมูลปริมาณป่ารายภาค (ภาคเหนือ, ภาคกลาง, …) และปริมาณป่าของปี 2557–2565

ตารางหลังลบข้อมูลบางส่วนออก

คำนวณปริมาณเปอร์เซ็นต์ที่เปลี่ยนแปลงไปของพื้นที่ป่าระหว่างปี 2556 กับ 2566 โดยสร้างคอลลัมใหม่ชื่อว่า “change” เพื่อคำนวณส่วนต่างระหว่างปี 2565 กับปี 2556 มีขั้นตอนตามภาพด้านล่าง

ต่อมาจะคำนวณว่าส่วนต่างนี้คิดเป็นกี่เปอร์เซ็นต์ของปี 2556 สร้างคอลลัมน์ชื่อ “change_%” ขึ้นมา และทำตามขั้นตอนในภาพด้านล่าง

กดที่ “แทรก” แล้วเลือก “PivotTable” เพื่อเตรียมข้อมูลสำหรับบันทึกเป็นไฟล์ csv (ถ้าบันทึกเป็นไฟล์ csv โดยตรง จะมีบางค่าที่ QGIS ไม่สามารถอ่านได้ แล้วจะขึ้นว่า NULL)

จะมีหน้าต่างใหม่โผล่ขึ้นมา เลือกข้อมูลทั้งหมด แล้วกด “ตกลง”

จะได้ sheet ใหม่ขึ้นมา ที่ด้านขวา ที่ช่อง “แถว” เลือก “จังหวัด” และช่อง “ค่า” เลือก “2556” กับ “change_%” ซึ่งเป็นค่าที่เราจะใช้แสดงบนแผนที่

ที่ตารางจะได้ออกมา 3 คอลลัมน์ สามารถเปลี่ยนชื่อคอลลัมน์ “ป้ายชื่อแถว” เป็น “province” และลบ 2 แถวด้านบนออก จะได้ออกมาตามภาพด้านล่าง

หลังจากนั้นบันทึกไฟล์โดยเลือกบันทึกเป็นไฟล์ csv เพื่อนำไปใช้กับโปรแกรม QGIS

เนื่องจากใน excel มีอยู่ 2 sheet แต่ csv มีได้แค่หน้าเดียว ดังนั้นโปรแกรมจึงแจ้งเตือนว่าจะบันทึกเฉพาะ sheet ปัจจุบันที่เปิดอยู่ กด “ตกลง”

2. โหลด shapefile แผนที่ประเทศไทย

เข้าไปใน ลิงค์นี้ เพื่อโหลด shapefile แผนที่ประเทศไทย โดยเลือกโหลดไฟล์ที่ชื่อว่า “tha_adm_rtsd_itos_20210121_SHP.zip

หลังจากนั้นคลิกขวาที่ไฟล์ แล้วทำการแตกไฟล์ โดยผมเลือกให้อยู่ในโฟลเดอร์ “tha_adm_rtsd_itos_20210121_shp

เข้าไปที่เว็บ mapshaper เพื่อทำการลดขนาด shapefile ที่หน้าเว็บลากทุกไฟล์ที่ลงท้ายด้วยเลข 1 ทั้งหมด (เส้นแผนที่ระดับจังหวัด) เข้าไปในช่อง “Import files”

จะได้ภาพแผนที่ประเทศไทย ที่มีเส้นแบ่งระดับจังหวัดออกมา

แผนที่ประเทศไทยที่มีเส้นแบ่งระดับสังหวัด

สามารถลดขนาดลอง shapefile ได้โดยลดความละเอียดของจุดลง กดที่ “Simplify” แล้วกด “Apply”

เลือกปรับลดระดับความละเอียดให้ได้ภาพที่พอใจ (ผมเลือกปรับลดจนเหลือ 3.0%)

กด “Export” เลือก Shapefile แล้วกด “Export”

จะได้ zipfile ชื่อ “tha_admbnda_adm1_rtsd_20220121.zip” ออกมา เมื่อแตกไฟล์จะได้ shapefile ที่มีขนาดลดลงจากอันเดิมมมาก

เปรียบเทียบขนาด shapefile อันเก่า กับอันใหม่

3. ใช้ QGIS นำเสนอข้อมูลออกมาในรูปแบบแผนที่

หากยังไม่ได้ติดตั้ง QGIS สามารถติดตั้งได้โดยดูวิธี ในนี้

เปิด QGIS ขึ้นมา (ผมใช้เวอร์ชั่น 3.36.2) ใส่แผนที่ประเทศไทยเข้าไป โดยเลือกที่ Layer -> Add Layer -> Add Vector Layer

จะขึ้นหน้าต่างสำหรับเลือกไฟล์ขึ้นมา กดไปที่ปุ่ม “…” แล้วเลือก shapefile ที่เพิ่งไปลดขนาดมา

กดที่ปุ่ม “Add” จะได้แผนที่ประเทศไทยออกมา

layer แผนที่ประเทศไทย

สามารถดูข้อมูลที่อยู่ใน layer แผนที่ประเทศไทยได้โดยคลิกขวาที่ layer นั้น (ในที่นี้ชื่อว่า “tha_admbnda_adm1_rtsd_20220121”) แล้วกดที่ “Open Attribute Table”

จะมีหน้าต่างใหม่ออกมา ข้อมูลในตารางคือข้อมูลที่อยู่ใน layer แผนที่ประเทศไทย ข้อมูลที่สำคัญคือข้อมูลที่คอลลัมน์ “ADM1_TH” ซึ่งบันทึกชื่อจังหวัดภาษาไทย เพราะว่าชื่อจังหวัดในนี้ต้องตรงกับชื่อจังหวัดที่อยู่ในไฟล์ csv ที่บันทึกข้อมูลปริมาณป่า ไม่งั้นจะไม่สามารถ join ข้อมูลร่วมกันได้

ใส่ข้อมูลพื้นที่ป่าเข้าไป โดยเลือกที่ Layer -> Add Layer -> Add Delimited Text Layer

จะขึ้นหน้าต่างสำหรับเลือกไฟล์ขึ้นมา กดไปที่ปุ่ม “…” แล้วเลือกไฟล์ csv ที่เพิ่งสร้าง

เลือกเป็น “No geometry” แก้ไขชนิดข้อมูลที่เป็นตัวเลขในตารางให้เป็น “Decimal” ทั้งหมด ไม่งั้นจะไม่สามารถนำไปแสดงระดับสีในแผนที่ได้ แล้วกด “Add”

จะได้ layer ชื่อว่า “areaforest2556–2566” โผ่นขึ้นมา เมื่อคลิกขวา แล้ว กด “Open Attribute Table” ก็ได้เห็นว่ามีข้อมูลเหมือนกับในไฟล์ csv

ข้อมูลใน layer areaforest2556–2566

แผนที่แรกที่จะสร้างคือแผนที่แสดงพื้นที่ป่าแต่ละจังหวัดของปี 2566 เราต้องในข้อมูลใน layer ที่แสดงข้อมูลป่าไป join กับแผนที่ประเทศไทย คลิกขวาที่ layer แผนที่ประเทศไทย “Properties”

กดที่ “Joins” แล้วคลิกที่เครื่องหมาย “+”

Join layer เลือกเป็น layer ข้อมูลป่า (ในที่นี้คือ “areaforest2556–2566”) Join field กับ Target field คือคอลลัมน์ที่ใช้เชื่อมระหว่าง 2 layer ซึ่งในที่นี้คือชื่อจังหวัด ที่ Join field เลือก “province” ซึ่งเป็นของ layer พื้นที่ป่า และ Target field เลือก “ADM1_TH” ซึ่งเป็นของ layer แผนที่ประเทศไทย หลังจากนั้นกดยืนยัน

ไปที่ “Symbology” กดแถบด้านบน แล้วเลือก “Graduated” เพื่อแสดงสีแบบไล่ระดับบนแผนที่

ที่ Value เลือก “areaforest2556–2566_ผลรวม ของ 2566” ที่ Color ramp เลือก “RdYlGn”

กด “Classify” จะได้ค่าแต่ละช่วงสีที่ “Values” และ ข้อความที่แสดงบนแผนที่ “Legend”

เพื่อให้อ่านง่ายมากขึ้น แก้ไขค่าของช่วงสี และข้อความที่แสดงบนแผนที่ให้ปัดให้เป็นหลักหมื่น ได้ตามภาพด้านล่าง หลังจากนั้นกดยืนยัน

จะได้แผนที่ประเทศไทยที่ไล่ระดับสีแต่ละจังหวัดตามพื้นที่ป่า

ถ้าต้องการเพิ่มชื่อแต่ละจังหวัดลงในแผนที่ด้วย ไปที่ “Labels” ที่แถบด้านบนเลือก “Single Labels”, Value เลือก “ADM1_TH” และแก้ไขขนาดตัวอักษรเป็น 7

หากต้องการให้ตัวอักษรมีออร่าออกมา กดที่ “Buffer” ติ๊กที่ “Draw text buffer” และกดยืนยัน

จะได้แผนที่ที่มีชื่อแต่ละจังหวัดออกมา

เปลี่ยนชื่อ layer แผนที่ประเทศไทยเป็น “forest_area” โดยคลิกขวาที่ layer “tha_admbnda_adm1_rtsd_20220121” แล้วเลือก “Rename Layer” และเพิ่ม layer แผนที่ประเทศไทยอันใหม่ เพื่อทำแผนที่แสดงปริมาณป่าไม้ที่เปลี่ยนแปลงไป (คิดเป็นเปอร์เซ็นต์) ได้ตามภาพด้านล่าง

layer แผนที่ประเทศไทยอันใหม่

ที่ layer แผนที่ประเทศใหม่ใช้วิธีเดียวกับด้านบน joint ข้อมูลกับ layer “areaforest2556–2566”

ที่ “Symbology” ตรง Value เลือก “areaforest2556–2566_ผลรวม ของ change_%” และแก้ไขช่วงค่าของแต่ละสี รวมถึงข้อความที่แสดงบนแผนที่เพื่อให้อ่านง่ายมากขึ้น

ใช้วิธีเดียวกับด้านบน ใส่ชื่อจังหวัดลงในแผนที่ จะได้ออกมาตามภาพด้านล่าง

กดที่ “Zoom Full” เพื่อให้แผนที่อยู่ตรงกลาง (ตอนใส่แผนที่ลงในรูป แผนที่จะได้อยู่ตรงกลางด้วย)

เตรียมทำแผนที่ให้พร้อมบันทึกรูปภาพ กดที่ “New Print Layout” ตั้งชื่อ print layout แล้วกดยืนยัน จะได้หน้าต่างใหม่ออกมา

หน้าต่าง print layout

ปรับขนาดกระดาษเป็นขนาด A3 โดยคลิกขวาที่หน้ากระดาษ แล้วเลือก “Page Properties”

ที่ Size เลือกเป็น “A3” แล้วกด “Zoom full” ออกมา

กด Add Item -> Add Map แล้วลากพื้นที่ครอบทั้งหน้ากระดาษ จะได้แผนที่ออกมาตามภาพด้านล่าง

แทรกข้อความอธิบายความหมายแต่ละสี ไปที่ Add Item -> Add Legend แล้วลากพื้นที่ที่ต้องการวางข้อความ

หลังจากนั้นจะได้คำอธิบายแต่ละสีของทั้ง 2 แผนที่ ตั้งค่าให้แสดงเฉพาะของแผนที่ปัจจุบันโดยกดที่ “Item Properties” แล้วติ๊กที่ “Only show items inside linked maps”

เนื่องจากชื่อหัวข้อคำอธิบายยังเป็นชื่อ layer แผนที่ประเทศไทย สามมารถกลับไปแก้ไขโดยการแก้ไขชื่อของ layer แผนที่ประเทศไทยที่หน้าต่างแก้ไขแผนที่ ข้อความในกระดาษนี้ก็จะอัปเดตอัตโนมัติ

เมื่อแก้ไขเสร็จแล้วบันทึกรูปภาพออกมา กดที่ “Export as image” ตั้งชื่อไฟล์ ก็จะได้รูปภาพออกมาตามภาพด้านล่าง

แผนที่แสดงปริมาณป่าไม้ที่เปลี่ยนแปลงไปของแต่ละจังหวัด เมื่อเทียบระหว่างปี 2556 กับ 2566

ทำวิธีคล้ายกับด้านบนกับแผนที่พื้นที่ป่า จะได้แผนที่ออกมาตามภาพได้ล่าง

แผนที่แสดงพื้นที่ป่าแต่ละจังหวัดของปี 2566

กรณีที่เราปิด QGIS แล้วเปิดขึ้นมาใหม่ สามารถเปิด print layout ที่เคยสร้างไว้โดยการเลือก Project -> Layouts ->layout ที่เคยสร้างไว้

เท่านี้เราก็มีแผนที่ประกอบเอาไว้ใส่ในงานวิจัยแล้วครับ😄

อ้างอิง

--

--

Nuttaset kuapanich

กำลังศึกษาระดับปริญญาตรี คณะปัญญาประดิษฐ์ มหาวิยาลัยซุนยัดเซ็น Email: kuapanich@mail2.sysu.edu.cn