Tag: EGM2008

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 8 โปรแกรมคำนวณสเกลแฟคเตอร์ (Scale Factor)

ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 8 โปรแกรมคำนวณสเกลแฟคเตอร์ (Scale Factor)

โปรแกรมคำนวณสเกลแฟคเตอร์ (Scale Factor) สำหรับเครื่องคิดเลข Casio fx-9860 G

ช่วงนี้อยู่ในชุดซีรี่ย์โปรแกรมเครื่องคิดเลข Casio fx-9860G  ต่อไปขอนำเสนอโปรแกรมคำนวณสเกลแฟคเตอร์ (Scale Factor) ตัวโปรแกรมพัฒนาด้วยภาษาซี  ใช้เป็นโปรแกรม AddIn ดังรูปด้านล่าง

ปัญหาการคำนวณสเกลแฟคเตอร์

สเกลแฟคเตอร์ในที่นี้ผมจะขอหมายถึง Elevation Scale Factor (ESF), Grid Scale Factor (GSF) ตลอดจน Combined Scale Factor (CSF) สามารถอ่านได้จาก blog ก่อนหน้านี้ของผมได้ที่ใช้โปรแกรม Surveyor Pocket Tools มาช่วยคำนวณ ผู้อ่านอาจจะเคยสังเกตว่าจะไม่เคยเห็นโปรแกรมคำนวณสเกลแฟคเตอร์ในเครื่องคิดเลขเท่าใดนัก ในกรณีนี้คือพวกเราใช้ค่าระดับที่อิงระดับน้ำทะเลปานกลาง (แทนด้วยสัญลักษณ์ตัว “H“) กันเป็นหลัก น้ำทะเลปานกลางนี้สามารถใช้พื้นผิวจีออยด์ (Geoid) แทนได้ แต่การคำนวณหา Elevation Scale Factor เราจะต้องทราบค่าระดับที่อ้างอิงกับ Ellipsoid (แทนด้วยสัญลักษณ์ตัว “h“) ไม่ใช่เทียบกับระดับน้ำทะเลปานกลาง ความต่างระหว่างพื้นผิวจีออยด์และพื้นผิวทรงรี เราเรียกว่า Geoid Separation (แทนด้วยสัญลักษณ์ตัว “N“) ความสัมพันธ์ระหว่างสามสิ่งนี้คือ h = H + N

การหา Geoid Separation (N) จะต้องใช้ Earth Gravity Model ซึ่งก่อนหน้านี้ใช้ EGM96 ปัจจุบันใช้ EGM2008 ที่มีความละเอียดถูกต้องมากกว่า ซึ่งโมเดลต่างๆเหล่านี้จะเป็นไฟล์ที่มีขนาดค่อนข้างใหญ่จนใหญ่มาก ทำให้ไม่สามารถนำมาใช้กับเครื่องคิดเลขในระดับนี้ได้ และถ้าเขียนโปรแกรมด้วย Casio Basic ก็คงหมดสิทธิ์ครับเพราะไม่มีคำสั่งในการอ่านเขียนไฟล์

ปัญหาและทางออก

ผมพยายามใช้โค้ดภาษาซีในการอ่านไฟล์โมเดล EGM96  ด้วย egm96-f477.c โปรแกรมสามารถคอมไพล์และบิวท์ผ่าน แต่ตอนประมวลผลอ่านไฟล์ เนื่องจากต้องใช้เมโมรีเครื่องคิดเลขมาอ่านไฟล์เข้าไปเก็บในหน่วยความจำพบว่า เมโมรีไม่พอ พยายาม optimize ด้วยตัวเองหลายๆทางแต่ไม่สำเร็จ จนมาพบโดยบังเอิญในเว็ปไซต์ ตามลิ๊งค์นี้ จุดประสงค์ทางผู้พัฒนาไลบรานี้เพื่อเขียนแอพลงบนโทรศัพท์มือถือแอนดรอยด์ วิธีการคือเขาได้ Normalize ค่า geoid separation จาก EGM2008 ขนาดเต็มลงมาเหลือขนาดแถวคอลัมน์ 181 x 91 ความถูกต้องจะถูกลดทอนลง ผมสนใจเลยเอามาคอมไพล์บน Casio SDK พบว่าทำงานได้ ใช้เมโมรีเครื่องคิดเลขที่มีอยู่เพียงพอ แต่ก็จวนเจียนจะใช้หมดเหมือนกัน เอาละความคิดที่เคยจะเขียนโปรแกรมคำนวณสเกลแฟคเตอร์บเครื่องคิดเลขก็มาเป็นจริง อาจจะได้ค่าสเกลแฟคเตอร์ที่ไม่ละเอียดเท่าคำนวณจากคอมพิวเตอร์แต่ในระดับทศนิยมหกตำแหน่ง ถือว่าได้ครับ

เครดิตผู้พัฒนาไลบรารี Geoid

ต้องขอบคุณผู้พัฒนาคือ Stefan Röttger (stefan@stereofx.org) มา ณ ที่นี้ ติดตามผลงานได้ที่เว็บไซต์ http://www.open-terrain.org/index.php ไลบรานี้ใช้สัญญาอนุญาตแบบ New BSD License

เตือนสติเรื่องสเกลแฟคเตอร์

ผมชอบวาทะของอ.ดีบุญ เมธากุลชาติ ก็ขออนุญาตเอาจากสไลด์มาแสดง ณ ที่นี้ด้วย อ.ดีบุญเรียก Grid Scale Factor ว่าตัวประกอบมาตราส่วน ส่วน Elevation Scale Factor เรียกว่าตัวประกอบความสูง ได้ใจความครบถ้วนดีครับ และก็เตือนสติคนใช้แผนที่ดังนี้

Grid Scale Factor เมื่อคูณกับ Elevation Scale Factor จะได้ Combined Scale Factor ตัวประกอบตัวนี้คือตัวสำคัญที่จะนำไปคูนกับระยะทางที่วัดบนพื้นผิวโลกเพื่อทอนลงมาบนระนาบราบของแผนที่ (Grid Distance)

ใช้ไลบรารีแปลงพิกัด MGRS

เนื่องจากโปรแกรมนี้ต้องแปลงค่าพิกัดจากระบบพิกัดฉาก  UTM  บนดาตั้ม WGS84 ไปยังค่าพิกัดภูมิศาสตร์ เพื่อส่งไปให้ฟังก์ชั่นคำนวณหาค่าสเกลแฟคเตอร์ที่ต้องการทราบค่าละติจูด ดังนั้นผมใช้ไลบรารี mrgs พัฒนาโดย Howard Butler ไลบรานี้ใช้สัญญาอนุญาตแบบ MIT License

สิ่งที่โปรแกรมต้องการ

โปรแกรมสามารถคำนวณได้ 2 แบบคือแบบ Point Scale Factor คือแบบจุดเดี่ยวๆ สามารถคำนวณมาใช้แทนพื้นที่เล็กๆประมาณ 1 กม. x 1 กม. ได้ดี และรูปแบบที่ 2 คือ Line Scale Factor ใช้สำหรับพื้นที่ที่ใหญ่ขึ้นมา ใช้ค่าพิกัด 2 จุดหัวและท้าย โปรแกรมจะต้องการทราบค่าดังนี้

  1. เลือกโซนของยูทีเอ็ม (UTM  Zone) ตั้งแต่โซน 1 ถึง 60 และเลือกซีกโลก (Hemisphere)  เลือกได้สองอย่างคือเหนือหรือใต้เส้นศูนย์สูตร
  2. ค่าพิกัดและค่าระดับของจุดที่ต้องการทราบค่าสเกลแฟคเตอร์ ต้องการค่าพิกัดเหนือใต้ในระบบยูทีเอ็มและค่าระดับที่อ้างอิงเหนือระดับน้ำทะเลปานกลาง (Orthometric Height above Meas sea level)

ในการคำนวณตัวประกอบความสูง (Elevation Scale Factor) โปรแกรมจะนำค่าความสูงเหนือระดับน้ำทะเลปานกลางมาคำนวณเป็นค่าระดับความสูงเทียบกับระดับทรงรี (Ellipsoid Height) ที่เราไม่สามารถนำค่าระดับความสูงเหนือระดับน้ำทะเลปานกลางมาใช้คำนวณเพราะว่า ตัวอย่างเข่นในประเทศไทย ค่าระดับน้ำทะเลปานกลางจะอยู่ใต้ทรงรีประมาณ 6-42 เมตร ถ้านำไปคำนวณจะได้ค่าตัวประกอบความสูงที่ไม่ถูกต้อง

ดาวน์โหลดโปรแกรม

ไปที่หน้าดาวน์โหลด Download มองหาโปรแกรมสำหรับเครื่องคิดเลข Casio fx-9860 G II SD ดาวน์โหลดไฟล์โปรแกรมชื่อ SFACTOR.G1A ติดตั้งลงเครื่องคิดเลข

เริ่มต้นใช้งาน

เมื่อเมนูหลัก (Main Menu) เมื่อเลื่อนลูกศรมาที่ไอคอนโปรแกรมกดคีย์ “EXE” จะเข้ามาในโปรแกรมดังรูปด้านล่าง จะเห็นเมนูด้านล่างเรียงรายกันไป ได้แก่

Sett- Setting (ตั้งค่าโซนยูทีเอ็มและเลือกซีกโลก)

