GCP และงานสนาม
UAT 361 เทคโนโลยีระบบอากาศยานไร้คนขับเพื่อการสำรวจ ทำแผนที่ และตรวจสอบ
บทเรียน
เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ
- แยกบทบาทของตำแหน่งภาพจาก RTK/PPK จุดควบคุมภาคพื้น (GCP) และจุดตรวจ (checkpoint)
- วางแผนการกระจายจุดและทำทะเบียนจุดที่ตรวจย้อนกลับได้
- แปลงความสูงเหนือทรงรีเป็นความสูงออร์โทเมตริกและหักความสูงเสาอย่างถูกต้อง
- ตรวจข้อมูลก่อนออกจากพื้นที่และตัดสินใจบินซ่อมจากหลักฐาน
ทำไมต้องรู้
ภาพที่คมชัดยังเลื่อนออกจากตำแหน่งจริงได้ทั้งผืน โดรนที่มี RTK ช่วยให้ตำแหน่งกล้องดีขึ้น แต่แผนที่ปลายทางยังผ่านการประมาณกล้อง การสร้างพื้นผิว และการแปลงพิกัดอีกหลายขั้น การจะบอกผู้ใช้ว่าแผนที่ “ถูกต้อง” จึงต้องมีจุดบนพื้นที่รังวัดไว้อย่างเป็นระบบ และความผิดพลาดที่เกิดในสนาม เช่น ลืมหักความสูงเสา หรือใช้ความสูงคนละระบบ จะทำให้ทั้งงานคลาดเคลื่อนโดยไม่มีใครสังเกต
ตำแหน่งภาพ GCP และจุดตรวจ
แยกหลักฐานเรื่องตำแหน่งเป็นสามกลุ่ม แต่ละกลุ่มต้องมีที่มา หน่วย ระบบอ้างอิง และสถานะคุณภาพ
| ข้อมูล | บทบาท | หลักฐานที่ต้องเก็บ |
|---|---|---|
| ตำแหน่งภาพ | บอกตำแหน่งกล้องขณะถ่าย ช่วยการประมวลผล | เวลา พิกัด สถานะคุณภาพ และวิธี RTK หรือ PPK |
| GCP (ground control point) | จุดบนพื้นที่รู้พิกัด ใช้ ปรับ แบบจำลอง | วิธีรังวัด พิกัด ภาพเป้า และการทำเครื่องหมายในภาพ |
| จุดตรวจ (checkpoint, CP) | จุดบนพื้นที่รู้พิกัด แต่ ไม่ใช้ปรับ กันไว้ตรวจผล | วิธีรังวัด และค่าคลาดเคลื่อนหลังประมวลผล |
RTK (real-time kinematic) แก้ตำแหน่งระหว่างบินด้วยข้อมูลจากสถานีฐานหรือเครือข่าย ส่วน PPK (post-processed kinematic) บันทึกข้อมูลดิบแล้วคำนวณตำแหน่งภายหลัง สถานะ “fixed” บนจอบอกคุณภาพของการแก้สัญญาณ แต่ไม่ครอบคลุมความผิดพลาดจากพิกัดสถานีฐานผิด การตั้งกล้อง หรือการประมวลผลภาพ
จุดตรวจต้องเป็นอิสระ
ค่าคลาดเคลื่อนที่ GCP บอกเพียงว่าแบบจำลองเข้ากับจุดที่ใช้ปรับได้ดีเพียงใด ไม่ใช่ผลตรวจอิสระ ถ้านำจุดตรวจไปช่วยปรับแบบจำลอง จุดนั้นไม่ใช่หลักฐานอิสระอีกต่อไป ต้องกันจุดตรวจชุดใหม่ไว้
วางและรังวัดจุด
เป้าต้องเห็นชัดและชี้จุดเดียวกันได้ในหลายภาพ เลือกพื้นมั่นคง ไม่ถูกใบไม้หรือรถบัง และไม่ใช้เงาเป็นจุดอ้างอิง กระจายจุดให้ครอบคลุมขอบและกลางพื้นที่ รวมทั้งที่สูงและต่ำ ไม่กระจุกอยู่ใกล้จุดขึ้นบินด้านเดียว คู่มือ OpenDroneMap แนะนำให้มี GCP อย่างน้อย 5 จุด (8–10 จุดสำหรับงานใหญ่) และแต่ละจุดควรเห็นในภาพอย่างน้อย 3 ภาพ แต่ไม่มีจำนวนสากลที่ใช้ได้กับทุกงาน จำนวนและการกระจายต้องมาจากขนาดพื้นที่ ภูมิประเทศ และเกณฑ์ที่ตกลงไว้
ระบบความสูง
GNSS ให้ ความสูงเหนือทรงรี () ซึ่งเป็นผิวทางคณิตศาสตร์ แต่งานสำรวจและวิศวกรรมใช้ ความสูงออร์โทเมตริก () ที่อ้างอิงระดับน้ำทะเลเฉลี่ย สองค่านี้ต่างกันด้วย ค่าความสูงยีออยด์ () ตามความสัมพันธ์ที่ NOAA NGS อธิบายไว้
ประเทศไทยมีแบบจำลองยีออยด์ TGM2017 ที่กรมแผนที่ทหารพัฒนาร่วมกับมหาวิทยาลัยเชียงใหม่ ใช้แปลงความสูงจาก GNSS เป็นความสูงออร์โทเมตริก ต้องใช้แบบจำลองที่เข้ากับ datum ของงาน และห้ามนำค่า ในตัวอย่างไปใช้กับพื้นที่จริง
ตัวอย่างที่ 1 ทะเบียนจุดและการแปลงความสูง
เครื่องรับรายงานความสูงของเสาอากาศ ต้องหักความสูงเสา ก่อน แล้วจึงแปลงเป็นความสูงออร์โทเมตริก ค่า ในตัวอย่างเป็นค่าสมมติ
points = [ # id, บทบาท, E, N, h เสาอากาศ (m), ความสูงเสา p (m), เครื่องหักเสาแล้วหรือยัง
("G1", "control", 500.00, 1000.00, 52.430, 2.000, False),
("G2", "control", 700.00, 1010.00, 53.105, 2.000, False),
("C1", "check", 540.00, 1030.00, 50.610, 2.000, True),
("C2", "check", 660.00, 1120.00, 52.880, 1.800, False),
]
GEOID_N = -30.000 # ค่าสมมติสำหรับฝึก ต้องอ่านจาก TGM2017 ตามตำแหน่งจริง
for pid, role, e, n, h_ant, pole, corrected in points:
h_ground = h_ant if corrected else h_ant - pole
ortho = h_ground - GEOID_N
print(f"{pid} {role:<7} h_ground {h_ground:.3f} m H {ortho:.3f} m")
controls = [p[0] for p in points if p[1] == "control"]
checks = [p[0] for p in points if p[1] == "check"]
print("used for adjustment:", controls, "| kept for checking:", checks)
G1 control h_ground 50.430 m H 80.430 m
G2 control h_ground 51.105 m H 81.105 m
C1 check h_ground 50.610 m H 80.610 m
C2 check h_ground 51.080 m H 81.080 m
used for adjustment: ['G1', 'G2'] | kept for checking: ['C1', 'C2']
จุด C1 เครื่องหักความสูงเสาแล้ว จึงห้ามหักซ้ำ ถ้าหักซ้ำ ความสูงจะต่ำไป 2 m ทั้งจุด ทะเบียนจึงต้องมีช่องบอกว่าหักเสาแล้วหรือยัง และแยกรายการ GCP กับจุดตรวจตั้งแต่ต้น
ตรวจข้อมูลก่อนกลับ
ก่อนเก็บอุปกรณ์ ต้องตรวจว่าภาพเปิดได้ครบ เวลาและกล้องถูก เป้าเห็นชัดในภาพ ขอบพื้นที่มีภาพครบ และสำรองข้อมูลแล้ว การกลับมาบินใหม่ภายหลังเสียค่าใช้จ่ายสูงกว่าการตรวจในสนามหลายเท่า
ตัวอย่างที่ 2 ตรวจจุดตรวจหลังประมวลผลรอบแรก
เทียบพิกัดจากแบบจำลองกับค่ารังวัดของจุดตรวจสามจุด (ข้อมูลสังเคราะห์ในระบบท้องถิ่น)
import math
checks = { # id: (ค่ารังวัด E, N, Z), (ค่าจากแบบจำลอง E, N, Z)
"C1": ((500.00, 1000.00, 10.00), (500.03, 999.96, 10.08)),
"C2": ((600.00, 1000.00, 10.00), (600.00, 1000.06, 9.98)),
"C3": ((500.00, 1100.00, 11.00), (499.92, 1100.06, 11.04)),
}
for pid, (ref, model) in checks.items():
de, dn, dz = (round(m - r, 3) for m, r in zip(model, ref))
print(f"{pid}: dE {de:+.2f} dN {dn:+.2f} horizontal {math.hypot(de, dn):.2f} m dZ {dz:+.2f} m")
C1: dE +0.03 dN -0.04 horizontal 0.05 m dZ +0.08 m
C2: dE +0.00 dN +0.06 horizontal 0.06 m dZ -0.02 m
C3: dE -0.08 dN +0.06 horizontal 0.10 m dZ +0.04 m
C3 คลาดแนวราบ 10 cm เกือบสองเท่าของจุดอื่น ก่อนสรุปว่าแบบจำลองผิด ให้ตรวจภาพเป้าว่าทำเครื่องหมายถูกจุดหรือไม่ จุดเดียวยังสรุปความถูกต้องของทั้งงานไม่ได้ การคำนวณแบบรวมทุกจุดอยู่ในโมดูล 5
| สิ่งที่พบ | ควรทำ | ห้ามสรุปว่า |
|---|---|---|
| ภาพขอบด้านหนึ่งขาด | บินซ่อมเฉพาะส่วนเมื่อปลอดภัย | โปรแกรมจะเติมพื้นที่ให้ถูกเอง |
| จุดตรวจถูกใบไม้บัง | ใช้จุดอื่นที่รังวัดไว้ หรือเก็บใหม่ | ย้ายพิกัดจุดตรวจให้ตรงภาพ |
| GNSS แสดง fixed | ตรวจบันทึก ระบบอ้างอิง และรังวัดซ้ำ | fixed แล้วถูกต้องแน่นอน |
| ความสูงทุกจุดต่างเท่า ๆ กัน | ตรวจ datum ความสูงเสา และการหักเสา | ลบค่าคงที่ออกโดยไม่มีหลักฐาน |
ปฏิบัติการประจำโมดูล
ปฏิบัติการ: วางจุดและทะเบียนจุดสนาม
- วางแผนตำแหน่ง GCP และจุดตรวจบนแผนที่พื้นที่ฝึก ให้กระจายถึงขอบและต่างระดับ เขียนเหตุผลของแต่ละจุด
- วางเป้า ถ่ายภาพตำแหน่งและบริเวณรอบ แล้วรังวัดด้วย GNSS ตามคู่มือเครื่องภายใต้การดูแลของผู้มีประสบการณ์ บันทึกความสูงเสาและสถานะการหักเสา
- ทำทะเบียนจุดตามโค้ดตัวอย่างที่ 1 ช่องที่ยังไม่มีข้อมูลให้เว้นว่าง ไม่ใส่ศูนย์
- ก่อนออกจากพื้นที่ ตรวจภาพ เป้า และขอบพื้นที่ บันทึกคำตัดสินว่าบินซ่อมหรือไม่พร้อมเหตุผล
- ส่งทะเบียนจุด บัญชีภาพ และคำตัดสินหนึ่งหน้าให้อาจารย์ลงนาม
ข้อผิดพลาดที่พบบ่อย
ระวัง
- รายงานค่าคลาดเคลื่อนที่ GCP ว่าเป็นความถูกต้องของแผนที่
- หักความสูงเสาซ้ำ ทั้งที่เครื่องหักให้แล้ว
- ปนความสูงเหนือทรงรีกับความสูงออร์โทเมตริก
- วางจุดกระจุกใกล้จุดขึ้นบิน ไม่ครอบคลุมขอบและที่สูงต่ำ
- ใส่ค่า Z เป็นศูนย์ สำหรับจุดที่ไม่เคยวัดความสูง
สรุป
- ตำแหน่งภาพช่วยการประมวลผล GCP ใช้ปรับแบบจำลอง และจุดตรวจกันไว้ตรวจผลอย่างอิสระ
- จุดต้องเห็นชัด กระจายทั่วพื้นที่ และมีทะเบียนที่ตรวจย้อนกลับได้
- หักความสูงเสาครั้งเดียว แล้วแปลงด้วย จากแบบจำลองยีออยด์ที่เหมาะสม เช่น TGM2017
- ตรวจข้อมูลก่อนออกจากพื้นที่ และตัดสินใจบินซ่อมจากหลักฐาน
แบบฝึกตรวจความเข้าใจ
- ความสูงเสาอากาศ 45.620 m เสาสูง 1.800 m เครื่องยังไม่หักเสา ความสูงของจุดบนพื้นเท่าใด
- = 43.820 m และ = −28.500 m (ค่าสมมติ) ความสูงออร์โทเมตริกเท่าใด
- จุดตรวจมี ΔE = −0.06 m และ ΔN = +0.08 m คลาดแนวราบเท่าใด
- ถ้านำจุดตรวจไปใช้ปรับแบบจำลอง จะเกิดอะไรกับการประเมินความถูกต้อง
- สถานะ fixed ของ RTK รับรองความถูกต้องของแผนที่ได้หรือไม่ เพราะอะไร
เฉลย
- m
- m
- m
- จุดนั้นไม่เป็นอิสระแล้ว ผลประเมินจะดีเกินจริง ต้องใช้จุดตรวจชุดใหม่
- ไม่ได้ เพราะไม่ครอบคลุมความผิดพลาดจากพิกัดสถานีฐาน การตั้งกล้อง และการประมวลผลภาพ
สรุปสูตรสำคัญ
| ความสูงของจุดบนพื้นจากความสูงเสาอากาศ | |
| ความสูงออร์โทเมตริก | |
| ความคลาดเคลื่อนแนวราบของจุด |
แหล่งอ้างอิงหลัก
- OpenDroneMap Authors. Ground control points. OpenDroneMap documentation (Version 3.5). link
- Sampath, A., Shrestha, M., While, M., & Scholl, V. M. (2023). Guidelines for calibration of uncrewed aircraft systems imagery (Open-File Report 2023–1033). U.S. Geological Survey. link
- Milbert, D. G., & Smith, D. A. (1996). Converting GPS height into NAVD88 elevation with the GEOID96 geoid height model. NOAA National Geodetic Survey. link
- Dumrongchai, P., Srimanee, C., Duangdee, N., & Bairaksa, J. (2021). The determination of Thailand Geoid Model 2017 (TGM2017) from airborne and terrestrial gravimetry. Terrestrial, Atmospheric and Oceanic Sciences, 32, 857–872. link
- American Society for Photogrammetry and Remote Sensing. (2024). ASPRS positional accuracy standards for digital geospatial data (Edition 2, Version 2). link
- IOGP. WGS 84 / UTM zone 47N (EPSG:32647). EPSG geodetic parameter dataset. link
อ่านเพิ่มเติม
ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล
ในชั้นเรียน / ภาคสนาม
ปฏิบัติการเข้มข้นในแล็บและภาคสนาม บันทึกผลลงสมุดปฏิบัติการ
หลักฐานการเรียนรู้: สมุดปฏิบัติการที่อาจารย์ลงนาม