Monday, November 9, 2009

fwtools 2.4.6 ออกแล้วครับ !!!

วันนี้ได้ลองเข้าไปดูความเคลื่อนไหวของโปรแกรม fwtools เนื่องจากต้องไปช่วยอบรมเรื่อง Digital Image Processing ที่ สทอภ. ปรากฏว่ามีเวอร์ชันใหม่ออกมาแล้วคือ 2.4.6 สามารถดาวน์โหลดได้ ที่นี่ ครับ

Saturday, November 7, 2009

การลดรายละเอียดข้อมูลภาพและการเปลี่ยนภาพสีให้เป็นภาพขาวขดำ (เบื้องต้น) ด้วย GDAL

วันนี้ขอนำเสนอการลดรายละเอียดข้อมูลภาพ (Reduce resolution) และการแปลงภาพสีให้เป็นภาพขาว-ดำ (Color to Grey) อย่างง่ายด้วย gdalwarp (ลดรายละเอียด) และ gdal_translate (เปลี่ยนจากภาพสีให้เป็นภาพขาว-ดำ)

ตัวอย่างนี้สมมุติว่าผมมีภาพสีความละเอียด 1 เมตร ต้องการแปลงให้เป็นภาพขาว-ดำ ที่มีความละเอียดจุดภาพ 10 เมตร (จะเห็นว่าการทำงานนี้ประกอบด้วย 2 ขั้นตอนนะครับคือ ลดรายละเอียดและแปลงระบบสี)

ผมขอเริ่มด้วยการลดรายละเอียดข้อมูลภาพก่อนด้วย gdalwarp ซึ่งใช้คำสั่งดังนี้

>>gdalwarp -tr 10 10 -r cubic sample.tif resize.tif

โดย option "-tr" หมายถึง การกำหนดขนาดของจุดภาพ (GSD) ของไฟล์ผลลัพธ์ที่ต้องการ
และ option "-r" หมายถึง วิธีการ resampling จากตัวอย่างผมเลือกใช้วิธี Cubic Convolution

หลังจากได้ภาพที่ลดรายละเอียดจุดภาพลงแล้วเราจะทำการแปลงภาพสีให้เป็นภาพขาว-ดำด้วยโปรแกรม gdal_translate ดังนี้ครับ

>>gdal_translate -b 1 resize.tif resize_grey.tif

โดย option "-b" หมายถึง ให้เลือกให้เลือกเอาเฉพาะช่วงคลื่น (Band) ที่ต้องการเท่านั้น (จากตัวอย่างคือเอาเฉพาะช่วงคลื่นที่ 1 เท่านั้น)

ผลลัพธ์ที่ได้จากตัวอย่างนี้คือภาพต้นฉบับ (ภาพสี 3 ช่วงคลื่นขนาดจุดภาพ 1 เมตร) จะถูกแปลงให้เป็นภาพขาว-ดำ (1 ช่วงคลื่น) ที่มีความละเอียดจุดภาพ 10 เมตร และหากท่านใดต้องการทำกระบวนการนี้กับข้อมูลภาพจำนวนมากก็สามารถใช้การทำงานแบบ Batch processing ได้ครับ (ลองหาตัวอย่างการใช้งาน Batch processing ใน Blog นี้ดูนะครับ)

Friday, November 6, 2009

การแปลง Format ของข้อมูลเวคเตอร์ด้วย GDAL/OGR

วันนี้ขอนำเสนอการแปลงรูปแบบข้อมูลเวคเตอร์ เช่น การแปลงไฟล์ DGN ให้เป็น KML เป็นต้น
การทำงานให้ใช้คำสั่ง ogr2ogr ซึ่งมี syntax การใช้งานดังนี้ครับ

>>ogr2ogr -option output_file input_file

โดย option ที่สำคัญมีดังนี้
-f "format_name" ใช้สำหรับการระบุ format ของผลลัพธ์ที่ต้องการ เช่น -f "KML" หรือ -f "ESRI Shapefile" เป็นต้น
-s_srs ใช้สำหรับการระบุระบบอ้างอิงทางตำแหน่งของไฟล์ต้นฉบับ เช่น -s_srs epsg:4326 หรือ -s_srs epsg:32647 เป็นต้น
-t_srs ใช้สำหรับการระบุระบบอ้างอิงทางตำแหน่งของไฟล์ผลลัพธ์

ตัวอย่างการใช้งาน

>>ogr2ogr -f "KML" index.kml index.shp

นอกจากนี้เรายังสามารถแปลงระบบอ้างอิงทางตำแหน่ง (ระบบพิกัด) พร้อมกับการแปลง format ในคำสั่งเดียวดังนี้

>>ogr2ogr -s_srs epsg:32647 -t_srs epsg:4326 -f "KML" index.kml index.shp

Thursday, October 22, 2009

ขอเชิญรับฟังการบรรยายพิเศษหัวข้อ "Advances in Photogrammetry : Airborne, Trerrestrial and Mobile Laser Scanning"

เรียนเชิญทุกท่านเข้ารับฟังการบรรยายพิเศษในหัวข้อ "Advances in Photogrammetry : Airborne, Trerrestrial and Mobile Laser Scanning” โดย Professor Dr. George Vosselmann (Editor-in-Chief of the ISPRS Journal of Photogrammetry and Remote Sensing) จากสถาบัน ITC, Netherland.
กำหนดการมีดังนี้ครับ
วันที่ 29 ตุลาคม 2552
9:00-11:00 Special Lecture at the Faculty of Engineering , ( 200 Academician and Professionals)
“Advances in Photogrammetry : Airborne, Trerrestrial and Mobile Laser Scanning”

