การ Crop DEM ด้วย Global Mapper

  • เวลา download DEM ของ SRTM ขนาด 5 องศา x 5 องศา (ขนาด 1 องศาเท่ากับ 60 ลิปดา, 1 ลิปดาเท่ากับ 60 ฟิลิปดาและ 1 ฟิลิปดาประมาณ 30 เมตร) ดังนั้น 5 องศาประมาณ 5 x 60 x 60 x 30 ประมาณ 540,000 เมตร (540 กิโลเมตร) ดังนั้น 5 องศา x 5 องศา ประมาณเท่ากัน 540 กม. x 540 กม. อืม…. ขนาดก็ไม่เล็กนัก แต่ถ้าพื้นที่ใช้งานเล็กกว่า วิธีการที่ใช้ต้อง Crop DEM ให้มีขนาดที่พอเหมาะ แต่ DEM ของ SRTM นั้นขนาด 1 pixel ประมาณ 90 เมตร x 90 เมตร ไฟล์ขนาด 5 องศา x 5 องศา จึงไม่ใหญ่มากนัก
  • หรืออีกสถานการณ์หนึ่งถ้า DEM เช่นของประเทศไทยเรา เป็น DEM ของกรมแผนที่ทหารขนาด 1 pixel = 30 เมตร x 30 เมตร ซึ่งตามหลักการแล้วพื้นที่ขนาดเท่ากัน DEM ของ กรมแผนที่ฯ ควรจะมีขนาดมากกว่าของ SRTM ประมาณ 3 เท่า (ถ้าเป็นฟอร์แม็ตเดียวกัน) ไฟล์ที่ผมได้มาถูกแปลงเป็น GeoTiff เรียบร้อยมีขนาดประมาณ 3 GB

เปิดไฟล์ DEM ของประเทศไทยในรูปแบบ GeoTiff

DEM ของประเทศไทย
  • ใช้ Global Mapper เปิดไฟล์นี้ด้วยคลิกเมนเมนู File >Open Data File(s)… เลือกฟอร์แม็ตเป็น GeoTiff แล้วคลิกที่ไฟล์ ผมใช้เวลาเปิดไฟล์นี้ประมาณ 20 นาทีจะเห็นว่า Global Mapper ทำ render แต่ช่วงสีที่ผู้สร้าง DEM ทำมาให้สีบริเวณพื้นที่ที่มีค่าระดับอยู่ 2 ค่า คือใ้ห้เป็นค่าระดับ -32767 เมตร เป็นสีน้ำเงิน และพื้นที่ที่สีแดง ค่าระดับ 32767 เมตร ซึ่งเป็นค่าระดับที่ไม่จริงเพียงแต่ผู้สร้าง mark ไว้ให้พื้นที่ที่ไม่มีค่าระดับ ทำอย่างไรถึงจะ remove พื้นที่ตรงนี้ออกไปได้เลย เพื่อให้ไฟล์มีขนาดเล็กลง และกินเมโมรีน้อยลงเมื่อเปิดด้วยโปรแกรมใดๆ และพื้นทีดังกล่าวถ้าสามารถ remove ออกไปได้ขนาดประมาณ 50 % ทีเดียว
  • การ Remove บางส่วนของ DEM ใน Erdas Imagine มีอยู่ในโมดูล Create Surface เมื่อทำการอ่านไฟล์นี้เข้าไป โดยสามารถสร้างเงื่อนไขค่าระดับที่ invalid ได้ บังคับให้โปรแกรมอ่านเข้าไปเฉพาะค่าระดับประมาณ 0 – 3000 เมตร แต่โชคร้าย Erdas Imagine ก็ไม่รอด ผมเดาว่า Erdas Imagine คงใช้เมโมรีของระบบจนหมด (วิธีการที่คิดแต่ยังไม่ทำคือ แบ่งพื้นที่ออกเป็นส่วนๆ แล้ว crop เอาไปทีละส่วน แล้วนำเข้า Erdas Imainge แล้วลบจุด invalid range ทิ้งแล้วเซฟ สุดท้ายนำแต่ละส่วนหรือแต่ละไฟล์ มาอ่านด้วย Global Mapper ทำการรวม DEM อีกครั้งให้อยู่ในไฟล์เดียว ก็น่าจะลดขนาดไปได้เกินครึ่ง)
  • เมื่อการ Remove invalid ค่าระดับที่ไม่ต้องการ ไม่เป็นผล ก็ไม่เป็นไรเราจะ crop เฉพาะพื้นที่ที่จะนำไปใช้ ก็แล้วกัน

Crop DEM โดยกำหนด Area

  • การ Crop DEM ใน Global Mapper ทำได้โดยอาจจะลากเส้นพื้นที่ (Area) แล้วเอาพื้นที่นี้เป็นขอบเขตที่จะ crop DEM หรือถ้ามีพื้นที่ที่แน่นอนเช่นมีรูปแบบพื้นที่เป็นฟอร์แม็ต DWG, Shape file, DGN ก็สามารถเปิดเข้ามาได้ใน Global Mapper ผมมี shape file ของประเทศไทย แล้ว extract เอาออกมาเฉพาะพื้นที่ภาคอิสาณ ใช้ Global Mapper คลิกที่เมนเมนู File > Open Data File(s)…คลิกที่ไฟล์ shape จะเห็นดังรูปด้านล่าง เป็นสีดำหนาๆ ผมจะใช้เส้นนี้เป็นพื้นที่ในการ crop
พื้นที่ที่จะ crop DEM
  • ทำการเลือก พื้นที่ที่จะ crop ด้วยการ activate ทำดังรูปด้านล่าง ด้วยการใช้ tool “Feature info tool” (รูปตัว i และมีลูกศรเล็กๆ) มาคลิกที่ขอบเขตพื้นที่ จะเห็น dialog โผล่ขึ้นมา เราไม่ได้ใช้ให้คลิกปิด
