Archive

Posts Tagged ‘DEM’

SAGA GIS สุดยอดโปรแกรมวิเคราะห์ Terrain

SAGA GIS (System for Automated Geoscientific Analyses)

  • ดูชื่อโปรแกรมแล้วผมค่อนข้างงงเล็กๆ สำหรับชื่อ Geoscientific เปิดดิคไม่พบน่าจะเป็นการผสมกันระหว่าง Geo กับ Scientific รวมๆแล้วน่าจะว่าหมายถึง วิทยาศาสตร์ธรณ๊ รวมๆแล้วชื่อโปรแกรมน่าจะเป็นโปรแกรมวิเคราะห์ด้านวิทยาศาสตร์ธรณี อะไรประมาณนี้ สนใจเข้าไปดูได้ website ของผู้พัฒนา SAGA GIS
  • โปรแกรมพัฒนาด้วย C++ ใช้ widget ของ WxWidget เป็นโปรแกรม opensource และ cross-platform อีกตัวหนึ่ง ผมลองใช้ทั้งฝั่งวินโดส์และใน Ubuntu ก็ทำงานได้ไม่มีที่ติ

SAGA_firsttime

สุดยอดด้านการวิเคราะห์ด้าน Terrain

  • ครั้งก่อนผมแนะนำ Landserf แต่ SAGA มีอะไรมากกว่า ทำงานได้เร็วมาก ตอนแรกๆผมนั่งแกะโปรแกรมตามนิสัยเสียที่ไม่ชอบอ่านคู่มือก่อน ดู User interface ดูเหมือนจะใช้ยากแต่ถ้าจับทางได้ก็ง่าย
  • จั่วหัวว่าวิเคราะห์ด้าน Terrain แต่จริงๆแล้วมากกว่านั้นมากก็คงตามชื่อคือ Geoscientific รวมๆแล้ววิเคราะห์ด้าน Hydrology (การไหลของน้ำ การเก็บกักน้ำ), Fire spreading analysis (การจำลองเมื่อเกิดไฟไหม้) และที่ผมแปลไม่ออกเลยก็คือการวิเคราะห์ Morphometry คืออะไรก็ไม่ทราบ(ฮา)
  • ตัวผมเองใช้งานเฉพาะด้านวิเคราะห์ Terrain เท่านั้น ด้านอื่นจะไม่กล่าวถึงเพราะไม่ใช่ด้านที่ถนัด

Terrain Analysis – Compound Analyses

  • ฟังก์ชั่นการวิเคราะห์แต่ละอย่างใน SAGA จะเรียกว่า module ซึ่งในโปรแกรมมีหลาย module ตามแต่ประเภทการวิเคราะห์ การวิเคราะห์ Terrain จะต้องการ Grid หรือ DEM เป็น input
  • Terrain Analysis – Compound Analyses เป็น module ที่ผมใช้ลักษณะ 16 in 1 คือวิเคราะห์ Analytical Hillshading, Slope, Aspect, Curvature, Plan Curvature, Profile Curvature, Convergence Index, Curvature Classification, Catchment Area, Wetness Index, Stream Power, LS-Factor, Channel Network, Altitude above channel network, Channel Network Base Level และ Channel Network Subbasin
  • SAGA ไม่ได้ใช้ไลบรารีของ GDAL ทำให้การ import DEM ได้ไม่กี่ฟอร์แม็ต ซึ่งฟอร์แม็ตที่ผมชอบใช้คือ Arc/Info Grid ฟอร์แม็ตข้อมูลนี้จะเป็นไฟล์ Ascii ควรใช้โปรแกรมอื่นหรือไลบรารี GDAL ทำการแปลงข้อมูล DEM จากรูปแบบอื่นๆเช่น GeoTiff

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

  • ถ้าเป็นฝั่งวินโดส์ดาวน์โหลดได้ที่ SourceForge ดาวน์ไฟล์ setup มาแล้วขนาดประมาณ 6 MB ติดตั้งได้ง่ายๆ ถ้าเป็นฝั่ง Ubuntu ผมใช้ Ubuntu Software Center พิมพ์ค้นหาคำว่า SAGA จะได้ผลลัพธ์ดังรูป คลิกที่ install ก็จะเริ่มดาวน์โหลดจากอินเตอร์เน็ตกันจนเสร็จ

Ubuntu Software Center

  • หรือจะติดตั้งผ่าน Synaptic แล้วพิมพ์ค้นหาเช่นเดียวกันก็ได้

User Interface

  • มาดู user interfaces ของโปรแกรมที่ดูเหมือนจะใช้ยาก แต่ลองแล้วง่ายมาก โปรแกรมใช้ WxWidget เป็นตัวแสดงผล user interfaces ที่เป็นกราฟฟิคทั้งหลายแต่ทำไมถึงดูไม่สวย แต่ไม่เป็นไรเราเอาผลลัพธ์ ใช้งานง่าย เร็วแค่นี้ก็พอแล้ว

