Month: April 2011

การสร้าง DEM จาก 3D Points ด้วย VTBuilder

VTBuilder

  • ก่อนหน้านี้ผมเคยเขียนเรื่องการสร้าง DEM จาก 3D Points (จาก text file) โดยใช้โปรแกรมเชิงพาณิชย์อย่าง Global Mapper ซึ่ง Global Mapper ก็ทำไว้ได้อย่างสุดยอด มาลองดู tools ที่ฟรีดูบ้าง ที่ผมจะแนะนำชื่อ VTBuilder (Virtual Terrain Builder) เป็นโปรแกรมจำพวกแสดงข้อมูลด้าน Geospatial ซึ่งถ้าจะจัดก็อยู่ใน Tools ด้าน GIS

ดาวน์โหลดและติดตั้ง

  • VTBuilder เป็นฟรีซอฟแวร์ และ opensource ด้วย พัฒนาด้วย C++ สัญชาติอิตาลี สังเกตว่าโปรแกรมด้าน GIS ที่เน้นการแสดง DEM เป็น 3D ผมจะนำมาเสนอเป็นพิเศษตั้งแต่ 3DEM, MicroDEM, Landserf, TerrainBender มาจนถึง VTBuilder ตัวนี้ ถ้าสนใจไปดาวน์โหลดได้ตามลิงค์นี้ http://vterrain.org/Download/Binaries.html ซึ่งจะเลือกได้สองแบบคือแบบมีข้อมูลทดสอบมาด้วยขนาดประมาณ 45 MB ส่วนโปรแกรมดุ้นๆขนาดประมาณ 15 MB ก็ไม่ใหญ่อะไรมากมายนัก จากนั้นก็ติดตั้งได้ง่ายๆเพียงแค่คลิกไม่กี่ครั้ง
  • จรืงๆแล้ว VTBuilder นั้นเอาไว้เตรียมข้อมูลส่วนการดู 3D ใช้โปรแกรมชื่อ Enviro แต่ดูๆแล้วน่าจะเสียเงิน ผมไม่ได้นำมาแนะนำกันครับ ในตอนนี้ผมเน้นการสร้าง DEM
VTBuilder แสดง DEM ที่สร้างจาก points

 เริ่มต้นใช้งาน

  • เมื่อเปิดโปรแกรมจะเห็นหน้าตาของ VTBuilder ค่อนข้างเรียบง่าย มีแถบเมนูอยู่ด้านบน ตัวพาเนลด้านซ้ายจะมีกลุ่มของ Layer ที่ผู้พัฒนาจัดไว้ให้ได้แก่ Elevation, Images, Structure, Road, Vegetation, Utilities และ Raw ส่วนพาเนลด้านขวาแสดง Map ซึ่งโปรแกรมได้เปิด world map รอไว้ถ้าผู้ใช้ insert ข้อมูลเข้าไปก็จะรู้ได้เลยว่าเข้าไปถูกที่หรือไม่
แรกเปิดมาใหม่

 ข้อมูลทดสอบ

  • ลักษณะข้อมูลที่เป็น x,y,z ที่่โปรแกรมมองหาอาจจะอยู่ในรูปแแบบ dbf หรือไม่ก็เป็น Text file (csv) ผมมีข้อมูลเป็น point เป็น text file รูปแบบ csv ตัวคั่นเป็นเครื่องหมายคอมม่า ขนาดประมาณ 15 MB ขนาดนี้สำหรับ text file ก็ใหญ่พอสมควรมีจุดประมาณ 400,000 จุด
ข้อมูลเปิดดูด้วย Notepad ++

การ Import ข้อมูล

  • การนำข้อมูลเข้าสำหรับโปรแกรมนี้จะอยู่ที่เมนู Layer ลองดูดังรูปด้านล่าง
เลือกเมนู Layer เพื่อนำข้อมูลเข้า
  • ต่อไปเลือกไฟล์ข้อมูลและตั้งค่ารูปแบบข้อมูลให้ตรงกับไฟล์ของเรา ข้อควรระวังเนื่องโปรแกรมยังมี bug ตอนเราตั้งค่า projection และ datum เสร็จแล้ว ค่า Elevation field จะกลับเป็นค่าอื่น ใ้หตั้งใหม่ให้ตรงกับข้อมูล
ตั้งค่ารูปแบบของไฟล์ กับตั้งค่า Projection
  • ถ้าไม่มีปัญหาอะไร VTBuilder จะแสดง Layer ของข้อมูลที่เรานำเข้าไปในกลุ่มของ Raw ดังรูปด้านล่าง
VTBuilder แสดงข้อมูล 3D Points ที่นำเข้าไปแล้ว

การสร้าง DEM

  • มาถึงตอนสำคัญที่รอคอย เมื่อนำเข้าข้อมูลเป็นที่เรียบร้อยแล้ว ก็พร้อมที่ generate dem ใช้เมนู Raw ดังรูปด้านล่าง
