- ช่วงไม่นานมานี้ผม search ใน google พบกับโปรแกรมแสดงการจำลอง DEM เป็น 3D คือโปรแกรม Terrain Bender เห็นโปรแกรมต้องทึ่งในไอเดีย ครั้งแรกๆที่ผมเห็นใน website ผมคิดว่าคนพัฒนาโปรแกรมต้องเพี๊ยนสุดๆ ลองดูรูปจาก website
- ตัวโปรแกรมเป็น cross-platform มีให้ดาวน์โหลดใช้บน Windows, Linux แล้วก็ Mac OS X พัฒนาด้วย Java แสดงผล 3D โดยใช้ OpenGL ได้สวยงามทีเดียว
- ผู้พัฒนาโปรแกรมเป็นชาวสวิสเซอร์แลนด์ คือ Helen Jenny and Bernhard Jenny, Institute of Cartography, ETH Zurich ผมดูชื่อแล้วสองคนน่าจะเป็นสามี ภรรยากัน ดู profile แล้วพบแต่ของ Bernhard Jenny ดูผลงานและรางวัลที่ได้รับไม่ธรรมดาเลย กลับมาดูงานวิจัยที่เกี่ยวกับงาน Cartography ของ Bernhard Jenny พบว่ามีหลายชิ้นที่น่าสนใจ งานวิจัยบางส่วนตกผลึกกลายเป็นผลงานก็คือ Terrain Bender ที่กำลังกล่าวถึงอยู่
- โปรแกรมนี้มุ่งแสดงภาพ 3D บน plane ที่บิดทุกรูปแบบจนถึงทรงกลม สามารถนำภาพถ่ายทางอากาศมาสวมให้ก็ได้ (Drape) แต่จำกัดขนาดภาพใหญ่ไม่เกิน 8192×8192 pixels การแสดง DEM ที่ผู้พัฒนาเรียกว่า Progressive Bending คล้ายกับว่าผู้มองลงมาที่ DEM อยู่บนเครื่องบิน สายตาของมุมมองชันลงมาด้านล่าง และมุมมองเกือบจะราบเมื่อมองไปไกลๆ ที่เส้นขอบฟ้า มีประโยชน์มากเพราะแสดงได้สมจริงมากและสามารถพลิกดูพื้นที่ที่ต้องการได้อย่างรวดเร็ว
ดาวน์โหลด
- ตามลิงค์นี้ไปแล้วค่อยไปหน้าดาวน์โหลด http://www.terraincartography.com/terrainbender/ มีให้เลือกทั้ง windows, linux และก็ Mac OS X บนวินโดส์มีทั้ง 32 bit และ 64 bit เมื่อดาวน์โหลดมาแล้วไม่มีไฟล์ setup ให้แตก zip ไปวางไว้ตรงไหนก็ได้ เมื่อจะรันแค่เข้าไปคลิกที่ไฟล์ TerrainBender.exe ก็เป็นอันใช้ได้
ไฟล์ข้อมูลที่ใช้ทดสอบ
- ผมดาวน์โหลด DEM จาก Aster GDEM ที่ผมเคยถึงไปแล้ว ได้มา 2 ไฟล์คือ ASTGTM_N13E099_dem.tif และ ASTGTM_N14E099_dem.tif ทั้งสองรูปเป็น geographic Lat/Long ผมนำมารวมกันด้วย tool ของ GDAL/OGR คือ gdalwarp เพื่อรวมไฟล์ก่อน แล้ว reproject จากระบบพิกัด geographic WGS84 (EPSG = 4326) ไปเป็น UTM zone 47N (EPSG=32647)
$gdalwarp ASTGTM_N13E099_dem.tif ASTGTM_N14E099_dem.tif merge_dem_wgs84.tif
$gdalwarp -s_srs EPSG:4326 -t_srs EPSG:32647 merge_dem_wgs84.tif merge_dem_utm47n.tif
- บางครั้งการ reprojection ในวินโดส์โปรแกรมฟ้องว่าหาไฟล์ ที่เก็บ EPSG คือไฟล์ gcs.csv ไม่พบเนื่องจากตั้งค่า GDAL_DATA ไม่ถูกหรือไม่ตรง path ที่เก็บไฟล์ gcs.csv ใน Dos prompt ผมป้อน $set GDAL_DATA=C:\OSGeo4W\share\gdal (ผมติดตั้ง OSGeo4W) แล้วถึงจะรัน gdalwarp เพื่อ reprojection ได้สำเร็จ
- ลองเปิดดูด้วย Quantum GIS ว่าใช้ได้หรือไม่ ลองแล้ว OK
- ส่วนรูปเป็นไฟล์ jpeg ของแผนที่ L7018 แถวๆจังหวัดกาญจนบุรี (s7018-kan.jpg พร้อมด้วย world file) ต่อไปจะ crop DEM ให้มีขนาดเท่ากับไฟล์รูปแผนที่ ตรวจสอบขนาดของไฟล์ด้วย gdalinfo
$gdalinfo s7018-kan.jpg
Driver: JPEG/JPEG JFIF
Files: s7018-kan.jpg
s7018-kan.jgw
Size is 2986, 2554
Coordinate System is `’
Origin = (502376.972592156264000,1547332.968661365099251)
Pixel Size = (8.000000000000000,-8.000000000000000)
Image Structure Metadata:
SOURCE_COLOR_SPACE=YCbCr
INTERLEAVE=PIXEL
COMPRESSION=JPEG
Corner Coordinates:
Upper Left ( 502376.973, 1547332.969)
Lower Left ( 502376.973, 1526900.969)
Upper Right ( 526264.973, 1547332.969)
Lower Right ( 526264.973, 1526900.969)
Center ( 514320.973, 1537116.969)
Band 1 Block=2986×1 Type=Byte, ColorInterp=Red
Image Structure Metadata:
COMPRESSION=JPEG
Band 2 Block=2986×1 Type=Byte, ColorInterp=Green
Image Structure Metadata:
COMPRESSION=JPEG
Band 3 Block=2986×1 Type=Byte, ColorInterp=Blue
Image Structure Metadata:
COMPRESSION=JPEG
- จะเห็นขนาดของไฟล์ที่แสดงทั้งสี่มุม เราเลือกเฉพาะ มุมล่างซ้าย (Lower Left) และมุมบนขวา (Upper Right) การ crop DEM ด้วย gdalwarp นำค่าพิกัดมุมล่างซ้ายและบนขวา ไปใส่หลัง options -te ส่วน options -ts ระบุขนาด pixel ลงไปเลยว่าขนาดเท่ากันทั้ง x และ y ผมใช้ค่า 30.5864 เมตร (ุถ้าขนาดไม่เท่ากัน Terrain Bender จะไม่ยอมอ่าน) ต่อไป แปลงฟอร์แม็ตเป็น ESRI Ascii grid format(*.asc) ที่ Terrain Bender ต้องการด้วย gdal_translate
$gdalwarp -te 502376.973 1526900.969 526264.973 1547332.969 -ts 30.5864 30.5864 merge_dem_utm47n.tif crop_dem_utm47n.tif
$gdal_translate -of AAIGrid crop_dem_utm47n.tif crop_dem_utm47n.asc
- ลองรันโปรแกรม เปิดมาจะถามหาไฟล์ DEM เลือกไฟล์ crop_dem_utm47n.asc จะเห็นหน้าตาของโปรแกรมที่ยังไม่ได้ปรับแก้มุมมองดังรูปข้างล่าง
ปรับ shading
- คลิกที่แท็บ “Shading” ลองปรับดูดังรูปด้านล่าง
ปรับ Vertical Exaggeration
- ปรับ Vertical Exaggeration ไปสัก 2-4 กำลังสวย
การ Drape
- ลองสวมภาพแผนที่ L7018 ที่เตรียมไว้ด้วยการคลิกที่เมนู File > Open Texture Image… เลือกไฟล์ที่เตรียมไว้ ลองใช้เมาส์หมุน ส่วนการ zoom เลื่อนทำได้โดยการเลื่อนแถบ Distance, Shift X และ Shift Y
- ลองบิดไปอีกมุมหนึ่ง
สรุป
- เป็นผลงานที่น่าทึ่งมาก ถึงแม้จะพัฒนาด้วย Java ถึงขึ้นชื่อว่าช้า แต่ OpenGL ก็ช่วยภาพสามมิติได้มาก ไม่มีอาการกระตุกให้เห็นเลย การหมุนเลื่อนทำได้เนียนมาก ข้อเสียอย่างเดียวคือผมไปคอมไพล์เพื่อจะรันใน Ubuntu Linux แต่ไม่สำเร็จ (ส่วนหนึ่งผมไม่ค่อยคุ้นกับ Java) ถามหา library เมื่อจัดให้แล้วก็ไปฟ้อง error ที่เรื่องอื่น มันน่าจะมีคนทำเป็น package ติดตั้งได้ง่ายๆ แต่โดยรรมๆ แล้วประทับใจมากๆ
- สนใจข้อมูลทดสอบผมฝากไฟล์เอาไว้ ไปดาวน์โหลดได้ Test_Data.zip
อยากได้เมล์พี่มาคุยกันจังเลยครับหาคนเก่งๆที่มีเทคนิคการทำแผนที่ คุยด้วยยากมากครับ ขอความกรุณาด้วยครับ
ด้วยความยินดีครับ แต่อาจจะกระท่อนกระแท่นหน่อยนะ เพราะช่วงสองปีนี้เดินทางบ่อยมาก ยิ่งกว่าเซลล์แมนเสียอีก เดี๋ยวผมติดต่อกลับไปที่อีเมล์ครับ
เยี่ยมครับ ลองแล้วชอบเหมือนกันขอบคุณที่นำมาแนะนำนะครับตัวนี้เป็น opensource ด้วยเยี่ยมเลย
ถ้ามีเวลาผมจะเขียนคู่มือไว้สอนและแจกจ่ายซะหน่อย
พี่จวบนี้รู้จักโปรแกรมประเภท terrain เยอะดีนะครับ
สงสัยจะทำงานด้าน survey แน่นอนเลยใช่ไหมครับ
ขอบคุณมากครับ ตอนนี้อยู่ย่างกุ้ง พม่า net มันช้าได้ใจเหลือเกิน web ต่างๆถูก block ใช้กันไม่ได้ ผมยังทำ survey อยู่ครับ มีงานที่ต้องใช้ terrain มาก จึงได้หาโปรแกรมพรรค์นี้ไว้ใช้งาน แต่ก็เน้น opensource เช่นเดียวกันกับชัยภัทรครับ