saga_interfaces

  • จากรูปด้านบนแสดงพาเนลหลักของโปรแกรม จะเห็นช่องแสดงลิสต์ของ module เรียงลงมาหลายๆอย่างให้เลือกใช้งาน ที่สำคัญคือ แท็บเลือกการแสดงผลคือ Modules, Data และ Maps การ input ข้อมูลเข้าไป่เช่น DEM, รูปภาพ หรือ Shape file เข้าไปจะไปปรากฎในช่อง Data ต้องคลิกที่แท็บ Data ถึงจะเห็นข้อมูล หรือแม้แต่การ process ข้อมูลจะได้ output ออกมาจะปรากฎในช่อง Data นี้ ถ้าต้องการข้อมูลแสดงผลต้องสั่งถึงจะเห็นใน Map ซึ่งข้อดีก็คือถ้ายังไม่แสดงผลใน Map จะไม่กิน memory

ข้อมูลที่ใช้ในการทดสอบ

  • ข้อมูลที่นำมาทดสอบเป็นฟอร์แม็ต Arc/Info Grid มีขนาด pixel ในแนวแกน x เท่ากับ 1986 จำนวน pixel ในแนวแกน y เท่ากับ 6565 พูดง่ายคือ 1986 x 6565 ตัว resolution ของ DEM มีขนาด 30m x 30m ครอบคลุมพื้นที่ประมาณ 59.58 กม. x 196.95 กม. ขนาดไฟล์นี้ประมาณ 90 MB เอาละมาลอง input ข้อมูลเข้าโปรแกรมกัน

SAGA_importgrid

  • จากรูปด้านบนคลิกที่ลิสต์ module “Import ESRI Arc/Info Grid” แล้ว browse เปิดไฟล์คลิก Okay ถ้าไม่มีอะไรผิดพลาด ถ้าไฟล์ใหญ่จะใช้เวลาสักพักหนึ่ง ต่อไปก็คลิกที่แท็บ “Data” ก็จะเห็นผลลัพธ์ดังรูปด้านล่าง

SAGA_showdata

  • รูปด้านบนจะเห็นว่าในช่องแสดง Maps ยังว่างๆ มาลองแสดงผลของ DEM ดูกัน

SAGA_showmap

  • เมื่อสั่ง show grid เพื่อแสดง DEM ใน Map จะเห็นผลลัพธ์ดังรูปด้านล่าง

SAGA_shownmap

การวิเคราะห์ Terrain ด้วยโมดูล Compound Analyses

  • ดังที่ผมกล่าวไปแล้วตอนต้นว่าเป็นโมดูล 16 in 1 ถ้าไม่ต้องการผลลัพธ์ขนาดนี้ก็ไม่ต้องใช้โมดูล นี้เช่นต้องการแค่ Analytica Hillshading เลือกใช้ Terrain Analysis – Lighting, Visibility แล้วเลือก Analytical Hillshading ก็พอ กลับมาที่แท็บ modules อีกครั้งผมเลือก Terrain Analysis – Compound Analyses

SAGA_terrainanalysis

  • รูปด้านบนเมื่อคลิกเลือก Compound Analyses แล้วจะเห็นหน้าต่างในป้อนข้อมูลที่จะเป็น input เราเลือกง่ายๆเพราะโปรแกรมมองข้อมูลที่ import มาแล้วสร้างลิสต์ให้เราเลือกง่ายๆ ดูรูปประกอบก็แล้วกัน แต่ต้องบอกกันก่อนว่าถ้า DEM มีขนาดใหญ่และเลือกการวิเคราะห์ทีเดียวแบบมากๆอย่างนี้จะใช้เวลามาก สั่งโมดูลนี้นั้งดื่มกาแฟรอได้เลย สำหรับข้อมูล DEM ตัวนี้ใช้เวลาประมาณ 40 นาที (spec. notebook ผมธรรมดามาก cpu 2.4 GHz แรม 2 GB) ไม่ธรรมดาเลย
  • จริงๆแล้วผมต้องการ Channle Network ก็คือทิศทางไหลของน้ำ บางโปรแกรมเรียกว่า Watershed ซึ่งลองมาหลายโปรแกรมแม้กระทั่ง Landserf ก็ทำได้ไม่ดีเท่านี้ และโมดูลนี้ยังน็อคเอ๊าท์โปรแกรมเชิงพาณิชย์อย่าง Global Mapper (ฟังก์ชั่นนี้เพิ่งมีในเวอร์ชั่น 12 แต่น่าผิดหวังมากเพราะผมลองใช้ DEM ตัวนี้เปิดคอมพิวเตอร์ทิ้งไว้ทั้งคืนยังไม่เสร็จ) รูปด้านล่างแสดงผลลัพธ์เมื่อโปรแกรมทำการคำนวณให้เรียบร้อยแล้ว

SAGA_results

ผลลัพธ์การวิเคราะห์

  • ลองมาดูผลลัพธ์กันทีละอย่างที่น่าสนใจ จะลองที่ Analytical Hillshading หรือทั่วๆไปเรียกว่า Shaded Relief จากรูปด้านบนที่ข่องแสดง Data เลือกคลิกขวาที่ 02-Analytical Hillshading แล้วเลือก Show Grid โปรแกรมจะถามว่าจะให้ไปซ้อนกับ Map อื่นๆหรือไม่หรือเลือกแสดงผลเฉพาะ ผมเลือก New… เพื่อแสดงผลที่หน้าต่างใหม่ จะเห็นผลลัพธ์ดังรูปด้านล่าง สวยงามมาก ถ้าต้องการ Save Grid ก็ต้องไปที่แท็บ Modules แล้วเลือก Import/Export Grids… แล้วเลือกฟอร์แม็ตที่ต้องการ โปรแกรมจะถามว่าต้องการ Save map ตัวไหน

