ค้นหาข้อมูลในบล็อก (Search in this blog)

Wednesday, September 30, 2009

gdalwarp แบบกำหนดค่าพิกัดจุดควบคุม (ของฟรีและดีก็มีในโลก)

วันนี้ขอเสนอ การใช้งาน gdalwarp แบบใช้ค่าพิกัดจุดควบคุม ตัวอย่างของการทำงานนี้คือ วิธีการแปลงระบบพิกัดจากข้อมูลภาพที่ไม่มีระบบพิกัดให้มีระบบพิกัดตามต้องการ เช่น แปลงข้อมูลภาพแผนที่ภูมิประเทศที่ผ่านการสแกนให้มีระบบพิกัด หรือข้อมูลภาพถ่ายดาวเทียมที่ไม่มีค่าพิกัดให้มีค่าพิกัด เป็นต้น
ขั้นตอนการทำงานโดยย่อมีดังนี้ครับ

1. กำหนดค่าพิกัดของจุดควบคุม
ค่าพิกัดของจุดควบคุมนั้นเป็นค่าที่ได้จาก การรังวัดบนภาพและการรังวัดค่าพิกัดบนพื้นดิน (อาจจะใช้การวัดจากแหล่งข้อมูลอื่น เช่น วัดจากข้อมูลภาพถ่ายทางอากาศ) รูปแบบข้อมูลที่จัดเก็บมีดังนี้ครับ
Image Coordinate (x, y) และ Ground Coordinate (E, N) เช่น 1 1 98.85231 18.93516 ซึ่งหมายถึง ข้อมูลภาพที่มีพิกัด (1,1) นั้นจะมีพิกัดพื้นดิน (98.85231,18.93516 ) เป็นต้น สำหรับการทดลองครั้งนี้ผมได้ลองใช้จุดควบคุมทั้งสิ้น 4 จุดดังนี้
จุดที่ 1 มีค่าพิกัด 1 1 98.85231 18.93516
จุดที่ 2 มีค่าพิกัด 12000 1 99.10726 18.89724
จุดที่ 3 มีค่าพิกัด 12000 12000 99.05081 18.67978
จุดที่ 4 มีค่าพิกัด 1 12000 98.79618 18.71761
2. เพิ่มค่าพิกัดของจุดควบคุมใส่ข้อมูลภาพ
เป็นการเพิ่มข้อมูลเกี่ยวกับจุดควบคุมเข้าสู่ข้อมูลภาพ การทำงานขั้นตอนนี้สามารถทำได้โดยการใช้งานผ่าน gdal_translate ดังตัวอย่างดังนี้
gdal_translate -gcp [x y E N] ... input_file output_file
ตัวอย่งเช่น
>>gdal_translate -gcp 1 1 98.85231 18.93516 -gcp 12000 1 99.10726 18.89724 -gcp 12000 12000 99.05081 18.67978 -gcp 1 12000 98.79618 18.71761 sample.tif sample_gcp.tif
3. การแปลงระบบพิกัด
เป็นขั้นตอนที่ใช้ข้อมูล(ค่าพิกัด)ที่อยู่ในข้อมูลภาพมาทำการแปลงระบบพิกัดการใช้งานสามารถทำงานได้ผ่านโปรแกรม gdalwarp ดังตัวอย่างดังนี้
>>gdawarp -r cubic -t_srs epsg:4326 sample_gcp.tif sample4326.tif

ข้อพึงระวัง
  • โปรแกรมยังไม่สามารถแสดงเศษเหลือ (Residual) ของจุดควบคุมได้ทำให้เราไม่ทราบว่าจุดควบคุมเหล่านั้นมีความคลาดเคลื่อนมากน้อยเพียงใด

2 comments:

  1. 12000 มีที่มายังไงครับ

    ReplyDelete
  2. 12000 คือพิกัดภาพครับ เช่น จุดที่ 2 คือ Line (แถว)ที่ 12000 และ Sample (คอลัมน์)ที่ 1 ครับ

    ReplyDelete