Month: February 2011

หนทางข้างหน้าของ Traverse Pro ที่พัฒนาด้วย Lazarus (ตอนที่ 2)

พัฒนาและปรับปรุงต่อ

  • ก็ต่อจากตอนที่ 1 ตอนนี้ผมปรับมาเป็นรุ่น 2.0.1 built 5727 พยายามโค๊ดเท่าที่เวลาเอื้ออำนวยครับ ปรับเรื่องตัวหนังสือภาษาไทยและเรื่อง print preview

ปัญหาของตัวหนังสือ Unicode

  • หลังจาก update โปรแกรมมาได้พักหนึ่ง ผมก็พบกับปัญหา 2 เรื่องคือเรื่อง Unicode กับ Meta file (สำหรับการแสดง Print Preview)  เรื่องแรกเนื่องจากเดิมโปรแกรมอยู่บน Delphi ตัวหนังสือที่เห็นบนโปรแกรมทั้งหมดเป็น Ascii เมื่อโปรแกรมมาอยู่บน Lazarus ที่สนับสนุน Unicode ในรูปแบบ UTF8 (Unicode Transformation Format — 8-bit) เต็มตัว ผมค่อนข้างมะงุมมะหราอยู่พักใหญ่ ภาษาไทยที่เคยแสดงได้บนกริด (เช่นตารางป้อนข้อมูล ตารางผลคำนวณ) กลับเป็นภาษามนุษย์ต่างดาว แต่ก็แก้ไขได้ไม่ยาก แต่ที่เหงื่อตกมากๆคือ สัญลักษณ์  (° degree) ที่แสดงผลมุมหลังตัวเลขกลับยากบนวินโดส์ แต่บน Ubuntu ง่ายกว่า บนวินโดส์ใช้ฟอนต์ Tahoma เป็นหลัก ส่วนบน Ubuntu ผมใช้ฟอนต์ Sans
  • สัญลักษณ์ degree ใน ubuntu ทำได้โดยการ typecast ง่ายๆ ด้วยโค๊ด WideChar(#$00B0) ถ้าเปิดโปรแกรม character map จะเห็นว่าหมายเลข Unicode ตรงกันเป็นฐาน 16 คือ 00B0 แต่บนวินโดส์ที่ผมเสียเวลามากหาอยู่นานต้องใข้แบบนี้ UnicodeToUTF8(chr(176)) ผมค่อนข้างงงมาก เพราะสัญลักษณ์บนระบบ Ascii เก่าตัว degree ใช้ตัวเลข 176 แต่มันกลับ work
สัญลักษณ์มุม (degree) แสดงได้ถูกต้องบน Ubuntu

ปัญหาของ Metafile สำหรับ Print Preview

  • โค๊ดดั้งเดิมใช้ Meta File ซึ่งเป็นฟอร์แม็ตถ้าจำไม่ผิดน่าจะออกแบบโดยไมโครซอฟท์ ซึ่งอะไรๆถ้าขึ้นกับไมโครซอฟท์ ก็ไม่ใช่ cross-platform ชื่อเต็มๆของ Meta file ก็คือ Windows Meta file คือ Meta file เป็นฟอร์แม็ตที่สามารถขยายหรือย่อได้โดยไม่เสีย resolution ในทางโปรแกรมมิ่งจะเขียนงานที่จะพิมพ์ลงบน Meta file ก่อนเวลาพิมพ์จริงๆ ก็แค่ลอกภาพจาก Meta file ลงไปที่เครื่องพิมพ์ ผมพยายามหาโค๊ดใหม่ของ Meta file ที่สนับสนุน cross-platform ก็โชคดีมีคนเขียนไว้ค่อนข้างดี ถ้าสนโปรแกรมมิ่ง free pascal เข้าไปดูและดาวน์โหลดได้ Lazarus Meta File
  • ผมโค๊ด Print Preview ใหม่ ลองดูหน้าตาดังรูปด้านล่าง
Print Preview ที่ดูเรียบง่ายกว่าเดิม (แสดงทั้งหน้า) capture จาก Ubuntu
  • ลอง print บนวินโดส์ไม่มีปัญหาพิมพ์ออกเครื่องพิมพ์ได้ปกติ แต่ถ้าใช้ driver เป็นเครื่องพิมพ์จำพวก pdf  ในวินโดส์ OK แต่ใน ubuntu ผมใช้ driver เรียกว่า cups-pdf ยังไม่ work ส่วน printer ใน Ubuntu ยังไม่ได้ลอง ตอนนี้ผมลองขยายหน้าดูเป็น 200 % จะเห็นดังรูปด้านล่าง
เลือกโหมดการแสดงผลแบบขยายหน้ากระดาษเป็น 200%

ปรับการจัดหน้ากระดาษ Page Setup

  • ปรับปรุงโค๊ดเดิมจัดหน้ากระดาษเช่นตั้งกั้นหน้าซ้ายและขวา บนและล่าง เขียน header และ footer ได้ ลองดูภาพด้านล่างครับ
จัดหน้ากระดาษสำหรับเครื่องพิมพ์
  • ผมลองตั้งกั้นหน้าซ้ายขวาบนล่างแล้วใส่ header, fotter ดังรูปด้านบน ลองดูได้ผลดังรูปด้านล่าง
ภาพก่อนพิมพ์แสดง header ภาษาไทยไม่มีปัญหาสำหรับวินโดส์และ ubuntu

ปรับปรุง Plot Viewer

  • งานวงรอบเมื่อคำนวณเรียบร้อยแล้ว งานอยู่ในเกณฑ์ขั้นต่อไปคือตรวจดูรูปร่างของวงรอบ โค๊ดในส่วนนี้ผมได้เข้าไปแก้ไขได้นิดเดียว ตัวหนังสือแสดงชื่อหมุดเมื่อเปิดครั้งแรกตัวหนังสือยังโอเค แต่พอซูมหรือแพนตัวหนังสือพลิกไป 90 องศา ที่จัดไปแล้วคือเรื่อง icon, status bar ที่เหลือยังต้องแก้ไขต่อไป ผมพยายามหา component ที่เป็น vector พบแล้วแต่ยังไม่รู้นำมาใช้จะเป็นอย่างไร สามารถ export เป็น SVG, DXF ได้
Plot viewer แสดง figure รูปร่างของงานวงรอบ
ตัวหนังสือพลิกกลับลงมา 90 องศา

แก้ไขปัญหาเรื่องฟอนต์ไทยบนลินุกซ์

  • เล่นเอาเหงื่อตก ตอน print preview ตัวหนังสือภาษาไทยก็แสดงผลอยู่ดีๆ แต่พอเวลา print หรือ print เป็น pdf ด้วยไดรเวอร์ cups/cups-pdf ตัวหนังสือไทยก็หายวับไปกับตา สาเหตุที่น่าจะเป็นไปได้ ผมว่าน่าจะมาจาก component ที่ติดมากับ Lazarus คือ Printer4Lazarus แนวทางแก้ไขของผมใน linux ใช้การเขียนภาพเข้าไปโดยตรง แบบนี้ข้อเสียข้อแรกก็คือ ไม่สามารถเลือก Text ได้จากโปรแกรม pdf editor เช่น pdfedit แต่ถ้าไปรันโปรแกรมนี้บนวินโดส์ก็ไม่มีปัญหา ข้อเสียข้อที่สองคือทำงานช้ากว่าเดิม
  • มาลองดูโค๊ด โมดูลตัวนี้จะรับ object ก่อนพิมพ์ในรูปแบบ Meta File ผ่านตัวแปร AMetafile และต้องใช้ directive มาช่วยแยกโค๊ด linux ออกจากวินโดส์
procedure TPrintPreviewForm.PrintMetafile(const ARect : types.TRect;
AmetaFile : TGraphic);
var
bm : TBitmap;
begin
{$IFDEF LINUX}
bm := TBitmap.Create;
try
(* Use TBitmap to draw canvas from TlmfImage (Meta File *)
(* To solve the problem of Thai font on Linux *)
(* The following codes implemented for Linux *)

(* The disadvantage of this way *)
(* 1. Very slow *)
(* 2. In pdf file, all the result are images not text object *)
bm.Width := ARect.Right - ARect.Left;
bm.Height := ARect.Bottom - ARect.Top ;
bm.Canvas.Brush.Style := bsSolid;
bm.Canvas.Brush.Color := clWhite;
bm.Canvas.Rectangle(ARect);
TlmfImage(AMetafile).Draw(bm.Canvas, ARect);
Printer.Canvas.StretchDraw(Arect, bm);
{$ELSE}
(* The following codes that doesn't work with Thai font on Linux *)
(* but work fine on Windows *)
TlmfImage(AMetafile).Draw(Printer.Canvas, ARect);
{$ENDIF}
{$IFDEF LINUX}
finally
bm.Free;
end;
{$ENDIF}
end;
  • ลองเปิดด้วย Document Viewer ได้ผลดังรูปด้านล่าง
ทดสอบเปิดด้วย Document Viewer บน Ubuntu

หนทางข้างหน้า

  • ปรับปรุง Plot Viewer ให้สามารถแสดงผลได้ถูกต้อง ปรับปรุงเรื่องสามารถ export ไปอยู่ในรูปแบบ DXF, SVG
  • ปรับปรุงให้สามารถ Save as ผลการคำนวณวงรอบให้อยู่ในรูปแบบ xml หรือไม่ก็ xls สามารถเปิดได้ด้วย Excel หรือ Openoffice calc ได้ ในตอนนี้หา component มาช่วยยังไม่ได้ เขียนเิองเป็นไปไม่ได้เพราะหนักหนาเกินไป
  • ปรับให้สามารถอ่านไฟล์ข้อมูลเดิมได้ (จากโปรแกรม Traverse Pro รุ่นเดิมที่เขียนด้วย Delphi) ที่ผมบอกไว้ก่อนหน้านี้คือ ไม่สามารถอ่านข้อมูลไฟล์ไบนารีในรูป type ที่เป็น extended ได้ (สำหรับโปรแกรมรุ่นก่อนพัฒนาด้วย Delphi ไม่มีปัญหากับการอ่าน type ข้อมูลแบบนี้)

หนทางข้างหน้าของ Traverse Pro ที่พัฒนาด้วย Lazarus (ตอนที่ 1)

ทำไมต้องพัฒนาและปรับปรุง

  • โปรแกรมคำนวณวงรอบ (Traverse Pro) สำหรับช่างสำรวจ/ช่างโยธา ที่ผม post ไว้ใน blog และเปิดให้ดาวน์โหลด ก็มีคนเข้ามาดูและดาวน์โหลดไปทดลองใช้กันพอสมควร ถ้าโปรแกรมจะมีประโยชน์บ้างก็ขอเป็นวิทยาทานให้กับช่างสำรวจ/ช่างโยธาในเมืองไทยเรา ผมใช้ Ubuntu อยู่หลายปีก็รู้สึกว่าชอบ ก็คงเหมือนแฟนๆ Ubuntu ท่านอื่นๆ ที่รัก Ubuntu ที่นี้ผมก็มีความรู้สึกว่าโปรแกรมที่ผมเคยพัฒนาไว้บนวินโดส์น่าจะนำมาใช้ได้ในลินุกซ์ Ubuntu จะใช้ wine ก็กระไรอยู่เคยลองแล้วมันรู้สึกว่าแปลกแยกใช้ได้ไม่เต็มฟีเจอร์
  • หลังจากไม่ได้ใช้ Delphi ในการพัฒนาโปรแกรมซึ่งก็ผ่านไปหลายปี จนมาพบกัน Lazarus ได้สัก 2-3 ปีพบว่ามีความเสถียรอยู่ในเกณฑ์ดีแล้ว มีไลบรารีให้เลือกใช้ได้หลายอย่าง หลังจากเขียนอะไรๆบน Lazarus ในระยะเวลาหนึ่ง ผมได้นำโค๊ดที่เขียนไว้ด้วย Delphi มา port เป็นโค๊ดของ Lazarus ก็มีปัญหาอยู่บ้าง แต่ก็อยู่ในวิสัยจะแก้ไขได้ แต่ต้องใช้เวลาพอสมควร เนื่องจากโค๊ดเดิมเขียนได้อิงกับวินโดส์ platform ไว้มาก บางอย่างต้องโยนทิ้งแล้วเขียนใหม่ทั้งหมด

Traverse Pro ในรูปแบบ cross-platform

  • ผมลองโค๊ดที่ปรับปรุงจากของเดิม มาลองรันด้วย Lazarus ใช้ widget เป็น GTK2  ก็ปรากฎดังรูป screen shot ที่เอามาให้ดูก่อนดังรูปด้านล่าง (capture จาก Ubuntu) บางอย่างยังไม่เรียบร้อยต้องแก้โค๊ดต่อไป
Traverse Pro โฉมใหม่ (ตรง statusbar ยัง error อยู่ ansi ตึกันกับ unicode)
หน้าผลลัพธ์การคำนวณจัดหน้าตาใหม่ให้ดูเรียบง่าย สบายตา (ตรง No. ยังไม่แสดงตัวเลข)
เพิ่มแท็บ Print Out ให้ดูคล้ายกับรายการคำนวณที่พร้อมจะ print
มาดู Print Out บนวินโดส์เปรียบเทียบกันกับที่เห็นบน Ubuntu ตัวหนังสือเป็น Arial ขนาดตัวหนังสือภาษาไทยกับอังกฤษดูไม่สมดุลคือภาษาไทยตัวหนังสือจะเล็กกว่า
ภาษาไทยระบบบนฟอร์มและคอนโทรล ดูคมชัดใน Ubuntu แต่ตัวหนังสืออ้วนกว่าวินโดส์
Plan Viewer ที่โค๊ดยังไม่ clean ตัว Icon สลับลำดับตรงกันข้ามจากซ้ายไปขวา
สภาวะแวดล้อมของ Lazarus บน Ubuntu (ฟอนต์จะคมอ่านง่าย สวยกว่าในวินโดส์มาก)
สภาวะแวดล้อมของ Lazarus บนวินโดส์ XP

หนทางข้างหน้า (Road Map) ของ Traverse Pro

  • การเชื่อมต่อ MS Excel ผ่าน Automation จะถูกตัดทิ้ง ผมจะอาจจะเขียนผลลัพธ์การคำนวณลงไฟล์เป็นฟอร์แม็ต Excel
  • การเชื่อมต่อกับ Autocad ผ่าน Automation จะถูกยกเลิก ผมจะใช้การเขียน Layout plan ของวงรอบลงไฟล์ DXF แทน
  • ปรับปรุง Icon ให้ดูดีกว่าเดิม ปรับปรุง Status bar
  • ปรับปรุง Plan Viewer แสดง Layout plan ของวงรอบให้ดึกว่าเดิม
  • เขียน Print Preview ใหม่ทั้งหมดเพราะโค๊ดเดิมใช้ไม่ได้
  • แก้ไขปัญหาเรื่องการอ่านไฟล์ข้อมูลงานวงรอบของ Lazarus ที่มีปัญหากับตัวเลขทศนิยมแบบ extended
  • หาคนเขียนคู่มือการใช้งานให้ ซึ่งถ้าผมเขียนเองจะได้ของด้อยคุณภาพ(ฮา)

ระยะเวลาในการปรับปรุงตาม Road Map

  • ปกติถ้ามี Road map ส่วนใหญ่จะกำหนดเวลาว่าฟีเจอร์นั้นนี่จะเสร็จเมื่อไหร แต่ของผมกำหนดไม่ได้เพราะการแก้ไขต้องใช้เวลาว่าง ซึ่งในขณะนี้งานค่อนข้างรัดตัวมาก แต่อย่างไรก็ตามเมื่อนำมาเขียนประกาศกันแล้ว ก็คงเป็นสัญญากลายๆ ว่าจะต้องได้ใช้งานในรูปโฉมใหม่ ไฉไลกว่าเดิมแน่นอนครับ

รุ่นและการปรับปรุง(Release)

  • รุ่น 2.0.1 build 5687 ปรับปรุงเรื่อง icon การแสดงผล Status bar ในวินโดส์ใช้ได้แล้ว แต่ในลินุกส์ยังมีปัญหา
ปรับ icon ปรับการแสดงผล status bar
  • รุ่น 2.0.1 build 5691 ปรับตัวหนังสือเป็น Unicode บน status bar แสดงผลได้ถูกต้องบนลินุกส์ Ubuntu
ปรับการแสดงผลใน status bar ในลินุกส์ Ubuntu ให้แสดงภาษาไทยได้ถูกต้อง

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 ได้  อนาคตผมก็คิดว่าจะมีโปรแกรมแบบนี้ให้ใช้ได้อีกมากมาย สามารถทดแทนโปรแกรมเชิงพาณิชย์ได้พอสมควร