SAGA_shadedrelief

  • มาดูผลลัพธ์ Slope กัน ดูรูปด้านล่างจะเป็น shaded อีกแบบหนึ่งที่แยกโทนสีด้วยความชันของภูมิประเทศ สีเข้มจะชันมาก สีอ่อนจะชันน้อย

SAGA_slope

  • ถ้าดูในช่อง Data จะเห็น Shapes เป็น vector อยู่แสดง Channel Network ผมคลิกขวาแล้วเลือก Show Shapes ผมเลือกที่จะซ้อนไปบน map แสดง Analytical Hillshading ดังรูปด้านล่าง

SAGA_Addlayer

  • จะเห็นผลลัพธ์ดังรูปด้านล่าง ผมปรับ transparacy ของตัว shaded relief ประมาณ 30 % เพื่อให้ลายเส้นของ Channel Network เด่นขึ้นมา

SAGA_shown_channelnetworkonshaded

การ Save output

  • ผมจะลอง Save ตัว channel network ตัวนี้ออกเป็น shape file ที่แท็บคลิกที่ Data แล้วคลิกขวาดังรูปด้านล่าง ซึ่งสามารถ save ได้ เพื่อเอาไปเปิดในโปรแกรม GIS อื่นๆSAGA_shownsaveshape
  • ผมลองนำ channel network ไปขึ้นที่ Quantam GIS เพื่อจัดทำแผนที่ลองดูรูปด้านล่าง

QGIS_channelnetwork

  • ถ้า DEM ไม่ละเอียดพอหมายความว่าค่าระดับไม่ดี อย่าง ASTER GDEM ที่ผมเคยเขียนไปแล้วว่าตรงแม่น้ำค่าระดับส่วนมากจะผิด ทำให้ SAGA ประมวลผล channel network ผิดไปด้วย ดูรูปด้านล่างจะเห็นว่า Channel network ไม่ตรงกับภาพถ่ายดาวเทียม

SAGA_problemfromDEM

ความสามารถด้านอื่นๆ

  • สำหรับ SAGA GIS ก็เป็นโปรแกรมตัวหนึ่งที่ผมชอบ ที่สำคัญคือเป็นโปรแกรมที่ฟรี สามารถใช้ได้หลาย platform ยังมีความสามารถด้านอื่นๆที่ผมไม่ได้พูดถึง ผมลองดูคร่าวๆสามารถ edit shape file ได้แต่ไม่รู้เจ๋งแค่ไหน สามารถแปลงฟอร์แม็ตได้ ดูภาพ 3D ก็พอจะกล้อมแกล้มไปได้  สร้างภาพ Anaglyph ได้  อนาคตผมก็คิดว่าจะมีโปรแกรมแบบนี้ให้ใช้ได้อีกมากมาย สามารถทดแทนโปรแกรมเชิงพาณิชย์ได้พอสมควร
Categories: 3D, GIS, Lazarus, Linux, Windows ป้ายกำกับ:, , , ,

Terrain Bender โปรแกรมแสดง DEM ที่บรรเจิดสุดๆ

  • ช่วงไม่นานมานี้ผม search ใน google พบกับโปรแกรมแสดงการจำลอง DEM เป็น 3D คือโปรแกรม Terrain Bender เห็นโปรแกรมต้องทึ่งในไอเดีย ครั้งแรกๆที่ผมเห็นใน website ผมคิดว่าคนพัฒนาโปรแกรมต้องเพี๊ยนสุดๆ ลองดูรูปจาก website

ภาพจาก website ของผู้พัฒนา Terrain Bender

  • ตัวโปรแกรมเป็น 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 ที่กำลังกล่าวถึงอยู่

การ projection ภาพ 3D ด้วยมุมต่างๆของสายตา

  • โปรแกรมนี้มุ่งแสดงภาพ 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