PSF – Point Scale Factor ( คำนวณหาค่าสเกลแฟคเตอร์ของจุดเดี่ยว

LSF – Line Scale Factor (คำนวณหาค่าสเกลแฟคเตอร์เฉลี่ยจากจุดสองจุด)

Info – Information (แสดงไลบรารีที่ผมใช้งานอยู่ ให้เครดิตแก่พัฒนา)

Exit – Exit Program (ออกจากโปรแกรม)

ตั้งค่ายูทีเอ็ม (UTM Settings)

ทีเมนูหลักกดคีย์ F1 – Sett จะเห็นหน้าตาจอภาพเครื่องคิดเลขดังนี้

เนื่องจากโปรแกรมบนเครื่องคิดเลขมีข้อจำกัดมากๆ ผมไม่สามารถใส่ระบบพิกัดได้มากเหมือน Surveyor Pocket Tools จึงจำกัดแค่ datum “WGS84” เท่านั้น สำหรับประเทศไทยก็เลือกโซนได้สองโซนคือ 47 และ 48 ตัวอย่างที่จะแสดงต่อไปเลือกเป็นโซน 47 ส่วนซีกโลก (Hemisphere) เลือกเป็น “North” กดคีย์ F6 – OK

 

คำนวณ Point Scale Factor

ตัวอย่างที่คำนวณต่อไปจะยกมาจากตัวอย่างที่แสดงในบล็อกของ Surveyor Pocket Tools เพื่อเปรียบ

เทียบผลลัพธ์กันได้ กลับมาที่เมนูหลักกดคีย์ F1-Sett ป้อนค่าพิกัด N=1499662.173, E=683068.285, H=0.791 

เสร็จแล้วกดคีย์ F1 – Calc เพื่อคำนวณสเกลแฟคเตอร์ของจุดนี้

ผลลัพธ์จะแสดงออกมาดังรูปด้านล่าง โปรแกรมจะแสดงค่าพิกัดและค่าระดับมาให้ จากนั้นแสดงค่าละติจูดและลองจิจูด แสดงความสูงเทียบกับทรงรี = -29.598 m กดคีย์ F2-PgDn เพื่อเลื่อนไปดูหน้าต่อไป

จะเห็นค่า Geoid Separation หรือ Geoid Height = -30.389 m และได้ค่า Elevation Scale Factor = 1.00000465, Grid Scale Factor = 1.00001458 สุดท้ายค่า Combine Scale Factor = 1.00001924 ลองเทียบกับค่าที่คำนวณด้วย Surveyor Pocket Tools ดังนี้

ค่า Combined Scale Factor  = 1.0000192644 ต่างกันที่ทศนิยมแปด ผมถือว่าใช้ได้เพราะเราใช้แค่ทศนิยมที่หกก็เพียงพอแล้ว ความต่างที่แตกต่างจากที่ผมเคยบอกไปแล้วคือมาจากค่า Ellipsoid height ที่คำนวณจากโปรแกรมเครื่องคิดเลขได้ -29.598 เมตร ส่วนค่าความสูงทรงรีที่ได้จาก Surveyor Pocket Tools ได้ค่า -29.776 เมตร ต่างกันประมาณ 20 ซม.

คำนวณหาค่า Line Scale Factor

จะแสดงไดอะแกรมของการคำนวณค่าสเกลแฟคเตอร์เฉลี่ยดังรูปด้านล่าง

ที่โปรแกรมเครื่องคิดเลขกลับมาที่เมนูหลัก

กดคีย์ F3-LSF จะเห็นหน้าตาโปรแกรมดังรูปด้านล่าง ป้อนค่าพิกัดจุดที่ 1 และกดคีย์ F2-Next เพื่อไปป้อนจุดที่ 2

พร้อมแล้วกดคีย์ F1-Calc ต่อไปจะได้ผลลัพธ์ดังนี้ เลื่อนลงไปดูหน้าต่อไปก็กดคีย์ F2-PgDn

สรุปแล้วจะได้ค่าเฉลี่ย Combined Scale Factor = 1.00082320

เปรียบเทียบกับค่าที่ได้จาก Surveyor Pocket Tools เท่ากับ 1.0008232302 เช่นเคยค่าต่างกันที่ทศนิยมแปด สามารถนำไปใช้งานได้

เครดิตไลบรารี

ที่เมนูหลักกดคีย์ F5-Info จะเห็นเครดิตดังรูปด้านล่าง

โปรแกรมนี้มีขนาดใหญ่กว่าโปรแกรมอื่นๆก่อนเกือบสองเท่าเพราะว่าใช้ไลบรารีอื่นๆสามไลบรารีด้วยกัน ก็ติดตามชุดโปรแกรมเครื่องคิดเลข Casio fx-9860 G กันต่อไปครับ

Surveyor Pocket Tools โปรแกรมรวมเครื่องมือฉบับกระเป๋าสำหรับช่างสำรวจ (แจกฟรี) – ตอนที่ 4 (ตอนจบ)

  • ผ่านไปแล้วสามโปรแกรมย่อยๆ นี่คือโปรแกรมที่สี่ โปรแกรม  EGM คำนวณหาค่า Geoid Separation ไม่ใช่โปรแกรมสุดท้ายนะครับ เพราะ Surveyor Pocket Tools จะเพิ่มโปรแกรมพื้นฐานสำหรับช่างสำรวจต่อไปเรื่อยๆ

intro-surveyor-pokcet-tools

  • โปรแกรมนี้ผมเคยเขียนมาแล้วชุดใหญ่ใช้ชื่อว่า Geoid Height Pro  ลองดูด้านขวามือตรง Download เป็นโปรแกรมที่มีกราฟฟิคให้ดูด้วยเมื่อป้อนค่าพิกัด Latitude/Longitude เข้าไปสามารถโหลดไฟล์ CSV มาคำนวณได้ สนใจชุดใหญ่ก็โปรแกรม Geoid Height Pro ครับ ถ้าชุดเล็กๆแบบพกไปในกระเป๋าติดตามต่อไป

geoidheight_2016-11-17_19-27-51

ทำไมต้องคำนวณ Geoid Separation

  • เนื่องจาก GPS ที่เราใช้งานในปัจจุบัน ระบบพิกัดผูกอยู่กับพื้นหลักฐาน World Geodetic System 1984 ใช้ทรงรี WGS84 สำหรับค่าพิกัดแลตติจูดและลองจิจูดแล้วไม่มีปัญหาครับ ปัญหาคือค่าระดับในแนวดิ่ง ที่อ้างอิงกับทรงรีเรียกความสูงนี้ว่า Ellipsoidal Height(h) แต่ความสูงที่นำมาใช้งานด้านแผนที่รวมทั้งงานก่อสร้างสาธารณูปโภคทั้งหลาย กลับอ้างอิงกับระดับน้ำทะเลปานกลาง Mean Sea Level (MSL) ที่เราคุ้นเคยกันดี แล้วความสูงสองระบบนี่มันเกี่ยวข้องกันอย่างไร
  • ความสูงเทียบกับระดับน้ำทะเลปานกลางหรือที่เรียกกันอย่างหนึ่งว่า Orthometric Height (H) ความสูงตัวนี้กลับไปอ้างอิงกับรูปทรงจีออยด์ ที่ถือกันว่าเป็นรูปทรงทางคณิตศาสตร์ของโลกตามแรงดึงดูด รูปทรงประมาณแล้วเป็นผิวที่ทับกันสนิทกับผิวเฉลี่ยของมหาสมุทรหรือระดับน้ำทะเลปานกลางนั่นเอง ระหว่างทรงรีกับรูปทรงจีออยด์ ทั่วทั้งโลกนี้มีความสูงต่างกันไม่เกิน ±100 เมตรเท่านั้นเอง
  • ความสัมพันธ์ความสูงสองระบบนี้ก็ง่ายๆครับ H = h – N โดยที่ N คือค่า Geoid Height หรือ Geoid Separation  นั่นเอง โปรแกรมนี้คือโปรแกรมที่เขียนขึ้นมาเพื่อคำนวณหาค่า N โดยเฉพาะ
  • ดังนั้นเมื่อเรารู้พิกัดแล็ตติจูดลองจิจูด เราสามารถคำนวณหา N ได้เอาไปลบจาก Ellipsoidal Height (h) ก็จะกลายเป็นความสูงเทียบกับระดับน้ำทะเลปานกลางที่เราสามารถนำมาใช้ได้
geoid2_lg
ภาพจาก esri.com

โมเดลที่ใช้ในการคำนวณ

  • มีสองโมเดล ตามอายุที่ออกมาใช้ครับ EGM96 ออกในปี 1996 ง่ายๆเขาแบ่งตามขนาดกริด 30’x30′ ประมาณ 55 กม.  x 55 กม. จะมีหนึ่งค่าเมื่อขยับไปกริดช่องต่อไปค่า N ก็จะเปลี่ยน โมเดลจะเก็บไว้ในไฟล์ เวลาติดตั้งโปรแกรมจะไปด้วย เมื่อผู้ใช้ป้อนค่าพิกัดโปรแกรมจะไปอ่านไฟล์ดึงค่ามาคำนวณค่า N ให้
  • โมเดลที่สองคือ EGM2008 ออกมาในปี 2008 รุ่นนี้แบ่งเป็นสองขนาดย่อยละเอียดสุดคือช่องกริดแบ่งไว้ประมาณ 1′ x 1′ หรือประมาณ 1.8 กม. x 1.8 กม. ขนาดที่สองละเอียดน้อยลงมานิดหนึ่งใช่ช่องกริดขนาด 2.5′ x 2.5′ หรือประมาณ 4.6 กม. x 4.6 กม. โปรแกรมนี้ใช้กริดขนาด 2.5′ x 2.5′ ครับ  เวลาติดตั้งจะขนไฟล์ขนาดมากกว่า 100 MB ที่เก็บกริดนี้ไปด้วย ทำให้ดูเหมือนโปรแกรมใหญ่โต แต่ที่โตเพราะข้อมูลนี้ครับ
  • ถ้าใช้โมเดลแบบละเอียด 1’x1′ จะต้องใช้ไฟล์ข้อมูลเกือบกิกะไบต์เลย ผมเลยไม่ได้เขียนในส่วนนี้ ความละเอียดเท่าที่ทดสอบดูจากโปรแกรมอื่นๆ ค่าแทบไม่แตกต่างกันเลย แตกต่างกันน้อยมาก บางจุดน้อยกว่าเศษของมิลลิเมตร

ความถูกต้อง

  • ไม่มีอะไรสมบูรณ์พูนผลไปทั้งหมด โมเดล EGM96 กับ EGM2008 ก็เหมือนกัน งานรังวัด GPS แบบ Static หรือ Fast Static ที่ให้ค่าละเอียดระดับมิลลิเมตร ดีทั้ง x, y, z เมื่ออ้างอิงกับทรงรี (ย้ำทรงรี) การจะได้ค่าระดับเทียบกับระดับน้ำทะเลปานกลาง จะเรียกใช้โมเดล EGM96 หรือล่าสุดกว่าก็ EGM2008 เพื่อแปลงค่าความสูงจาก Ellipsoidal Height เป็น Orthometric Height แต่เนื่องจากโมเดลไม่ได้สมบูรณ์ ดังนั้นค่าระดับที่ได้เทียบเท่างานระดับชั้นสาม แต่ไม่ยืนยัน ส่วนใหญ่งานก่อสร้างที่มีค่าระดับ Grade มาเกี่ยวข้อง จึงต้องเดินระดับแบบแยกมาต่างหากจากงานรังวัด GPS ครับยกตัวอย่างเช่นงานสร้างทางรถไฟ งานสร้างถนนสายหลัก
  • ประสบการณ์ที่ผ่านมา งานรังวัด GPS ค่าระดับเมื่อแปลงเป็นระดับน้ำทะลปานกลางแล้ว พอใช้ได้ครับ ไม่เคยเจอตรงไหนที่เพี้ยนจนรับไม่ได้ งานที่ไม่ได้กังวลเรื่องค่าระดับมากนักจะนำค่าระดับที่แปลงค่ามาแล้วใช้งานได้เลย

วิธีใช้งานโปรแกรม

  • มาดูวิธีการใช้ คลิกที่โปรแกรม EGM ตามรูป
spt_egm_01
โปรแกรม EGM
  • เปิดโปรแกรมมาแล้ว หน้าตาคล้ายๆโปรแกรมอื่นๆที่ผ่านมาคือมีช่องป้อนค่าพิกัด แล็ตติจูด ลองจิจูด มีไอคอนสำหรับจัดเก็บค่าพิกัดเข้าฐานข้อมูล และไอคอนเรียกค่าพิกัดจากฐานข้อมูลมาใช้งาน สองไอคอนนี้อยู่ติดกัน มีไอคอนลูกศรเพื่อคำนวณ สามารถปักหมุดลงบน Google maps และ Google earth

spt_egm_02

  • ลองป้อนจุดดังนี้ ชื่อ “GPS-KBM” Latitude = 14.6109419444 Longitude= 98.0315881139 รูปแบบมุมเป็น degree คลิกที่ไอคอนลูกศรเพืือคำนวณได้ค่า -38.9148 m. บนโมเดล EGM2008

surveyor-pocket-tools_2016-11-18_13-34-28

  • ลองเปลี่ยนโมเดลเป็น EGM96

surveyor-pocket-tools_2016-11-18_13-35-42

  • มาลองจุดอื่นๆดูบ้างครับ ชื่อ “Caia” latitude= 17d 49′ 55.917″S longitude= 35d 20′ 10.706″E ป้อนแล้วคำนวณดู จากนั้นทำการเก็บค่าพิกัดด้วยการคลิกไอคอนรูปหมุดที่มีเครื่องหมายบวกสีแดง แล้วก็ลองปักหมุดที่ google maps เป็นขั้นตอนสุดท้าย

spt_egm_04

  • ปักหมุดแล้ว

firefox_2016-11-18_14-36-56

  • ก็ขอจบตอนสุดท้ายเพียงเท่านี้ครับ

 

Surveyor Pocket Tools โปรแกรมรวมเครื่องมือฉบับกระเป๋าสำหรับช่างสำรวจ (แจกฟรี) – ตอนที่ 1

ความเป็นมา

  • ปกติผมเป็นคนชอบพกเครื่องมือสารพัดประโยชน์เช่นมีดพับในกระเป๋ากางเกง เพราะสะดวกรวมทุกสิ่งทุกอย่างทั้งไขควง มีด กรรไกร ตะไบ ที่เปิดขวด ยี่ห้อที่ชอบได้แก่  Leatherman, Victorinox เมื่อสองปีที่แล้วไปโมซัมบิค อาฟริกา ท่านศุลกากรที่นั่นเปิดกระเป๋าเดินทางเพื่อตรวจก่อนออกจากสนามบิน  แอบสอย Victorinox ของผมไปหน้าตาเฉย เสียดายครับเพราะใช้มาหลายสิบปี แต่ก็อโหสิกรรมให้ท่านผู้นั้นไปแล้ว โปรแกรมที่จะแนะนำก็คล้ายกับมีดพับสารพัดประโยชน์แบบเดียวกัน
  • ที่ใช้บ่อยสำหรับคนที่ทำงานสนามคือโปรแกรมแปลงพิกัดค่ากริดยูทีเอ็ม (UTM) แปลงไป  แลตติจูด/ลองจิจูด (Geographic)  หรือกลับกัน ส่วนใหญ่จะเปิดคำนวณผ่านออนไลน์ ได้ค่ามาแล้ว บางทีก็ copy มาวางที่่  google earth หรือ google map  เพื่อปักหมุดให้รู้ว่าจุดตัวนั้นอยู่ตรงไหน หลายขั้นตอนบางครั้งรู้สึกรำคาญ
  • ไปๆมาๆ เขียนใช้เองดีกว่า ตรงใจที่สุด ป้อนค่าพิกัดเสร็จก็คลิกแปลงพิกัดทันที เสร็จแล้วก็ปักหมุดลงใน google maps ทันที

spt_intro

  • สิ่งที่ตั้งใจไว้ก็คือจะเขียนโปรแกรมคำนวณย่อยเล็กๆเอามารวมกัน ที่ใช้บ่อยในงานสนาม ตอนนี้โปรแกรมยังเป็นแค่รุ่น 0.35 รุ่นทดลองใช้ ยังมีอีกหลายอย่างที่จะใส่เพิ่มเข้ามาอีกในรุ่นหน้า ตอนนี้เอาแค่นี้ก่อน

ใครคือผู้ใช้งานโปรแกรม

  • ดูจากชื่อโปรแกรมเหมือนกับเอาไว้ให้ ช่างสำรวจใช้อย่างเดียว แต่ไม่ใช่ครับ ใครก็เอาไปใช้ได้ เพราะโปรแกรมผมได้พยายามออกแบบให้ใช้งานได้ง่ายๆ

ดาวน์โหลดและติดตั้ง

  • ดูลิ๊งค์ด้านขวามือ “ดาวน์โหลด (Download)” มองหาโปรแกรม Surveyor Pocket Tools จะมีรุ่นและ build ปกติดูที่ build เป็นหลัก เนื่องจากโปรแกรมนี้อยู่ในระหว่างพัฒนาตัวเลข build จะเพิ่มขึ้นเรื่อยๆ

 

  • คลิกเพื่อดาวน์โหลด เสร็จแล้วแตกไฟล์ zip ออกมาจะได้ไฟล์ .exe พร้อมทำการติดตั้ง เมื่อติดตั้งแล้วจะเห็นไอคอนรูปกล้องเซอร์เวย์

icon_sptเริ่มใช้งาน

  • เมื่อเปิดโปรแกรมมาจะเห็นหน้าตาดังรูปด้านล่าง แต่ละไอคอนจะมีโปรแกรมย่อยๆให้ใช้งาน

intro-surveyor-pokcet-tools

  • มาดูกันว่าแต่ละโปรแกรมย่อยทำอะไรได้บ้าง เรียงเลยครับจากบนลงล่าง

โปรแกรมแปลงพิกัดกริดยูทีเอ็ม (UTM – Geo Converter)

  • สำหรับแปลงพิกัดกริด UTM ได้แก่ค่า Northing(N), Easting(E) ไปค่าพิกัดภูมิศาสตร์ Latitude, Longitude  ในที่นี้จะแปลงค่าพิกัดบนรูปทรงรี WGS84 เท่านั้น แต่สามารถแปลงจากพิกัดภูมิศาสตร์ไปค่าพิกัดกริดยูทีเอ็ม เมื่อดับเบิ้ลคลิกที่ไอคอนจะเห็นหน้าต่างโปรแกรมแปลงพิกัดเล็กๆแสดงออกมาด้านขวา มีช่องพิกัดให้กรอกช่องด้านซ้ายหรือด้านขวา

spt_utm2geo-01

  • ช่องด้านซ้ายมือผู้อ่านจะเป็นช่องให้ป้อนค่าพิกัดกริดยูทีเอ็ม มีช่อง Point Name คือป้อนชื่อจุด และเรียงลงมาคือป้อนค่า N, E สุดท้ายต้องบอกโซนด้วยครับเพราะระบบกริดยูทีเอ็มมีหลายโซนทั้งโลก ค่าพิกัดอาจซ้ำกันถ้าไม่ระบุโซนจะไม่รู้เลยว่าอยู่ที่ไหน
  • ผมจะลองแปลงพิกัดจากกริดยูทีเอ็มไปหาค่าพิกัดภูมิศาสตร์ โดยที่จุดหรือหมุดมีค่าพิกัดดังนี้ ชื่อหมุด “006 -031” ค่า N = 1598702.276 ค่า E=707105.198 Zone No. = UTM Zone 47N ดังรูปด้านล่าง

spt_utm2geo-03

  • จากนั้นคลิกที่ไอคอนรูปลูกศรเพื่อแปลงค่าพิกัดจะเห็นค่าพิกัดแปลงไปเป็นค่าพิกัดภูมิศาสตร์ดังรูปด้านบน ล่างขวาจะเห็นรูปแบบที่จะแสดงมุมได้สามอย่างคือแบบทศนิยม แบบแยกองศา ลิปดา ฟิลิปดา (DD°MM’SS.SSSS”) และแบบที่สามคือองศา ทศนิยมของลิปดา (DD°MM.MMMM’)

spt_utm2geo-04

  • กรณีค่าแลตติจูดเป็นค่าบวกคืออยูเหนือเส้นศูนย์สูตร จะมีคำว่า “N” เป็น suffix ไปแปะไว้ด้านหลัง ถ้าอยู่ต่ำกว่าเส้นศูนย์สูตรจะใข้คำว่า “S”  เช่นเดียวกันกับค่าลองจิจูดถ้าค่าเป็นบวกจะใช้คำว่า “E” ย่อมาจาก East แปะด้านหลัง ถ้าค่าเป็นลบจะใช้คำ “W” ย่อมาจาก West  แปะไว้ด้านหลัง
  • ลองเปลี่ยนรูปแบบมุมเป็น DD°MM.MMMM’

spt_utm2geo-05

ปักหมุดบน Google Maps

  •   ต่อไปจะปักหมุดบน google maps กระบวนการนี้ต้องออนไลน์นะครับ  คลิกที่ไอคอนด้านล่างตามรูป โปรแกรมจะเรียก  web browser ที่ใช้งานมาแสดง

spt_utm2geo-06

  • รูปด้านล่างแสดง google maps พร้อมหมุดที่ปักแล้ว สะดวกดีครับ ดูตรง address bar จะเห็นว่าเรียกไฟล์จากเครื่องที่ติดตั้งโปรแกรมใช้งานอยู่ดูเหมือนจะออฟไลน์ แต่ไม่ใช่ครับ ยังออนไลน์สามารถซูมเข้าออกได้ปกติ

gm_006031

ปักหมุดบน Google Earth

  • มาลองปักหมุดบน google earth ดูกัน เครื่องที่ใช้ต้องติดตั้ง google earth ด้วยนะครับ คลิกที่ไอคอนดังรูปด้านล่าง

spt_utm2geo-07

  • โปรแกรมจะถามชื่อไฟล์เพื่อจัดเก็บไว้ เผื่อกรณีต้องการใช้ภายหลัง แล้วจะสวิชต์เข้าโปรแกรม google earth ทันที จะเห็นหมุดสีเหลืองปักกลางรูป

googleearth01

  • มาลองแปลงค่าพิกัดภูมิศาสตร์ไปเป็นค่าพิกัดกริดยูทีเอ็ม ทีนี้จะลองรูปแบบมุมเป็นทศนิยมดีกรี ผมป้อนค่าพิกัดที่อยู่ที่โมซัมบิค อาฟริกาที่เคยไปทำงานอยู่ดังรูป คลิกไอคอนเพื่อแปลงพิกัด

spt_utm2geo-08

  • จะเห็นว่าโปรแกรมจะแปลงพิกัดให้พร้อมทั้งคำนวณ UTM Zone ให้ได้ถูกต้อง จุดนี้อยู่ในประเทศโมซัมบิค ทวีปอาฟริกาอยู่ใต้เส้นศูนย์สูตรและยูทีเอ็มโซนคือ  UTM Zone 37S

spt_utm2geo-10

  • ลองปักหมุดบน google earth

googleearth02

จัดเก็บข้อมูลจุดที่ใช้งานเข้าฐานข้อมูล

  • เนื่องจากเป็นโปรแกรมขนาดเล็กๆ ไม่ได้ตั้งใจจะออกแบบให้อ่านเขียนไฟล์ข้อมูลได้เป็นเรื่องเป็นราว ผมจึงทำฐานข้อมูลขนาดเล็กๆ สามารถเก็บจุดที่ใช้งานได้ เผื่อต้องการเรียกนำมาใช้งานได้อีก ก็สามารถลากจากตารางฐานข้อมูลเข้าช่องป้อนตัวเลข
  • ต้องการจัดเก็บก็คลิกที่ไอคอนรูปหมุดที่มีเครื่องหมายบวก โปรแกรมจะถามคอนเฟิร์มอีกทีตอบ “OK”

spt_utm2geo-11

  • จากนั้นโปรแกรมจะเปิดตารางข้อมูล ตรวจสอบว่าข้อมูลเข้าไปเรียบร้อยแล้วดังรูป ส่วนจุดอื่นๆที่ปรากฎในตารางผมได้เพิ่มมาก่อนหน้านี้แล้ว

spt_utm2geo-12

วิธีใช้งานตารางข้อมูลกริดยูทีเอ็ม

  •  ในตอนนี้ผมจัดทำตาราง (Table) เก็บค่าพิกัดที่เป็นกริดแยกกับตารางที่เก็บค่าพิกัดภูมิศาสตร์ แต่อยู่ในฐานข้อมูลเดียวกัน มาดูวิธีใช้งาน คลิกที่ไอคอนดังรูป

spt_utm2geo_opentable-01

  • จะเห็นตารางข้อมูลขึ้นมา ตอนนี้จะใช้งาน ต้องการค่าพิกัดตัวไหนก็ใช้เมาส์เลื่อนสกรอลบาร์ไปได้ ถ้าคลิกที่ปุ่ม “First” จะไปที่ตัวแรก ถ้าคลิกที่ “Last”  จะไปที่ตัวสุดท้าย ถ้าต้องการลบก็คลิกที่ “Delete”
  • ตอนนี้สมมุติว่าผมต้องการค่าพิกัด “AC-01-GPS” มาใช้งาน คลิกเมาส์ที่ค่าพิกัดตัวนี้แล้วลากไปวางที่ช่อง UTM ดังรูป

spt_utm2geo_draganddrop-01

  • จะได้ค่าพิกัดจากตารางข้อมูลมาปรากฎในช่อง UTM ดังรูป แปลงพิกัดก็คลิกที่รูปลูกศรขวาได้เลย

spt_utm2geo_draganddrop-02

  • ลองลากค่าพิกัดกริดยูทีเอ็มจากตารางข้อมูลไปที่ช่อง Geographic เพื่อแปลงพิกัด

spt_utm2geo_draganddrop-03

  • โปรแกรมจะเตือนว่าผู้ใช้ต้องการแปลงพิกัด

spt_utm2geo_draganddrop-04

  • คลิก “OK” จะได้ผลลัพธ์

spt_utm2geo_draganddrop-05

วิธีการใช้ตารางข้อมูลค่าพิกัดภูมิศาสตร์

  • จากที่กล่าวไปแล้วตารางข้อมูล (table) มีสองแบบ ที่นี้มาลองใช้ตารางค่าพิกัดภูมิศาสตร์ดูบ้าง ตอนนี้จะจัดเก็บจุด “006-053” เข้าตารางข้อมูล คลิกที่ไอคอนรูปหมุดดังรูป

spt_ge2utm_draganddrop-02

  • จะเห็นตารางข้อมูลขึ้นมา และค่าพิกัดถูกจัดเก็บเข้าไปเรียบร้อยดังรูปด้านล่าง จะเห็นตารางข้อมูลสองตารางที่ลากขยับหน้าต่างเรียงกันใหม่

spt_geo_table

  • ลองคลิกไอคอนลูกศรไปทางซ้ายเพื่อแปลงพิกัดจากพิกัดภูมิศาสตร์ไปหาพิกัดกริดยูทีเอ็ม จะได้ค่าเดิมก่อนหน้านี้

โปรแกรมแปลงพิกัดข้ามพื้นหลักฐาน (Transform Coordinates)

  • โปรแกรมที่แล้วสำหรับแปลงพิกัดบนพื้นหลักฐาน WGS84 เท่านั้น แต่ถ้าต้องการแปลงข้ามพื้นหลักฐาน (datum) จะทำยังไง โปรแกรมที่สองที่ผมเขียนขึ้นมาเพื่อตอบโจทย์นี้ แต่เนื่องจาก datum และเส้นโครงแผนที่ (Map Projection) ในโลกนี้มันมีมากมายมหาศาลต่างประเทศต่างใช้หลากหลายกันไป สำหรับประเทศไทยมีสองพื้นหลักฐานที่ใช้กันคือ WGS84 และ Indian 1975 เส้นโครงแผนที่ของบ้านเราใช้ UTM
  • จากโปรแกรมหลักเมื่อคลิกโปรแกรมที่สอง จะเห็นหน้าตาแบบนี้  ด้านซ้ายเป็นระบบพิกัด ที่สามารถเลือกพิ้นหลักฐานและเส้นโครงแผนที่ได้ ด้านขวาก็เช่นเดียวกันสามารถเลือกได้อิสระ

surveyor-pocket-tools_2016-10-27_07-30-03

การป้อนรูปแบบของมุม

  • การป้อนมุมสำหรับโปรแกรมชุดนี้ ค่อนข้างต้องเป๊ะครับ ผมจะอธิบายให้พอเข้าใจ ถึงที่มาที่ไป ในทางโปรแกรมมิ่งผมใช้ที่เขาเรียกว่า Regular Express คอยสอดส่องว่าผู้ใช้กำลังป้อนอะไรเข้ามา ตรงไหนเป็นตัวเลข 0-9 ตัวไหนเป็นสัญลักษณ์เช่นองศา ° ลิปดา ‘ ฟิลิปดา ” หรือตรงไหนเป็นตัวอักษร d, N, S, E, W และต้องไม่มีช่องว่าง
  • รูปแบบ DD MM SS.SSSS เช่น 14°36’44.21988″N ต้องไม่มีช่องว่างและต้องป้อนสัญลักษณ์ให้ครบทั้งสาม แต่สัญลักษณ์องศาให้ใช้ตัว d แทนได้เช่น 14d36’44.21988″N 
  • โปรแกรมแก้ไขเรื่องป้อนมุม ดูที่  build 375 ขึ้นไป การป้อนมุมมีช่องว่างได้ครับ 14°36’44.21988″N สามารถป้อนแบบนี้ได้ 14d 36′ 44.21988″ N ถ้าป้อนไปแล้วผิดให้เอาเคอร์เซอร์มาไว้ที่ท้ายสุดแล้วกด backspace ไปเรื่อยๆ ดูโปรแกรมว่า build เท่าไหร่เปิดดูที่ About ครับ

surveyor-pocket-tools_2016-11-14_13-58-54

  • ก่อนจะมาว่ากันต่อคงต้องยกยอดไปตอนที่ 2 ครับ

เครดิตและโปรแกรมมิ่ง

  • โปรแกรมนี้สำเร็จมาใช้งานไม่ได้เลย ถ้าไม่มีไลบรารีภาษาไพธอน (Python) ที่แจกให้ใช้ฟรีเหล่านี้ ผมขอยกเครดิตความดีให้
    • PyProj โดย Jeff Whitaker ที่พัฒนามาจาก Proj.4 ช่วยให้งานคำนวณแปลงพิกัดข้ามพื้นหลักฐานอันุยุ่งยากกลายเป็นเรื่องง่าย
    • GeographicLib โดย Charles F. F. Karney ช่วยในการคำนวณระยะทางสั้นที่สุดบนอิลลิปซอยด์โดยวิธี Geodesic distance
    • SimpleKML โดย Kyle Lancaster ช่วยในการปักหมุดลงใน Google Earth
    • gmplot โดย Michael Woods ช่วยในการปักหมุดลง Google Maps
    • EGM96 เป็นโค้ดภาษาซี ผมแปลงเป็นภาษาไพธอนเพื่อคำนวณ Geoid Separation ด้วยโมเดล EGM96
    • EGM2008  เป็นโค้ดภาษาซี โค้ดดั้งเดิมอยู่ในโครงการ Geotrans เช่นกันผมแปลงเป็นภาษาไพธอน เพื่อนำมาคำนวณหา Geoid Separation ด้วยโมเดล EGM2008 แบบ 2.5′ x 2.5′
  • โปรแกรมพัฒนาด้วย Python 3.5 กราฟฟิค User Interface ด้วย PyQt5 ตอนนี้รุ่น 5.5.7 สภาพแวดล้อมในการพัฒนาโปรแกรมไพธอนใช้ Eric Python IDE ดีมากจนไม่เคยคิดจะกลับไปใช้ตัวอื่นอีกเลย
  • พบกันตอนใหม่ครับ

Geoid Height Pro v1.05 สำหรับ Mac OS X

Geoid Height Pro v1.05 รุ่นสำหรับแมคโอเอส

  • คล้อยหลังที่ปล่อยรุ่นสำหรับวินโดส์ไปแล้ว ผมมานั่งคอมไพล์โปรแกรมสำหรับ Mac ซึ่งก็แก้ไขโค๊ดไปบ้าง แต่ไม่ได้หนักหนาอะไร ทำ installer ด้วย dmgCreator  ฟรี ข้อเสียในรุ่นแมคเทียบกับวินโดส์ก็คือ ขนาดเมื่อบีบอัดแล้วยังปาไปถึง 218 MB ส่วนรุ่นวินโดส์ประมาณ 95 MB เอง

ดาวน์โหลดและติดตั้ง

  • ดาวน์โหลดโปรแกรมได้ที่ GeoidHeightV105.dmg แล้วดับเบิ้ลคลิกแมคจะทำการเมาท์อิมเมจมาให้จากนั้นลาก icon โปรแกรมเข้าโฟลเดอร์ Applications เป็นอันเสร็จ โปรแกรมไม่มีเรียกใช้เฟรมเวิร์ค  (Framework) ใดๆทั้งสิ้นครับ ดังนั้นผมคิดว่านำไปติดตั้งเครื่องไหนน่าจะรันได้ไม่มีปัญหา

geoidheight_mac_01

ลองใช้งาน

  • ติดตั้งแล้วโปรแกรมจะอยู่ที่ Applications พร้อมใช้งาน

myapplications

  • ลองรันดู หน้าตาก็เหมือนรุ่นบนวินโดส์

geoidheight_mac_02

  • ป้อนค่าพิกัดแลตติจูด ลองจิจูดแล้วคลิกคำนวณ (Compute)

geoidheight_mac_03

  • ข้อมูลไฟล์ทดสอบ ผมใส่ไฟล์ข้อมูลตัวอย่าง  bundle ไปในโปรแกรมด้วยวิธีเปิดใช้ Finder ไปที่ Applications หาไอคอนโปรแกรม แล้วคลิกขวาเลือก “Show Package Contents”  คลิกไปที่ Contents/Resources/data จากนั้น copy ไฟล์ไปไว้ที่ใช้งานได้สะดวก

geoidheight_mac_05

  • ลองเปิดไฟล์ดูแล้วรัน

geoidheight_mac_06

  • นี่นับว่าเป็นโปรแกรมแรกของผมที่เขียนใช้บนแมค หลังๆมาผมใช้แมคมากกว่าลีนุกซ์ ส่วนวินโดส์ก็ยังใช้เป็นปกติ แต่ยังไงๆก็ใช้น้อยลงกว่าแต่ก่อน เพราะใช้สมาร์ทโฟนกับแท็ปเล็ตมากขึ้น ก็ยังเป็นที่สงสัยโลกยุคหลังพีซี จะเป็นอย่างไร CPU ตระกูล ARM จะสามารถยึดตลาดได้เบ็ดเสร็จ เหมือน x86 ของอินเทลเคยทำได้เหมือนแต่ก่อนไหม
  • สำหรับโปรแกรมเวอร์ชั่นหน้าตรงแผนที่โลก แสดงสเปคตรัมความสูงจีออยด์ ผมอาจจะเปลี่ยนมาเป็น ลูกโลก 3D ให้ดูน่าสนใจมากขึ้น ผมเตรียมลูกโลกไว้แล้วสำหรับเวอร์ชั่นหน้า

geoidheight_mac_07

แนะนำโปรแกรมคำนวณความสูงจีออยด์ (Geoid Height Pro) บน EGM96 และ EGM2008 (แจกให้ใช้ฟรี)

เปลี่ยนชื่อโปรแกรม

  • สำหรับโปรแกรม Geoid Height Pro ชื่อเดิมคือ Geoid Height Calculator เนื่องจากชื่อเดิมไปพ้องกับโปรแกรมทางฝั่งอเมริกา เกรงจะมีปัญหาด้านลิขสิทธิ์ ก็ขอเปลี่ยนชื่อตามนี้ครับ

ทำไมต้องคำนวณความสูงจีออยด์

  • เป็นที่ทราบกันว่าความสูงเมื่อวัดด้วย GPS จะเป็นความสูงที่อยู่บนทรงรีของ WGS84 เรียกว่า Ellipsoidal Height แต่ในชีวิตจริงของคนเราความสูงที่เราต้องการคือความสูงที่เทียบกับระดับน้ำทะเลปานกลาง (Mean Sea Level)  โดยเฉลี่ยแล้วพื้นผิวจีออยด์จะทับกันสนิทได้กับระดับน้ำทะเลปานกลาง ดังนั้นถ้าทราบความสูงจีออยด์ในตำแหน่งนั้น เราก็สามารถคำนวณหาความสูงจาก GPS เทียบกับระดับน้ำทะเลปานกลางได้ และความสูงเมื่อเทียบกับระดับน้ำทะเลปานกลาง เรียกอีกอย่างได้ว่า Orthometric Height

geoid2_lg

geoid undulation

Geoid Height Pro

  • ตั้งแต่ปี 2008 รูปทรงของสนามแรงดึงดูดของโลก (Earth Gravitational Model)  เรียกชื่อว่า EGM2008 ได้ถูกเปิดตัวโดย NGA  (National Geospatial Intelligence Agency) และก็ได้ปรับปรุงมาหลายรุ่นแล้ว ปัจจุบัน นำมาใช้งานแทนที่ EGM96 กันมากแล้ว ผมใช้เวลาว่างๆ เขียนโปรแกรมมาคำนวณความสูงจีออยด์ จากที่เขียนเล่นๆในตอนแรก หลังๆมาเพิ่มนู่นนิดเพิ่มนี่หน่อย ก็กลายมาอย่างที่เห็น

geoid height calculator

ส่วนประกอบของโปรแกรม

  • ถ้าติดตั้งโปรแกรมจะเห็นโฟลเดอร์ย่อยชื่อ geoids จะมีไฟล์ “corrcoef” และ “egm96” สองไฟล์นี้เป็นไฟล์ ascii สำหรับคำนวณความสูงจีออยด์บนโมเดล EGM96 ส่วนอีกไฟล์ที่ขนาดใหญ่ประมาณ 150 MB เป็นไฟล์ไบนารี ชื่อไฟล์ “Und_min2.5×2.5_egm2008_WGS84_TideFree_reformatted” สำหรับคำนวณความสูงจีออยด์บน EGM2008 ในที่นี้จะขอเน้นเฉพาะ EGM2008
  • ไฟล์ “Und_min2.5×2.5_egm2008_WGS84_TideFree_reformatted” ไม่ใช่ไฟล์ต้นฉบับ แต่เป็นไฟล์ที่ถูกรีฟอร์แม็ต เปลี่ยนรูปใหม่สำหรับโปรแกรมเปิดโค๊ด Geotrans ในไฟล์นี้บรรจุความสูงจีออยด์ทุกๆที่ของโลกนี้ ลักษณะไฟล์เป็นกริด แต่ละกริดมีขนาด 2.5’x2.5′ หรือประมาณ 4.5 กม. x 4.5 กม.
  • ถ้าใช้โปรแกรมจำพวก Hex editor มาเปิดปรับโหมดเป็น Big Endian ปรับให้ดูเป็นเลขฐานสิบจะเห็น ตัวเลข 4321 (ไบต์ที่ 5-8) และตัวเลข 8640 (ไบต์ที่ 9-12) ตัวเลขนี้แสดงขนาดของกริด= 4321×8640 จำนวนคอลัมน์(แกน x หรือตามแกนของ longitude) คือ 8640 จำนวนแถว (แกน y หรือตามแกนของ latitude) คือ 4321und_geoid_file_hex
  • ปรับโปรแกรมให้ดูเป็นเลขฐาน 16 ถัดไปไบต์ที่ 13-20 ขนาด 8 ไบต์เป็นขนาด double แสดงระยะห่างระหว่างจุดของกริดในแนวแกน x อ่านมาได้ 3fa55555 55555555 แปลงเป็นตัวเลขได้ 0.04166666666 หน่วยเป็นองศา คูณด้วย 60 เข้าไปเป็น ลิปดาก็ได้ 2.5′ (ตรงกับที่ระบุไว้ตั้งแต่แรกว่าขนาดของแต่ละกริด 2.5’x2.5′)und_geoid_file_hex_griddist
  • ถัดไปไบต์ที่ 21-28 เป็นระยะห่างระหว่างจุดของกริดในแนวแกน y ซึ่งก็เท่ากัน
  • ต่อไปทุกๆ 4 ไบต์จะเป็นตัวเลขลักษณะเป็น float แสดงความสูงของจีออยด์ลักษณะเป็นจุดๆ จนครบทั้งหมด 4321×8640 จุด

und_geoid_file_hex_float

  • โปรแกรมของผมก็จะอ่านไฟล์นี้ในลักษณะนี้มาทั้งหมดมาเก็บเป็น array เรียกว่า Cahce All ซึ่งโปรแกรมจะกินเมมโมรีพอสมควรประมาณ 500 MB ซึ่งเครื่องพีซีหรือโน๊ตบุ๊คสมัยปัจจุบัน คงไม่ใช่เรื่องเหลือบ่ากว่าแรง

ดาวน์โหลดและติดตั้ง

  • โปรแกรมเขียนด้วย FPC/Lazarus ทำไฟล์ติดตั้งด้วย Inno Setup ดาวน์โหลดโปรแกรมได้ที่ “ดาวน์โหลด (Download)” ด้านขวามีทั้ง 32 บิตและ 64 บิต
  • ทำการติดตั้ง ผมทดสอบติดตั้งบนวินโดส์ 7/8 รันแล้วไม่มีปัญหา เมื่อเปิดโปรแกรมจะเห็นหน้าตาแรกเข้าดังรูปด้านล่าง ลักษณะ user inteface ก็เน้นเรียบง่าย มีอยู่หน้าเดียว เลือกโมเดลได้ว่าจะใช้ EGM96 หรือ EGM2008 2.5’x2.5′ ถัดไปจะเป็นช่องให้ป้อนพิกัด Latitude/Longitude ในระบบพิกัด WGS84 ถ้ามีความสูงที่ได้จาก GPS หรือรังวัดจาก GPS ก็ป้อนที่ Ellipsoidal Height ได้
  • เมื่อป้อน latitude/longitude แล้วก็คลิก “Compute” โปรแกรมจะคำนวณนำไปเขียนให้ที่ช่าง Geoid Height หรือถ้าป้อนความสูง Ellipsoidal Heigtht  มาด้วยโปรแกรมจะทำการคำนวณ Orthometric Height มาให้ด้วย

geoidheight-first

  • ถัดลงมาด้านซ้ายเป็นตารางกริด จะถูกใช้เมื่อเปิดไฟล์ที่เก็บค่า Latitude/Longitude หลายๆจุด ในกรณีที่ต้องการคำนวณเยอะๆ ส่วนด้านขวาที่ประกอบด้วยแผนที่โลกอย่างง่ายๆ มีเส้น Latitude/Longitude ในแนวตั้งแนวนอน ทุกๆ 45 องศา ส่วนที่เป็นสีๆเป็นสเปคตรัม ได้จากการอ่านไฟล์ที่ผมกล่าวไปแล้วแล้วนำความสูงจีออยด์มาแมพกับสี โดยที่ด้านสีน้ำเงินเข้มแทนความสูงจีออยด์ -107 เมตร จะไปถึงโทนสีแดงเข้มแทนความสูงจีออยด์ที่มากสุด 87 เมตร
  • ด้านล่างเขียนสเกลมีตัวเลขกำกับให้ดูง่ายด้วย ใต้แผนที่โลกจีออยด์จะมีทูลส์บาร์เล็กๆ สำหรับการซูมเข้าออก การเลื่อนแผนที่ให้ใช้งานได้สะดวกด้วย
  • การเลื่อนเมาส์ โปรแกรมจะทำการคำนวณค่าความสุงจีออยด์ให้แบบเรียลไทม์ แสดงค่าพิกัดและความสูงจีออยด์ที่ status bar ด้านล่างด้านขวา

วิธีใช้งาน

  • มุม latitude/longitude สามารถป้อนได้สามแบบ แบบแรกเป็นดีกรีเช่น 12.2325215 แบบที่สองทศนิยมที่ลิปดาเช่น 12 35.25322 และแบบสุดท้ายคือแบบแยก 12 40 21.4512 ใส่เครื่องหมายลบได้กรณี latitude อยู่ต่ำกว่าเส้นศูนย์สูตร
  • ช่วงของ latitude ที่คำนวณได้อยู่ในช่วง -90…90 ส่วน longitude ป้อนค่าได้ตั้งแต่ -180..180
  • มาทดสอบกันเลย ผมลองป้อนค่าเข้าดังรูปด้านล่าง คลิกคำนวณจะได้ผลลัพธ์และ เขียนกากบาทให้ที่แผนที่โลกด้วย ตรงตำแหน่งพิกัดที่ป้อนไป ลองซูมแผนที่โลกมาดู

geoidheight-manualinput

การคำนวณผ่านไฟล์ coordinates

  • เมื่อติดตั้งโปรแกรมแล้วจะมีโฟลเดอร์ย่อยชื่อ “data” ผมจะเก็บไฟล์ coordinates ของ latitude/longitude เอาไว้ทดสอบ ไฟล์เหล่านี้สามารถเป็นตัวคั่นด้วยคอมมาได้ (csv) หรือกั้นด้วยช่องว่างได้ คลิกที่ทุลส์บาร์ด้านเปิด ทำการเปิดไฟล์ชื่อ NE2000.csv มีจุด coordinates ทั้งหมด 2000 จุด ได้จาก randomsample_data
  • ต่อไปโปรแกรมจะถามรูปแบบ ไฟล์นี้เก็บค่า lattitude/longitude เท่านั้น เลือกแบบ “N E” จากนั้นคลิก import

seelct_format

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

geoidheight-openneทดสอบกับไฟล์ 3000 จุด แบบมีความสูง

  • ลองเปิดไฟล์ PNEZ3000.csv ไฟล์นี้มีความสูง Ellipsoidal Height ติดมาด้วย แต่เหมือนเดิมคือค่าความสูงได้จากการ random

format_pnez

  • ทำการคำนวณ เนื่องจากไฟล์นี้มีความสูง Ellipsoidal Height มาด้วยโปรแกรมจะคำนวณหา Orthometric Height มาให้ด้วยเช่นกัน geoidheight-pnez
  • ถ้าต้องการเซฟไฟล์ที่คำนวณแล้วสามารถคลิกที่ทูลส์บาร์ด้านบนรูปดิสเก็ตได้

ที่มาไฟล์ทดสอบ

  • ไฟล์ทดสอบชื่อ GeoidHeights.dat (credits Charles F. F. Karney ผู้พัฒนา GeographicLib) ผมดาวน์โหลดมาเป็นไว้อ้างอิง ไม่เปิดไฟล์นี้มาคำนวณนะครับ ในไฟล์ประกอบด้วยค่าพิกัด latitude/longitude ความสูงจีออยด์บน EGM84 EGM96 EGM2008 ตามลำดับ จำนวนจุดทั้งหมด 500, 000 จุด ค่าพิกัดได้จากการ random ผมนำไฟล์นี้มาตัดแบ่งเพื่อนำมาคำนวณด้วยโปรแกรมของผม เพื่อทดสอบว่าค่าความสุงจีออยด์ที่คำนวณมาได้ตรงกันไหม ค่าที่ได้จะแตกต่างกันระดับเศษของมิลลิเมตร

geoidheights-testdata

การคำนวณ Interpolation และเครดิต

  • ใช้แบบ Bi cubic interpolation ส่วนในแผนที่ในโปรแกรมเวลาผู้ใช้ลากเมาส์ ความสูงจีออยด์ที่คำนวณแบบเรียลไทม์ ใช้แบบ Bi linear interpolation
  • ก็ขอยกเครดิตให้กับโปรแกรมเปิดโค๊ด Geotrans ผมศึกษาและเรียบเรียงการคำนวณ EGM2008 จากโค๊ดภาษา c/c++ ได้ ที่นี่
  • ยกเครดิตคำนวณความสูงจีออยด์บน EGM96 ผมศึกษาและเรียบเรียงจากโค๊ดภาษา c ได้ ที่นี่ (credits ineiev) ซึ่งเจ้าของโค๊ดเขาเรียบเรียงจากภาษาฟอร์แทรนของ NGA แต่สำหรับผมก็ไปศึกษาฟอร์แทรนจากโค๊ดของ NGA เหมือนกันแต่ไม่สำเร็จ ทั้งๆตอนปี 2 อยู่มหาวิทยาลัยก็ร่ำเรียนภาษานี้จากเครื่องเมนเฟรมมาเหมือนกัน ผ่านไปหลายสิบปี กลายเป็นคนแปลกหน้า

ทิ้งท้าย

  • เนื่องจากโปรแกรมยังเป็นรุ่นแรกๆ คาดว่าบั๊กคงจะมีพอสมควร การ zoom in หรือ zoom out ใช้เวลา 4-5 วินาที โปรแกรมใช้เวลาในการเขียนแผนที่โลก ที่ใช้เวลามาก เนื่องจากไม่ได้ใช้เอนจิ้นแผนที่่ใดๆมาช่วยเลย เขียนบน canvas แบบดิบๆ
  • ก็ขอฝากโปรแกรม Geoid Height Pro ประดับวงการสำรวจไว้อีกโปรแกรมหนึ่งครับ

การคำนวณความสูง Geoid โดยใช้ EGM96 และ EGM2008

  • ขอพักเรื่องโปรแกรมมิ่งสักตอนเพราะว่า เขียนเกี่ยวกับเรื่องโปรแกรมมิ่งต้องใช้พลังความคิดมาก นอกจาก library “GDAL” ที่ผมกำลังเขียนถึง ซึ่งมีแง่มุมให้เขียนเกี่ยวกับการใช้งานได้เป็นร้อยๆตอนเลยละครับ ถ้ามีแรงกายและใจขนาดนั้น ถ้ายังจำกันได้คือ GeographicLib ของ Charles Karney ที่เคยอ้างอิงถึงไปแล้ว มีเรื่องอีกเรื่องที่น่าสนใจคือ การคำนวณ Geoid Height ซึ่งดูโค๊ดของ Charles Karney โมดูลนี้ต้องเป็นงงเรื่องอัลกอริทึ่ม มากไปกว่านั้นมีรุ่นน้องส่งโค๊ดมาให้คำนวณเรื่องเดียวกันแต่เป็นโค๊ดของภาษา Fortran ยิ่งงงเข้าไปอีก ทั้งที่เคยร่ำเรียนตอนอยู่มหาวิทยาลัย แต่ก็ลืม syntax ไปหมด
  • EGM (Earth Gravitational Model) ที่คนที่รังวัด GPS คงต้องทราบกันดี รุ่นก่อนหน้านี้คือ EGM96 ใช้งานแพร่หลายที่สุด โปรแกรมคำนวณ GPS ทั้งหลายเช่น Leica Geo Office (LGO) หรือ Trimble Geo Office (TGO) ผมยังใช้ LGO5 ยังเป็นรุ่นเก่าอยู่ไม่ทราบว่าในรุ่นใหม่ ทั้ง TGO และ LGO ปรับมาใช้ EGM2008 แล้วหรือยัง
  • ที่อยากเขียนเรื่องคำนวณ Geoid Height เพราะในการใช้ GPS ในปัจจุบันการอ้างอิงความสูงจะเป็นความสูงบน Ellipsoid ก็คือ WGS84 ถ้าบอกว่าความสูงบน WGS84 เท่ากับ 35 เมตร จะเท่าไหร่เมื่อเมื่อเทียบกับ รทก. (ระดับน้ำทะเลปานกลาง หรือ MSL – Mean sea level) ที่เราคุ้นเคยกันดี การคำนวณ Geoid height จึงเป็นเรื่องที่คำนวณการทอนความสูงจาก WGS84 มาบน MSL (หรือเรียกอีกอย่างว่า Orthometric Height) แต่คนใช้ระดับชาวบ้าน บางครั้งไม่ต้องสนใจเพราะในเครื่อง GPS มือถือรุ่นใหม่ทั้งหลายได้คำนวณความสูงจากทรงรี WGS84 เป็น ให้เป็น MSL ให้เป็นที่เรียบร้อยแล้ว (คือภายในเครื่องได้บรรจุ EGM96 เข้าไปเรียบร้อย)

รูปทรง Geoid

  • รูปทรงรีที่ใช้แทนสัณฐานโลก จะมีรูปทรงที่แน่นอน สามารถใช้สูตรทางคณิตศาสตร์คำนวณได้ แต่ Geoid เป็นจะเป็นทรงที่ไม่แน่นอน บุบๆบู้บี้ ดูรูปข้างล่างประกอบ
รูปทรง Geoid (ภาพจาก http://en.wikipedia.org/wiki/Geoid)

ความสัมพันธ์ระหว่าง Geoid และ ทรงรี

  • เนื่องจากค่าความสูงที่เราต้องการคือต้องอยู่บน Geoid (เทียบเท่าระดับน้ำทะเลปานกลาง) แต่ความสูงที่ได้จากรังวัด GPS (ตัวอย่างเช่นการรังวัดแบบ Fast Static และ Static) จะอยู่บนทรงรี ซึ่งแต่ละสถานที่ความต่างเนื่องรูปทรงที่ไม่แน่นอนของ Geoid จึงทำให้แต่ละสถานทีค่าความสูงต่างจากทรงรีและบน Geoid จะไม่เท่ากัน
ความสัมพันธ์ Geoid และทรงรี (ภาพจาก http://principles.ou.edu/earth_figure_gravity/geoid/index.html)
  • จากรูปด้านบน(ผมชอบรูปนี้มากแสดงได้ชัดเจน) ค่าความสูง H (รทก.) = h (ความสูงบนทรงรี ได้จาก GPS) – N (ค่าความสูง Geoid) จากสูตรความสูงของจุดที่เราต้องการจริงๆแล้วอยู่บนภูมิประเทศ (Topography หรือ Terrain) ถ้าเรารังวัด GPS จะได้ค่า h ออกมา ถ้าสามารถคำนวณหา N ได้จากค่าพิกัด geographic (lat/long) เราก็สามารถหาค่า H ที่เราต้องการได้ จากรูปด้านบนจะสังเกตเห็นว่าแนวคำนวณหา H จะเป็นแนวตั้งฉากกับ Geoid ซึ่งจะเป็นแนวแรงไปตามแรงโน้มถ่วงเสมอ แต่แนว h จะเป็นแนวตั้งฉากกับทรงรี ลองดูรูปอีกรูปหนึ่งด้านล่าง
ความสัมพันธ์ระหว่าง Geoid และทรงรี (ภาพจาก http://en.wikipedia.org/wiki/Geoid)

ความเป็นมาของ EGM (Earth Gravitational Model)

  • EGM96 เป็นผลงานของความร่วมมือของ National Imagery and Mapping Agency (NIMA), NASA Goddard Space Flight Center (GSFC) และ Ohio State University โครงการนี้ได้รวบรวมข้อมูลความโน้มถ่วงจากหลายๆแหล่งของโลก ด้วยวิธีที่แตกต่างกันบ้าง เช่นในมหาสมุทรใช้ดาวเทียม GEOSAT และ ERS-1 ข้อมูลเหล่านี้จะนำมาหาค่าที่เรียกว่า coefficients ของ EGM96
  • แรงโน้มถ่วงของโลกมีลักษณะเป็นฟังก์ชั่น Harmonic  ซึ่งฟังก์ชั่นฮาร์โมนิค จะคำนวณได้ก็ต่อเมื่อทราบค่า coefficients ที่กล่าวไว้ข้างต้นนั่นเอง โมเดล EGM96 จะประกอบไปด้วยกริดแต่ละช่องขนาด 15 ลิปดา x 15 ลิปดา และแต่ละช่องจะเก็บค่า coefficients ที่แตกต่างกันไปตามค่าพิกัด การคำนวณหาความสูง geoid (Geoid Undulation) จะรับ Input จากผู้ใช้คือค่าพิกัด แล้วนำค่าพิกัดไปดึงเอาค่า coefficient แล้วนำค่า coefficient ไปคำนวณหาค่าความสูง Geoid (N – เรียกอีกอย่างว่า Geoid separation)

EGM2008

  • จัดทำโดย U.S. National Geospatial-Intelligence Agency (NGA) ชื่อเดิมก็คือ NIMA นั่นเอง โดยได้ปรับปรุงจาก EGM96 โดยเพิ่มข้ิอมูลจากดาวเทียม Gravity Recovery and Climate Experiment(GRACE) เป็นดาวเทียมของ NASA ที่วัดสนามความโน้มถ่วงของโลกปล่อยสู่วงโคจรในปี 2002 โดยที่โมเดลนี้ได้เผยแผ่ในปี 2008 จึงเรียกว่า EGM2008 ความละเอียดของ EGM2008 ประกอบด้วยกริดที่แต่ละช่องมีขนาด 1′ x 1′  หรือประมาณบรรจุค่า coefficients ประมาณ 4 ล้านค่า

EGM96 vs. EGM2008

  • EGM2008 ควรจะมี accuracy สูงกว่า EGM96 แต่บางรายงานก็ยังก้ำกึ่ง ตัวอย่างรายงานและการทดสอบที่แสดงว่า EGM2008 นั้นดีกว่า EGM96 ได้แก่ Wuhan University หรือที่ โดยศาสตราจารย์  Charles Merry, University of Cape Town ท้ายข้อสรุประบุว่ายากที่จะบอกว่า EGM2008 ละเอียดกว่า EGM96 มากเท่าไหร่ แต่ที่ทวีปอเมริกาเหนือ ทวีปยุโรป ค่า Accuracy ของ EGM2008 ดีถึง ±10 ซม.

การคำนวณความสูง Geoid บน EGM96

  • หาโปรแกรมที่เป็นโปรแกรม standalone ไม่ได้ส่วนใหญ่แล้วจะแฝงอยู่ในโปรแกรมด้านการแปลงพิกัด เช่น Trimble Coordinate Calculator หรือโปรแกรมด้านการคำนวณรังวัด GPS เช่น TGO และ LGO นอกเหนือจากนั้นเป็นโปรแกรม online ซะมากกว่า ที่แรกก็คือที่ NGA โดยตรงไปที่ http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/intpt.html ดูตัวอย่างด้านล่าง
ป้อนข้อมูลคำนวณ
  • ผลลัพธ์ที่ได้
ผลลัพธ์ที่ได้คือค่าความสูง Geoid
  • สมมติว่าตรงที่ผมป้อนค่าพิกัดไป รังวัด GPS ได้ความสูงบนทรงรีเท่ากับ (h) 2.504 เมตร และค่า N จากรูปด้านบนเท่ากับ -34.39 เมตร จากสูตร H = h – N จะได้ค่าความสูงที่เป็นรทก. H = 2.504 – – 34.39 = 2.504 + 34.39 = 36.894 เมตร

ดาวน์โหลดและติดตั้งโปรแกรม Alltrans EGM2008 Calculator

  • เป็นโปรแกรมฟรี สามารถดาวน์โหลดได้ที่ alltransegm2008.zip พัฒนาโดย Hans-Gerd Duenck-Kerst เป็นโปรแกรมเมอร์ชาวเยอรมัน ในตัวโปรแกรมจะมีค่า coefficients ของ  EGM2008 มาด้วยขนาด 10′ x 10′ ซึ่งเวลาดาวน์โหลด zip file ของโปรแกรมนี้จะมีขนาดเกือบๆ 7 MB แต่ถ้าติดตั้งแล้วไปดูขนาดของโปรแกรม ขนาดเพียงแค่ 80 KB เขียนด้วย MS C++ จะเห็นอีกไฟล์ชื่อ Und_min10x10_egm2008_isw=82_WGS84_TideFree_SE เป็นไฟล์ข้อมูลค่า coefficients ของ EGM2008 ขนาดเมื่อ unzip แล้วประมาณ 9 MB
  • ในหน้า website ของ NGA ที่ http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008/egm08_wgs84.html จะเห็นว่ามีหมวดหมู่ของโปรแกรมเช่นการคำนวณความสูง Geoid ด้วยวิธี Interpolation หมวดหมู่แรกคือ

The 1 x 1 minute Grid Interpolation

  • จะมีโปรแกรมที่เขียนด้วย Fortran ให้ดาวน์โหลด ซึ่งผมจะไม่แนะนำเพราะเป็น command line เกรงว่าจะยากไป ประกอบไปด้วยไฟล์ coefficients ของ EGM2008 ขนาดของกริด 1′ x 1′ ชื่อ Und_min1x1_egm2008_isw=82_WGS84_TideFree_SE.gz ไฟล์มีขนาดประมาณ 825 MB ซึ่งใหญ่มาก ซึ่งถ้าใช้ internet ที่ไม่เร็วเช่นผ่านมือถือซึ่งผมต้องใช้บ่อยเพราะนอกพื้นที่แล้วจะไม่มี high speed ให้ใช้ ดังนั้นผมยังไม่แนะนำตอนนี้ และใน website เองก็เตือนว่าถ้าใช้ไฟล์ข้อมูลตัวนี้จะกินแรมมาก หมวดหมู่ที่สองคือ

The 2.5 x 2.5 Minute Grid Interpolation

  • เช่นเดียวกันจะมีโปรแกรมที่เขียนด้วย Fortran เพื่อคำนวณไฟล์ค่า coefficients EGM2008 ขนาด 2.5 ลิปดา x 2.5 ลิปดา ชื่อไฟล์คือ Und_min2.5×2.5_egm2008_isw=82_WGS84_TideFree_SE.gz ผมแนะนำให้ดาวน์โหลดไฟล์นี้ ซึ่งมีขนาดประมาณ 135 MB ซึ่งพอรับได้ เราจะใช้ไฟล์นี้ไปใช้กับโปรแกรม Alltrans EGM2008 Calculator ที่แนะนำไปข้างต้น เมื่อดาวน์โหลดไฟล์นี้แล้วให้ unzip ไว้

AllTrans EGM2008 Calculator

  • ลองรันโปรแกรมดู จะเห็นโปรแกรมมีหน้าตาที่เรียบง่ายมาก
โปรแกรม Alltrans EGM2008 Calculator

 

 

    • จากรูปด้านบนจะมีเมนูที่เป็นแท็ปให้เลือกอยู่ 3 ทางเลือกหลัก คือ EGM2008 Manual Calc, EGM2008 GridMaker และ EGM2008 File Calc

 

    • ก่อนจะทำการคำนวณ เราจะตั้งไฟล์ข้อมูลของ EGM2008 ขนาด 2.5′ x 2.5′ ดังรูปด้านล่าง โดยการ browse ไปที่ไฟล์ที่ดาวน์โหลดมาและ unzip แล้วที่ผมกล่าวไปแล้วข้างต้น อย่าลืมคลิกเพื่อเลือก 2.5′ x 2.5′  Grid ให้สอดคล้องกับไฟล์ข้อมูลด้วย

 

 

การคำนวณแบบ Manual

  • ลองคำนวณแบบ manual ดู โดยใช้ค่าพิกัด latitude 12°30’10” (12.5027778) longitude 98°45’15” (98.7541667) ดูผลลัพธ์ แต่โปรแกรมจะแสดงผลลัพธ์ให้ด้วยอัลกอริทึ่มหลายๆวิธ๊
ผลลัพธ์การคำนวณแบบ manual

การสร้างกริดค่าความสูง Geoid

  • ลองป้อนค่าพิกัด ตั้งค่า spacing แล้วอย่าลืมคลิกที่ปุ่ม Calc จากนั้นคลิกที่ View ดูผลลัพธ์
สร้างกริดความสูง Geoid
  • ผลลัพธ์จะถูกเปิดด้วยโปรแกรม Notepad ของวินโดส์
Nodepad แสดงค่าความสูง Geoid เป็นกริด
  • ส่วนการคำนวณด้วยการ input เป็นไฟล์ ก็ไม่ยากลองดูโปรแกรม ผมไม่ได้แสดงตัวอย่างไว้
การคำนวณในโหมด input file
  • สรุปแล้ว accuracy ของ EGM2008 ก็ยังไม่ชัดเจนว่าจะดีกว่า EGM96 แต่เราได้ศึกษาการใช้ EGM2008 ก็ดีครับ ส่วนนักวิทยาศาสตร์ก็มีหน้าที่ต้องปรับปรุงโมเดลให้ดีไปกว่านี้ แต่ขนาด EGM96 ที่ผมใช้ในประเทศไทยเราพบว่าได้ค่าระดับเมื่อเทียบกับค่าระดับที่ได้จากงานระดับ (Levelling) อยู่ในเกณฑ์ประมาณเกือบๆงานชั้น 3 ของงานระดับ แต่ทั้งนี้ก็ไม่มีใครกล้าการันตี (ส่วนค่าพิกัดที่ได้จากรังวัด GPS แบบ fast static หรือ static นั้นยอดเยี่ยมอยู่แล้วสามารถการันตีได้) ส่วนผมแล้วก็เริ่มนำ EGM 2008 มาใช้แล้ว