Activate พื้นที่ที่จะ crop
  • และมาถึงตอนสำคัญคือการ save file ตรงพื้นที่ที่ต้องการ crop ใช้เมนูคลิกดังรูปด้านล่าง
เลือกรูปแบบไฟล์ DEM เพื่อจะ save
  • ผมเลือกเป็น GeoTiff ต่อไปจะตั้งเงื่อนไขในขั้นตอนต่อไปเมื่อ dialog ป๊อปอัพขึ้นมาดังรูปด้านล่าง ที่แท็ปของ GeoTiff Options เลือก Elevation (16 bit integer samples) ซึ่งในการเซฟเป็น DEM สามารถเลือกได้ 2 อย่างคือ Elevation (16 bit) และ Elevation (32 bit)  ขยายความอีกนิดว่า 16 bit หรือ 32 bit คือขนาดที่ใช้เก็บ DEM ต่อ 1 pixel ตอนนี้ผมเลือก 16 bit (2  byte) ใน 1 pixel หมายความว่า เราใช้หน่วยความจำหรือพื้นที่ในการจัดเก็บเท่ากับ 2 byte ต่อ 1 pixel ส่วนความเป็นไปได้ของความสูงของ DEM คิดจาก  2 ยกกำลัง 16 จะได้ 65536 เนื่องจากเป็น signed มีเครื่องหมายลบด้วยจึงต้องหารสองแบ่งกันไปข้างละครึ่ง จะได้ -32767 ….0….32768 (คุ้นๆไหมครับ เป็นตัวเลขของ DEM  ที่ตอนแรก mark ค่าระดับเป็น invalid อยู่ที่ -32767 สีน้ำเงิน และ 32768 สีแดง)
  • เลือกสร้าง world file ตรง Generate TFW (world file) เผื่อบางโปรแกรมที่ชอบ world file มากกว่า GeoTiff
ตั้งค่าให้ GeoTiff DEM

ตั้ง GeoTiff options

  • ที่ dialog เดียวกันให้คลิกไปที่แท็ป Export Bounds (สำคัญมาก) เลือก Crop to Selected Area Feature(s)

 

 

  • จากรูปด้านบนถ้าเราไม่เลือกพื้นที่เอาไว้ก่อน ตรง Crop to Selected Area Feature(s) ก็จะจางไม่ให้คลิก เมื่อคลิก OK โปรแกรมจะถามชื่อไฟล์ให้ save จัดการ save แล้วเราจะใช้ Global Mapper เปิดมาอ่านอีกครั้ง
  • ผมต้องตกใจต่อกระบวนการ crop DEM ช่วงเขียนเป็นไฟล์ใหม่ ใช้เวลาประมาณ 2 ชั่วโมง ถ้าใคร crop DEM ที่มีขนาดเท่านี้ไปทำอย่างอื่นต่อไม่ต้องรอครับ เมื่อเปิดมาจะเห็น DEM ที่มี valid range (ไม่มีตัวเลขค่าระดับ -32767 และ +32768) ดังรูปด้านล่าง สวยสดงดงามตามสไตล์ของ Global Mapper
แสดง DEM ภาคอิสาณของไทยที่ได้จากการ crop
  • Global Mapper ที่เป็นโปรแกรมในเชิงพาณิชย์รุ่นเดียวกันมีหลายโปรแกรม แต่ที่สัมผัสมา ผมว่า Global Mapper เร็วสุด ใช้ง่าย แต่การ crop DEM ทำไมถึงใช้เวลามาก ไฟล์ที่ได้จากการ crop ประมาณ 522 MB ผมว่าผู้พัฒนา Global Mapper คงรู้ปัญหานี้ดี ตอนนี้ในรุ่น 11 ได้ออกเวอร์ชั่น 64 bit มาแล้ว ถ้าใช้ windows  64 bit Global Mapper รุ่น 64 bit น่าจะแก้ไขเรื่อง memory ไม่พอ (หมายถึงเครื่องคอมพิวเตอร์ต้องมีเมโมรีมากพอเช่นสมมติ 32-64 GB และ OS ก็ต้อง support ด้วย) ที่เหลือเป็นเรื่องอัลกอริทึ่ม ที่จะต้องปรับปรุงใหม่ ยกตัวอย่างเรื่อง Lidar ที่จะมี point มหาศาลระดับ เป็น 100 ล้านจุด และอีกเรื่องคือ CPU ต้องเร็วพอ แต่ในปัจจุบันคิดว่าเร็วพอไหม ก็น่าจะยัง มีกลุ่มคนคิดนำเรื่องความเร็วของกราฟฟิคการ์ดมาช่วยสนับสนุนการคำนวณช่วย CPU สำหรับค่าย nVidia ชื่อก็คือ CUDA(Compute Unified Device Architecture)
  • ผมดูแล้ว โปรแกรมด้าน GIS อีกโปรแกรมหนึ่งคือ Manifold System V.8 ก็พยายามเหมือนกัน นำเอา CUDA มา implement เข้าไปแล้วแต่เสียดายผมไม่สามารถลองได้เพราะใช้ graphic card เป็น ATI อยู่ มีหลายโปรแกรมเช่นแม้แต่ Photoshop ก็มี plug-in ของ CUDA ให้ใช้
  • แล้ว Global Mapper สนับสนุน CUDA แล้วหรือยัง  เท่าที่ค้นใน google ตอนนี้ ไม่มีแม้แต่เงา

4 thoughts on “การ Crop DEM ด้วย Global Mapper”

Leave a Reply

Your email address will not be published.