สร้าง DEM
  • ก่อนโปรแกรมจะสร้าง DEM จะถามขนาดของกริดด้าน x และ y ข้อควรปฎิบัติคือใช้ขนาดที่เหมาะสมกับความละเอียดข้อมูลและค่า x และ y ควรจะเป็นขนาดเดียวกัน ส่วน Distance cutoff Factor (1-10) เป็นค่าระหว่าง 1 ถึง 10 ถ้าค่าเป็น 1 ในกรณีจุด x,y,z แต่ละจุดมีความห่างไม่สม่ำเสมอ ตรงที่จุดห่างๆกันมากๆ DEM ที่ได้จะเป็นรูโบ๋ ถ้าใช้ค่ามากๆถึง 10 โปรแกรมจะ คำนวณ interpolation ให้ DEM ที่จะได้จะมีรูโบ๋น้อยลง ค่ามากจะใฃ้เวลาคำนวณค่อนข้างนานกว่า แต่ก้ไม่รอนานเกินไปนัก ผมใช้ค่าประมาณ 6 รอประมาณ 7 นาที
ตั้งค่าขนาดกริดและค่า Distance cutoff Factor
DEM ที่ได้เมื่อตั้งค่า Distance cutoff Factor เท่ากับ 1.5
DEM ที่ได้เมื่อตั้งค่า Distance cutoff Factor เท่ากับ 6 (รูโบ๋จะน้อยลง)

การแก้ไข DEM ที่ลักษณะเป็นรูโบ๋

  • การที่ DEM มีรูโบ๋เรียกว่ามี gap หรือ hole การแก้ไข VTBuilder เตรียมเครื่องมือมาให้ แต่ข้อเสียที่ได้คือบริเวณที่อยู่นอกเหนือเขตข้อมูลโปรแกรมจะทำ extrapolation มาให้ น่าเสียดายโปรแกรมไม่ได้เตรียมเครื่องมือสำหรับ crop เอาเฉพาะบริเวณที่มีช้อมูล ผมใช้โปรแกรมอื่นมา crop ให้ได้เฉพาะ DEM ที่ต้องการ
  • ก่อนทำการแก้ไขให้คลิกที่พาเนลด้านซ้ายตรงด้านใต้ Elevation คำว่า Untitled คือ DEM ที่ยังไม่ได้ตั้งชื่อ เมื่อคลิกแล้วจะเห็นเมนู Elevation คลิกเลือก Fill In Unknown Area > Slow and Smooth
การแก้ไขรูโบ๋ของ DEM ด้วยการ interpolation
  •  รอสักครู่ใหญ่ๆ ถ้าข้อมูลจุดมาก ผลลัพธ์จะได้ดังรูปด้านล่าง
ผลที่ได้จากการ Fill gaps ให้กับ DEM

การเซฟ DEM เป็นฟอร์แม็ตที่ต้องการ

  • เมื่อได้ DEM มาแล้วขั้นต่อไปคือนำไปใช้งาน ใน VTBuilder นั้นสนับสนุนฟอร์แม็ตที่เป็น native  ของโปรแกรมคือ BT ซึ่งได้สองทางเลือกแบบไม่บีบอัดกับบีบอัดแล้ว GZipped BT (.bt.gz) ซึ่งผมลองเอาไฟล์ที่บีบอัดไปเปิดด้วยโปรแกรม Global Mapper ปรากฏว่า  Error ส่วนไฟล์ไม่บีบอัดสามารถเปิดได้ตามปกติ
save เป็น native format (.bt)
ทดสอบการเปิดไฟล์รูปแบบ BT ด้วย Global Mapper

การ Export DEM ไปสู่รูปแบบไฟล์อื่นๆ

  • ให้ตายเถอะรูปแบบ BT ผมก็เพิ่งเห็นจาก VTBuilder นี่แหละลองเข้าไปค้นดูปรากฏว่า โปรแกรมที่สามารถอ่านฟอร์แม็ตนี้ได้แก่  Global Mapper, Landserf และอีก 5-6 โปรแกรมที่ผมยังไม่ได้ลอง ที่อ่านได้อีกอย่างคือไลบรารี GDAL
  • แต่ถ้าต้องการ export เป็นฟอร์แม็ตอื่นๆโปรแกรมก็เตรียมทางเลือกไว้ที่เมนู Elevation ดังรูปด้านล่าง
เมนูสำหรับ export ไปสู่ DEM รูปแบบอื่นๆ
  • รูปแบบที่แน่นอนที่สุดสำหรับ VTBuilder คือ ArcInfo Ascii Grid
รูปแบบ DEM ที่โปรแกรมสามารถ export ได้
  • ผมลอง export เป็น Geotiff มาดูครับว่าเกิดอะไรขึ้นผมลองเปิดด้วย Global Mapper ได้ผลลัพธ์ดังรูปด้านล่าง คล้ายกับ model ที่ครูสมัยมัธยมให้ทำคือเป็นชั้นๆ ฮ่า ฮ่า แปลกดีเหมือนกันครับ
ได้ DEM ลักษณะเหมือน model ที่ตัดกระดาษแปะเป็นชั้นๆ

สรุป

  • สำหรับความรู้สึกของผม VTBuilder นี่ก็ไม่เลวเลยครับ เล็ก เร็วดีครับที่สำคัญคือฟรี