แสดงผลใน QGIS

  • ส่วนรูปเป็นไฟล์ 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 จะเห็นหน้าตาของโปรแกรมที่ยังไม่ได้ปรับแก้มุมมองดังรูปข้างล่าง

    หน้าตาของ Terrain Bender เรียบง่าย

    ปรับ shading

    • คลิกที่แท็บ “Shading” ลองปรับดูดังรูปด้านล่าง

    ปรับ shading

    ปรับ Vertical Exaggeration

    • ปรับ Vertical Exaggeration ไปสัก 2-4 กำลังสวย

    ปรับความดิ่งเกินจริง

    การ Drape

    • ลองสวมภาพแผนที่ L7018 ที่เตรียมไว้ด้วยการคลิกที่เมนู File > Open Texture Image… เลือกไฟล์ที่เตรียมไว้ ลองใช้เมาส์หมุน ส่วนการ zoom เลื่อนทำได้โดยการเลื่อนแถบ Distance, Shift X และ Shift Y

    การ Drape ภาพลองไปบน DEM

    • ลองบิดไปอีกมุมหนึ่ง

    มุมมองในอีกมุม

    สรุป

    • เป็นผลงานที่น่าทึ่งมาก ถึงแม้จะพัฒนาด้วย Java ถึงขึ้นชื่อว่าช้า แต่ OpenGL ก็ช่วยภาพสามมิติได้มาก ไม่มีอาการกระตุกให้เห็นเลย การหมุนเลื่อนทำได้เนียนมาก ข้อเสียอย่างเดียวคือผมไปคอมไพล์เพื่อจะรันใน Ubuntu Linux แต่ไม่สำเร็จ (ส่วนหนึ่งผมไม่ค่อยคุ้นกับ Java) ถามหา library เมื่อจัดให้แล้วก็ไปฟ้อง error ที่เรื่องอื่น มันน่าจะมีคนทำเป็น package ติดตั้งได้ง่ายๆ แต่โดยรรมๆ แล้วประทับใจมากๆ
    • สนใจข้อมูลทดสอบผมฝากไฟล์เอาไว้ ไปดาวน์โหลดได้ Test_Data.zip
    Categories: 3D, GIS, Linux, Windows ป้ายกำกับ:, , , ,

    การ 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)

    เลือกพื้นที่ที่ Activate ไว้

    • จากรูปด้านบนถ้าเราไม่เลือกพื้นที่เอาไว้ก่อน ตรง 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 ตอนนี้ ไม่มีแม้แต่เงา
    Categories: 3D, GIS, Linux, Windows ป้ายกำกับ:, , , ,

    การสร้าง 3D Anaglyph ด้วย MicroDem

    • ตอนที่แล้วผม post การทำ animation (flyby) ด้วย 3Dem ซึ่งโปรแกรมได้หยุดพัฒนาไปแล้ว มาดู Tools ที่ฟรีตัวต่อไป ที่นำมาใช้งานด้าน GIS เป็นโปรแกรมรุ่นเก่าเหมือนกัน แต่ตัวนี้ยังพัฒนาต่อเนื่อง และ MicroDem นี้มี feature ที่แฝงอยู่เป็นจำนวนมาก แต่ข้อเสียของโปรแกรมนี้คือ ใช้งานยาก ถ้าไม่รู้ว่าอะไรอยู่ตรงไหน เวลาใช้งานครั้งแรกๆ จะหงุดหงิด พาลเลิกไปเลย คือมี icon ของฟังก์ชั่น เยอะไปหมด พอคลิกดูที่น่าใช่กลับไม่ใช่ คือวิจารณ์ข้อเสียของ software ส่องกระจกดูก็เป็นข้อเสียของผมสะท้อนกลับมาเหมือนกัน คือนิสัยเสียไม่ค่อยอยากอ่านคู่มือ ใช้วิธีแกะวิธีใช้จากการลองผิดลองถูก แต่ถ้าเป็น User Interface ที่เรียบง่ายคือออกแบบได้อย่างที่เรียกว่า User friendly อย่าง Global Mapper นี่แทบไม่เคยอ่านคู่มือเลย
    • อย่างที่ผมจะเขียนเรื่องการทำ 3D Anaglyph คือเป็นภาพสามมิติ ที่ต้องใช้แว่นตา แดง/น้ำเงิน (ที่ใช้ดูหนัง 3D บนทีวีหรือโรงหนังก็ได้) มาส่องดูถึงจะเห็นเป็นภาพสามมิติ ถ้าเอาไปขึ้นจอ projector ก็เป็น idea ที่ไม่เลว แต่ต้องเตรียมแว่นตา ไว้หลายๆอันหน่อย ถูกๆหน่อยก็ที่ทำด้วยกระดาษ ถ้าใครที่ใช้โปรแกรมด้าน GIS อยู่บ่อยๆ จะเข้าใจเลยว่าถ้าพูดถึงภาพ 3D Anaglyph ต้องมีอะไรบ้าง หนึ่งคือ tools ที่ใช้สร้างภาพ Anaglyph อย่างง่าย สองต้องมี DEM  สามที่ต้องไม่ลืมคือแว่นตา แดง/น้ำเงิน
    • เมื่อเปิด DEM แล้ว ทำการ Map shading ซึ่งมีให้เลือก 4-5 อย่าง ต่อจากนั้นสั่งให้โปรแกรม render เป็น 3D Anaglyph แล้วใส่แว่นตาดู โปรแกรมถ้าใช้งานง่าย concept ก็ควรจะเป็นอย่างที่ผมกล่าว ที่นี้มาดูว่า MicroDem ใช้งานยากที่ร่ำลือเป็นอย่างไรกัน
    MicroDem01

    การสวมภาพ Map Shading จาก MicroDem เข้า Google Earth โดยตรง(แค่คลิกเมาส์สองคลิก) ทำให้ 3D ของ MicroDem ไปโผล่ใน Google Earth ดูสวยแปลกตา

    ความเป็นมาของ MicroDem

    • เป็นโปรแกรม Freeware ด้าน GIS ที่ดูประวัติแล้วเริ่มต้นจากทีมงานของหน่วยทหารช่างของอเมริกา คือ US Naval Academy ที่เริ่มต้นครั้งแรกปี 1985 พยายามครั้งแรกบนเครื่อง Apple II แต่มาประสบความสำเร็จบนเครื่อง PC. ปี 1987 หัวหน้าทีมพัฒนาโปรแกรมก็คือ ศาตราจารย์ Peter Guth ครั้งแรกถูกพัฒนาด้วย Turbo Pascal เวอร์ชั่นบน DOS ถูก port เป็น Borland Delphi ในปี 1995 และถูกพัฒนาด้วย Delphi ตลอดมา
    • MicroDem สนับสนุนฟอร์แม็ตได้หลายๆตัวที่สำคัญๆ เช่น GeoTiff, Shape file, SRTM DEM, MrSid
    • ที่ผมสนใจโปรแกรมตัวนี้เป็นพิเศษเพราะว่าพัฒนาด้วย Delphi ถือว่าเป็น compiler ต้นธารของผมเลย คือมีความผูกพันธ์กับ compiler ตัวนี้ถึงแม้ผู้สร้างคือ Borland จะล้มหายตายจากไปแล้วก็ตาม

    เตรียม Resource ให้ MicroDem

    • ผมขอใช้ resource เดียวกันกับตอนที่แล้ว ที่ใช้ 3DEM มี DEM อยู่หนึ่งไฟล์ พื้นที่เป็นแหลมเมืองทวาย พม่า DEM ที่วัดได้จากกระบวนการภาพถ่ายทางอากาศ เพื่อสร้างแผนที่ 1:50000 ของพม่า มีความละเอียดมากกว่า SRTM DEM อยู่พอสมควร คือ resource ของพื้นที่บริเวณนี้ได้มาเป็นจุด DTM ในรูป DWG แล้วนำมา export เป็น 3D Points นำเข้า Global Mapper แล้วสร้างเป็น GeoTiff DEM มีขนาด pixel 15mx15m (ทึ่จริงขนาด 30mx30m ก็ได้)

    ปรับแต่ง Configuration ของ MicroDem ก่อนใช้งาน

    • ผู้ใช้บางท่านอาจจะมีข้อมูลที่อ้างอิงกับ Indian 1975 datum อยู่แต่พารามิเตอร์ที่โปรแกรมตั้งมายังไม่ถูกต้อง กับพารามิเตอร์ของกรมแผนที่ทหาร ดังนั้นถ้านำข้อมูลที่อ้างอิงกับ Indian 1975 มาใช้งานจะไม่ถูกต้อง
    • ตอนติดตั้งโปรแกรม MicroDem จะเลือกติดตั้งที่ C:\MicroDem จะมีไฟล์กำหนดรูปทรงรี คือ  GT_Ellip.dat และไฟล์กำหนด datum คือ GT_datum.dat ไฟล์กำหนดรูปทรงรีไม่ต้องสนใจเพราะถูกต้องแล้ว แต่จะำทำการแก้ไข GT_datum.dat ให้ถูกต้องตามพารามิเตอร์ของกรมแผนที่ทหาร ผมใช้ Notepad++ หรือจะใช้  Notepad ที่ติดมากับ windows ก็ได้

    microdem02

    • ทำการแก้ไขให้ถูกต้องดังรูปด้านล่าง แล้ว save
    microdem03

    แก้ใขค่าพารามิเตอร์ของการ Transformation ใหตรงกับของกรมแผนที่ทหาร

    • รันโปรแกรม MicroDem ที่เมนูหลักของ MicroDem คลิกที่ Options แล้วแท็ปไปที่ Datum ตั้งค่าที่ UTM zone ตั้งเป็น 47 ซึ่งเป็นพื้นที่ส่วนใหญ่ของไทย ถ้าใช้งานอยู่แถว Zone 48 ก็ตั้งค่าเป็น 48 Hemisphere เลือกเป็น North เพราะไทยเราอยู่เหนือเส้นศูนย์สูตร Primary Datum เลือกเป็น WGS84 ส่วน Secondary Datum ผมเลือกเป็น INDIAN 1975, Thailand (ที่เราเพิ่งแก้ค่าพารามิเตอร์ไป) ก็เลือกตามรูปด้านล่าง แต่อย่าลืมติ๊กเครื่องหมาย Verify datums เวลาเปิดรูป เปิด DEM โปรแกรม MicroDem จะถามเพื่อ confirm
    microdem04

    ตั้งค่า configuration ที่ datum

    นำเข้า DEM

    • ที่เมนูหลักของ MicroDem คลิกที่ File > Open > Open DEM เลือกไฟล์ DEM ที่เราเตรีียมไว้ จากนั้นโปรแกรมจะถาม Datum ตั้งค่าให้ตรงกับ DEM ของเราดังรูปด้านล่าง

    microdem05

    • จะเห็น DEM แสดงผลในลักษณะ Map Shaded ซึ่งภายหลังเราสามารถปรับได้หลายอย่าง (มากกว่าโปรแกรม 3DEM)

    microdem06

    • ที่กรอบการแสดงผลของ DEM สังเกต icon ที่เป็นรูปสี่เหลี่ยมมีลูกศรชี้เข้าหา (icon ที่ 5 จากซ้ายมือ คลิกเพื่อขยายรูป) เลือกพื้นที่ที่ต้องการขยาย
    • microdem08ต่อไปเราจะตั้ง Map shading options ซึ่ง MicroDem เตรียมรูปแบบมาให้แตกต่างกัน 3-4 อย่าง ที่รูป DEM คลิกขวาเพื่อเลือก options แล้วคลิกที่ Map Shading Options ดังรูปด้านล่าง

    microdem09

    การทำ Map Shading

    • จะเห็นเงื่อนไขหรือทางเลือก DEM color merge อยู่ 4 อย่างคือ Elevation, Slope, Reflectance, Terrain Shading
      • ถ้าเลือก Elevation การไล่เฉดสีจะเป็นไปตามค่าระดับของพื้นที่
      • ถ้าเลือก Slope การไล่เฉดสีเป็นไปตามความชัันของพื้นที่ เช่นความชันน้อยๆเป็นสีอ่อน ถ้าชันมากก็เป็นสีเข้ม ซึ่งผู้ใช้สามารถเลือกตั้งค่าได้
      • ถ้าเลือก Reflectance ผมคิดว่าดูดีที่สุดเป็นธรรมชาติคือสามารถตั้งแสงเงาและทิศทางได้ด้วย
      • ถ้าเลือก Terrain Shadings คล้ายกับ Reflectance มาก แต่เหมือนจะใส่การ blending เข้าไปมากจะทำให้ภาพดูมืดมากกว่า แต่ความคมชัดมากกว่า Reflectance
    • ลองเลือกดูตามใจชอบ ส่วนผมชอบ Refectance มากที่สุด
    microdem10

    ตั้งค่าสำหรับ DEM Color merge ลองเลือก Elevation

    microdem11

    เมื่อเลือก DEM Color Merge เป็น Elevation

    • ดูที่กรอบหน้าต่างแสดงผล DEM สามารถ pan ได้ด้วยการคลิกที่เครื่องหมายลูกศร UI ยังโบราณมาก ความจริงถ้าให้คลิกเมาส์ปุ่มกลางกดค้างแล้วลากจะสะดวกมากกว่า ลองเลือกเป็น reflectance ดู
    microdem12

    เลือก DEM Color merge เป็น Reflectance

    การส่งภาพไปแสดงผลที่ Google Earth

    • นี่เป็น feature ที่เด็ดที่สุดของ MicroDem สามารถยิงไปออกที่ Google Earth ได้เลย ในแง่โปรแกรมมิ่ง เทคนิคนี้เป็นไม่ใช่เทคนิคใหม่ เรียกอะไรจำไม่ได้แล้ว คือ Google Earth ต้องให้ Type Library มา ถึงจะเขียนโปรแกรมติดต่อได้ ที่ผมใช้อยู่ประจำคือ Autocad และ Microsoft Excel สามารถเขียนแบบด้วยโค๊ดแล้วส่งเข้าไปแสดงผลใน Autocad หรือ Excel ได้เลย ถึงจะเป็นเทคนิคเก่าแต่สะดวกมาก (แต่ที่โปรแกรมเมอร์ไม่ค่อยอยากเขียนเท่าไหร่เพราะคุมไม่ได้เช่น Type library สำหรับ Google Earth version 5 แต่พอถึง version  7 อาจจะเปลี่ยนการ interface ใหม่ ทำหให้โปรแกรมที่เขียนติดต่อกับ Google Earth ที่ยังอิงกับ Type library version เก่าก็ใช้ไม่ได้) ไม่ต้องหาโปรแกรมมาแปลงเป็น KML/KMZ คลิกเมาส์แล้วส่งออกไปเลย มาดูกันครับ ที่ภาพของ DEM คลิกขวาเลือก Load > Google Earth overlay
    microdem13

    ส่งภาพ Map Shading ออกแสดงผลโดยตรงที่ Google Earth

    • ลองดูผลลัพธ์ ภาพที่ overlay เข้าโดยมีฟอร์แม็ต PNG ที่สามารถทำ transparency กับ ภาพของ Google Earth ลองดูรูปด้านล่าง
    microdem14

    ภาพที่ส่งเข้ามาจาก MicroDem

    • ดูภาพด้านบน สวยงามมาก ที่จริงเป็นภาพอะไรก็ได้ที่อ้างอิงกับ Georeference ที่สามารถอ่านด้วย MicroDem ก็สามารถส่งเข้ายัง Google Earth ได้เสมอ

    3D Anaglyph

    • สุดท้ายที่เราตั้งเป้าไว้คือการแสดงผลแบบ 3D Anaglyph ที่หน้าต่างแสดง DEM คลิกขวาเลือก 3D Map  Options ตั้งค่า ที่ stereo mode ตั้งเป็น Anaglyph คลิกที่ OK เพื่อ Render ใหม่
    microdem15

    ตึ้งค่า 3D Anaglyph

    • เตรียมแว่นตา 3D ดูได้เลย
    microdem16

    ภาพ 3D Anaglyph

    ข้อดีและข้อด้อยของ MicroDem

    • ในขณะใช้ MicroDem ทำ render ภาพ 3D ถ้าเกิดภาพหายไปดื้อๆ ไม่ต้องตกใจ เป็นเรื่องปกติ ปิดหน้าต่างแล้วเปิด DEM มาใหม่ มี  bug  บางส่วนไม่ได้รับการแก้ไขอยู่อีกหลายจุด
    • การ pan การ zoom ไม่เคยปรับปรุงมานานแล้ว ใช้งานยาก การเพิ่มโค๊ดเพื่อการ pan และ zoom แบบ real time ก็ไม่ใช่เรื่องหนักหนาสาหัสอะไรในทางโปรแกรมมิ่ง
    • ส่วนที่น่าสนใจมากของโปรแกรมนี้คือสนับสนุนเรื่อง Geology ซึ่งผู้พัฒนาโปรแกรมแต่ละคนก็ขนาดศาสตราจารย์ทั้งนั้น และทำงานให้แผนก Geology โปรแกรมจึง support ด้านนี้ สามารถนำภาพที่ได้จากการสำรวจ side scan sonar, sub-bottom profiler (เป็นงานสำรวจที่ทีมงานผมทำอยู่เหมือนกัน) เข้าไปซ้อนเป็นชั้นข้อมูลกับ DEM ได้ หรือสามารถนำข้อมูลชั้นดินมารวมกับชั้นข้อมูลอื่นๆ ได้ ฟีเจอร์หลายๆอย่างน่าสนใจ ถ้าถามว่าทำไมโปรแกรมใช้งานยาก หนึ่งคือไม่ใช่โปรแกรมเพื่อการค้า สองดูที่ผู้พัฒนาโปรแกรมระดับศาสตราจารย์ทั้งนั้น (เหตุผลข้อหลังไม่ขยายความต่อนะครับ) ถึงแม้จะใช้งานยาก แต่ก็ไม่เกินความพยายามของเรา เพราะเป็นของฟรี และความสามารถของโปรแกรมก็มีอะไรดีที่คาดไม่ถึงอยู่อีกมากครับ
    • ความคิดของผมเมื่อโปรแกรมมาถึงในจุดที่ทำต่อไปไม่ไหวก็เปิดเป็น opensource มี library หลายตัวของ MicroDem ที่น่าสนใจสามารถนำมาทำเป็น GIS Component ได้สบายๆ
    Categories: GIS, Windows ป้ายกำกับ:, , , , ,

    การจำลองภาพเคลื่อนไหวมุมสูง (Flyby) 3D ด้วย Tools ฉบับกระเป๋า 3DEM

    3Dem

    • เป็นโปรแกรมขนาดเล็กมาก จะเรียกว่าฉบับกระเป๋าก็ได้ เขียนโดย Richard Horne ตอนนี้หยุดพัฒนาไปแล้วครับ ถึงจะหยุดพัฒนาไปแล้วแต่ก็ยังหา download ได้หลาย website เช่นที่นี่  http://download.softpedia.com/dl/152f620e6a056a7b7684d96e1b9ddecf/4af18f4a/100111975/software/edu/3dem_setup.exe โปรแกรม 3DEM เมื่อออกมาใหม่ๆเป็นที่กล่าวขานพอสมควร คือออกมานานมากตั้งแต่ Windows 95 นู่นครับ ใช้ OpenGL เป็น engine ในการ render เป็น 3D และแน่นอนสามารถจำลองเป็นภาพเคลื่อนไหว สามารถจัดเก็บเป็นฟอร์แม็ต avi และ mpg
    • น้องๆที่เป็นนักศึกษาที่ศึกษาด้าน GIS และคงจะมีหลายๆคนที่ศึกษาด้านโปรแกรมมิ่งด้วย โปรแกรม 3DEM นี้ก็เป็นโปรแกรมตัวอย่างที่ดี ที่ทำใ้ห้ผู้พัฒนาเป็นที่รู้จัก ถึงแม้คุณ Richard Horne จะไม่เอาดีด้านการค้า แต่ก็เขาก็ฝากชื่อไว้ให้เป็นที่รู้จัก

    3Dem

    • รูปด้านบนนี่เป็นภาพจาก website ของ 3DEM ซึ่งปิดตัวไปแล้ว หลักการจำลองภาพ 3D แบบนี้เรียกว่าการ Drape ถ้าแปลตรงๆก็คือการสวม หลักการก็คือต้องมี DEM ก่อนแล้วหาไฟล์ที่เป็นภาพถ่ายทางอากาศสวมทับลงไป ยิ่งเป็นภาพถ่ายทางอากาศที่ละเีอียดก็ยิ่งสวย ภาพถ่ายอาจจะเป็นภาพถ่ายดาวเทียม(satelite image) หรือภาพถ่ายจากเครื่องบิน (aerial image) ที่สำคัญคือภาพถ่ายทางอากาศต้องมีลักษณะที่อ้างอิงกับค่าพิกัดภูมิศาสตร์จริง (Georeference) ส่วน DEM ถ้าเป็นประเทศไทยมี DEM (ขนาด pixel 30mx30m) ของกรมแผนที่ทหาร หรือจะใช้ของ SRTM DEM (ขนาด pixel 90mx90m) ที่แนะนำวิธีการ Download ได้จาก blog ของผมตอนก่อนๆ

    เตรียมของให้ 3DEM

    • download ภาพถ่าย Landsat 7 ด้วย Global Mapper เป็นวิธีที่ง่ายที่สุด แต่เวลา save ไฟล์ออกมา จะเสียเวลาหน่อย ยิ่งเป็นไฟล์ใหญ่ก็ใช้เวลามากขึ้น
    ภาพถ่ายดาวเทียม Landsat 7

    ภาพถ่ายดาวเทียม Landsat 7

    • download SRTM DEM พื้นที่เีดียวกันกับภาพถ่ายดาวเทียม ใช้วิธี download ผ่าน Google Earth ที่ผมเขียนไปแล้วก็ง่ายสะดวกดี DEM ที่ผมจะใช้เป็นตัวอย่างได้จาก link ของ Google Earth http://srtm.geog.kcl.ac.uk/portal/srtm41/srtm_data_geotiff/srtm_56_10.zip ขนาดของ DEM ไฟล์นี้ค่อนข้างใหญ่ ผมใช้ Global Mapper ทำการ Crop ให้ DEM มีขนาดใกล้เคียงกับภาพถ่ายดาวเทียม Landsat แล้ว save เป็นฟอร์แม็ต GeoTiff

    เริ่มใช้ 3DEM

    • หลังจาก download โปรแกรม 3DEM มาแล้วทำการติดตั้งแล้วก็รัน เมื่อเปิดโปรแำกรมมา จะถามหาไฟล์ DEM เลือกไฟล์ที่เราเซฟไว้
    3DEM01

    เลือก GeoTiff สำหรับ DEM

    • ข้อสังเกต ฟอร์แม็ตที่ 3DEM อ่านได้ยังถือว่าน้อยไปแต่ก็ไม่เป็นไร เมื่อเปิด DEM มาแล้วจะเห็นภาพของ DEM ที่ทำการ Shaded reliedf แล้ว ก็สวยงามดี
    3DEM02

    3DEM แสดง SRTM DEM บริเวณแหลมทวาย พม่า

    การ Drape

    • ต่อไปจะโหลดภาพถ่ายดาวเทียมแล้วสวม (drape) ลงไป ที่เมนูหลัก คลิกที่ Operation > F4 Apply/Remove Map Overlay เลือกไฟล์ภาพถ่ายดาวเทียม Landsat 7
    3DEM04

    เปิดภาพถ่ายดาวเทียม Landsat 7

    • เมื่อ Drape ลงไปจะเห็นโปรแกรม 3DEM แสดงภาพถ่ายดาวเทียม Landsat 7 บน DEM
    3DEM05

    สวมภาพถ่ายลงบน DEM

    • จากรูปด้านบนจะเห็นกรอบสีดำอยู่ด้านล่าง กรอบนี้คือบริเวณที่โปรแกรมจะแสดงภาพ 3D

    3D View

    • ต่อไปจะเปิดโหมดการแสดงผล 3D ที่เมนูหลักคลิกที่ Operation > F2 3D Scene หรือกด F2 ที่คีย์บอร์ดก็ได้ จะเห็น Dialog ให้ตั้งค่าดังรูปด้านล่าง
    3DEM06

    ตั้งค่าการแสดงผล 3D

    • 3DEM จะเปิดหน้าต่าง 3D Scene มาแสดงผลภาพ 3D
    3DEM07

    3D View

    • ภาพ 3D ก็พอดูได้ ข้อเสียถึงแม้เรามี DEM ขนาดใหญ่แต่ 3DEM พยายาม render ให้เฉพาะกรอบสีดำที่ผมกล่าวไปข้างต้น จึงทำให้ภาพ 3D จึงดูขาดๆ ค้านกับความเป็นจริง แต่รวมๆก็ OK นะครับสำหรับเป็น case study ที่เมนู 3D Scene สามารถ save เป็นฟอร์แม็ต 3D VRML ได้ด้วย

    3D VRML

    • ถ้าสนใจ VRML มีโปรแกรมที่เป็น plug in ของ browser ชื่อ Cortona 3D สามารถดาวน์โหลดและติดตั้งได้ที่ http://www.cortona3d.com/bin/cortona3d.msi แล้วใช้เมนูของ browser (ผมใช้ Firefox) คลิกที่เมนู File > Open file… เปิดไฟล์ 3D VRML (.wrl) จะเห็นภาพ 3D ที่พร้อมจะทำ animate ดังรูปด้านล่าง
    Cortona3D

    Cortona 3D บน Firefox

    3D Flyby

    • มาดูความสามารถของ 3DEM ที่ทำ Flyby จะเห็นหน้าต่าง 3D Scene อีกครั้ง ถ้าต้องการดูภาพเคลื่อนไหวก็ดูได้ แต่ถ้าต้องการเซฟเป็นไฟล์ วีดีโอ ต้องปิดหน้าต่าง 3D Scene นี้ก่อน การจะ flyby เราต้องมีเส้นทาง (fly path) ให้โปรแกรม 3DEM ซึ่งสามารถใช้เมาส์คลิกเป็นจุดๆต่อเนื่องตามความพอใจ ที่เมนูหลัก เลือก GPS > Enter GPS Points by mouse จัดการคลิกเพื่อสร้างจุดต่อเนื่องเป็นเส้นทางการบิน ที่รูปด้านล่างสังเกตดูเส้นสีแดงที่ผมสร้างไว้
    3DEM09

    สร้างเส้นทางการบินจำลอง

    • ที่เมนูหลักคลิกที่ Operation > Animate Flyby ตั้งค่าให้ตรงกับความต้องการ
    3DEM08

    ตั้งค่าสำหรับ Flyby

    • เมื่อคลิก OK แล้วป้อนชื่อไฟล์ เลือกชนิดไฟล์วีดีโอเป็น mpg จากนั้นจะมี dialog ถามเกี่ยว codec และ frame rate ตั้งค่าตามค่าปริยาย คลิก OK แล้วหน้าต่าง 3D Scene จะขึ้นมาอีกครั้งและแสดงภาพเคลื่อนไหวบินจำลอง รอจนกระทั่งสิ้นสุด fly path ลองเปิดไฟล์วีดีโอด้วยโปรแกรมพวก Media player
    3DEM10

    3D Flyby animation

    • เมื่อนำไฟล์มาเล่นด้วยโปรแกรมจำพวก Media player ดูแล้ว smooth มากน่าประทับใจไม่แพ้สร้างใน Google Earth
    Categories: GIS, Windows ป้ายกำกับ:, , , ,
    ติดตาม

    Get every new post delivered to your Inbox.

    Join 47 other followers