หากท่านเคยใช้งาน gdal2tiles กับข้อมูลภาพถ่ายดาวเทียมแบบเต็มระวาง มักจะพบว่าเมื่อเปิดข้อมูลภาพเหล่านั้นกับโปรแกรม Google Earth มักจะปรากฏขอบดำบริเวณภาพ สาเหตุก็เนื่องมาจากวงโคจรของดาวเทียมนั้นไม่ได้อยู่ในแนวเหนือใต้จริงๆแต่มีการเยื้องออกจากเส้นละติจูดต่างๆทำให้การบันทึกข้อมูลนั้นเป็นแนวเอียงวันนี้ขอนำเสนอเทคนิคการลบขอบดำออก (เมื่อต้องการนำภาพไปเปิดกับโปรแกรม Google Earth) ด้วยโปรแกรม gdalwarp โดยก่อนอื่นเราต้องทราบค่าบริเวณขอบดำเหล่านี้ก่อน (ปกติเป็นศูนย์) และเมื่อเราทราบแล้วเราก็จะบอกให้โปรแกรมทราบว่าค่าเหล่านี้เป็นค่าที่ไม่มีข้อมูล (No data) ให้จัดการทำให้เป็นชั้นข้อมูลเอลฟา (Alpha Layer) ซึ่งโปรแกรมด้านกาประมวลผลภาพส่วนใหญ่จะใช้เจ้าชั้นข้อมูลเอลฟานี้แทนค่าโปร่งใส (Transparent layer) นั่นเอง ตัวอย่างการใช้งานมีดังนี้ครับ
>>gdalwarp -srcnodata [value] -dstalpha [input_file] [output_file]
ตัวอย่างการมใช้งานมีดังนี้่ครับ
>>gdalwarp -srcnodata 0 -dstalpha abc.tif abc_alpha.tif
Sunday, November 15, 2009
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 นี้ดูนะครับ)
ตัวอย่างนี้สมมุติว่าผมมีภาพสีความละเอียด 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
การทำงานให้ใช้คำสั่ง 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
Subscribe to:
Posts (Atom)