Thursday, October 15, 2009

การทำ Histogram Equalization ด้วย gdalenhance (ของฟรีและดีก็มีในโลก)

วันนี้ขอเสนอเทคนิคการทำ Histogram Equalization ของข้อมูลาพด้วย GDAL (gdalenhance) ตัวอย่างการใช้งานเช่น การแปลงข้อมูลภาพแบบ 16bit ให้เป็น 8bit เป็นต้น โดยโครงสร้างคำสั่งการใช้งาน gdalenhance มีดังนี้ครับ

>>gdalenhance -ot [dataType] -equlize input_file out_file

ส่วนตัวอย่างการทำงานมีดังนี้

>> gdalenhance -ot Byte -equlaize dem16b.tif dem8b.tif

Tuesday, October 13, 2009

การผสมสี (Color composition)

จากคราวที่แล้วได้แนะนำการสร้างแผนที่เฉดสี ครั้งนี้มีตัวช่วยสำหรับการกำหนดค่าของแม่สีต่างๆตามต้องการดังภาพครับ

File:AdditiveColor.svg
(อ้างอิงจาก http://en.wikipedia.org/wiki/File:AdditiveColor.svg)

จากภาพข้างต้นสามารถสรุปได้ดังนี้ครับ
สีแดง ค่าที่กำหนดคือ 255 0 0
สีเขียว ค่าที่กำหนดคือ 0 255 0
สีน้ำเงิน ค่าที่กำหนดคือ 0 0 255
สีเหลือง ค่าที่กำหนดคือ 255 255 0
สีฟ้า ค่าที่กำหนดคือ 0 255 255
สีม่วงแดง ค่าที่กำหนดคือ 255 0 255
สีขาว ค่าที่กำหนดคือ 255 255 255

หากต้องการสีมากกว่านี้อาจลดค่าของแม่สีหลักที่ผสมกัน เช่นต้องการสีเหลือง (แดง +เขียว) อ่อนให้ลดค่าของแม่สีแดงหรือเขียวลงจาก 255 เป็น 200 เป็นต้น

การสร้างแผนที่เฉดสีสำหรับข้อมูลแบบจำลองระดับสูงเชิงเลขด้วย GDAL (ของฟรีและดีก็มีในโลก)

วันนี้ขอนำเสนอวิธีการสร้าง Color relief สำหรับข้อมูลแบบจำลองระดับสูงเชิงเลข (Digital Elevation Model - DEM) ด้วย GDAL อย่างง่าย โดยหลักการที่สำคัญของการทำงานนี้คือ การแยกความแตกต่างด้านความสูงด้วยสีต่างๆ หรือการกำหนดค่าระดับความสูงและค่าของสีให้กับพื้นที่ต่างๆ เช่น พื้นที่ภูเขา (ความสูงมาก) แทนด้วยสีแดง ส่วนพื้นที่ราบ (ความสูงน้อย) แทนด้วยสีเขียว และพื้นที่ไม่สูงมากนักแทนด้วยสีเหลือง เป็นต้น
การทำงานก็สามารถทำได้โดยการใช้คำสั่งดังนี้ครับ

>>gdaldem color-relief input_file color_text_file output_color_relief_map

โดยที่

gdaldem คือ คำสั่งที่ใช้ทำงาน
color-relief คือ option สำหรับการสร้างแผนที่เฉดสี (แปลจากคำว่า color relief map)
input_file คือ ไฟล์แบบจำลองระดับสูงเชิงเลข (DEM)
color_text_file คือ ไฟล์ที่กำหนดค่าความสูงและค่าของแม่สีต่างๆ
output_color_relief_map คือ ไฟล์ผลลัพธ์ที่ได้ซึ่งก็คือ แผนที่เฉดสีนั่นเอง

วิธีการสร้าง color_text_file มีดังนี้ครับ
คอลัมน์แรกคือค่าความสูงที่กำหนด คอลัมน์ที่สองคือ ค่าของแม่สีแดง คอลัมน์ที่สามคือ ค่าของแม่สีเขียวและคอลัมน์ที่สี่คือ ค่าของแม่สีน้ำเงิน ดังนี้

Height Red Green Blue
... ... ... ...
... ... ... ...
... ... ... ...

ตัวอย่างการใช้งานจริงมีดังนี้
300.0 20 255 150
325.0 20 255 80
350.0 20 255 00
375.0 255 255 0
400.0 255 200 00
425.0 255 50 0
450.0 255 0 0
โดยข้อมูลเหล่านี้ต้องจัดเก็บในรูปไฟอักขระ (Text file) ธรรมดาทั่วไป (*.txt)
มาดูตัวอย่างการใช้งานจริงกันนะครับ
ผมมีไฟล์แบบจำลองระดับสูงเชิงเลขดังภาพนี้

และสร้าง color_text_file โดยผมได้กำหนดค่าความสูง (Height) ค่าของแต่ละแม่สี (Red Green Blue - RGB) และบันทึกในรูป Text file ชื่อ dem_legend.txt ดังนี้

หลังจากนั้นผมจึงใช้คำสั่ง gdaldem เพื่อสร้างแผนที่เฉดสีดังนี้

>>gdaldem color-relief dem.tif dem_legend.txt dem_relief.tif

ผลลัพธ์ที่ได้มีดังภาพตัวอย่างดังนี้