•MAPEDIA•
MAPEDIA BLOG
Published in
3 min readJul 25, 2019

--

การ Reclassify ข้อมูล Raster และแปลงเป็น Polygon เพื่อคำนวณเนื้อที่ในโปรแกรม QGIS

ได้มีโอกาสเขียนบล็อกที่เกี่ยวกับการทำงานกับข้อมูล raster และการแปลงรูปแบบข้อมูลเชิงพื้นที่ในโปรแกรม QGIS ซึ่งเมื่อก่อนนั้น QGIS เวอร์ชั่นเก่าๆ ยังไม่ค่อยมีเครื่องมือการ reclassify ซึ่งจะต้องอาศัยเครื่องมือที่เป็นแพ็คเก็จติดมากับโปรแกรม เช่น GRASS, SAGA แต่ถ้าเราไม่ใช้เครื่องมือเหล่านี้ก็จะต้องใช้ Raster Calculator โดยปัจจุบัน QGIS เวอร์ชั่นใหม่ๆ ได้มีการเพิ่มเครื่องมือขึ้นมามากมายที่ให้เราได้ใช้งานมากขึ้น โดยวันนี้จะมาทดลองใช้ Reclassify กันดูครับ

1.ไปที่เมนู Toolbox > Raster Analysis > Reclassify by table

2.นำข้อมูลภาพที่ต้องการเข้าสูโปรแกรม QGIS ดังภาพด้านล่าง

3.เมื่อเปิดเครื่องมือ Reclassify by table ทำการกำหนดค่าในส่วนของการ Reclassification table ตามช่วงที่เราต้องการ

4.เลือกที่เก็บข้อมูลผลลัพธ์ที่ได้ แล้วคลิก Run

5.เมื่อได้ผลลัพธ์ข้อมูลแล้วก็ทำการคลิกขวา Properties > Symbology > Render type เลือกเป็นแบบ Paletted/Unique Value แล้วคลิกปุ่ม Classify

6.ผลลัพธ์ที่ได้

7.จากนั้นลองใช้เครื่องมือ Raster layer statistics เพื่อดูข้อมูลสถิติพื้นฐานของข้อมูล

8.ไปที่เมนู Raster > Conversion > Polygonize (Raster to Vector) เพื่อทำการแปลงเป็น Polygon

9.กำหนดค่าดังภาพ

10.ผลที่ได้จากการแปลงเป็น Polygon

11.ไปที่เมนู Vector > Geoprocessing Tools > Dissolve เพื่อรวบกลุ่มข้อมูลที่มีค่าเดียวกัน

12. กำหนดค่าดังภาพ

13.จากนั้นคำนวณเนื้อที่โดยการเปิดตารางของข้อมูลที่ผ่านการ Dissolve แล้วคลิกที่ Open Field Calculator แล้วทำการสร้าง Field ใหม่ขึ้นมา โดนตั้งชื่อว่า area กำหนดประเภทเป็น Decimal number(real) และกำหนดเป็น Length: 10, Precision: 3 ส่วนในช่อง Expression ให้เราระบุคำฟังก์ชั่น area($geometry) (ซึ่งจะมีลักษณะเหมือกับฟังก์ชั่น $area ไว้ผมจะมาเขียนความแตกต่างของ 2 ฟังก์ชั่นนี้อีกครั้งครับ)

14.ผลลัพธ์ที่ได้จากการคำนวณเนื้อที่

หมายเหตุ: นอกจากนี้ถ้าเราไม่อยากใช้หรือไม่มีเครื่องมือ Reclassify by table เราสามารถใช้เครื่อง Raster Calculator ได้นะครับ (ในกรณีที่เป็น QGIS เวอร์ชั่นเก่า)

("raster@1" < 0.4)* 1 + (("raster@1" >= 0.4) AND ("raster@1" < 0.6)) *2  + ("raster@1" >=0.6)* 3

--

--