劉 軍,王 鶴
(1.防災(zāi)科技學院 生態(tài)環(huán)境學院,河北 燕郊 065201;2.防災(zāi)科技學院 地球科學學院,河北 燕郊 065201)
目前已有的大地測量計算實驗系統(tǒng)一方面偏重實驗儀器模擬操作,大地測量數(shù)據(jù)處理功能不夠突出,另一方面源程序不開放,導致學生難以再利用,進而難以開展創(chuàng)新性實驗[1]。
鑒于上述原因,在充分考慮人機交互的友好性和可擴展性的基礎(chǔ)上,采用實驗系統(tǒng)開發(fā)中常用的MATLAB軟件[2-5],通過系統(tǒng)功能模塊的劃分、用戶界面的設(shè)計、算法公式的梳理及程序代碼的實現(xiàn)等步驟,設(shè)計開發(fā)了一套大地測量計算實驗系統(tǒng)。該系統(tǒng)可用于大地測量計算內(nèi)容的課堂教學演示,提高授課效率,激發(fā)學生的學習興趣,為學生提高動手能力和創(chuàng)新能力提供平臺基礎(chǔ),達到提升教學質(zhì)量的目的。
根據(jù)大地測量學課程理論教學的重點并結(jié)合工程實踐的需要,大地測量中基本計算內(nèi)容應(yīng)涵蓋參考橢球與測量計算、高斯投影及其計算、大地測量坐標系統(tǒng)的轉(zhuǎn)換等3 個方面。這些內(nèi)容間既相互關(guān)聯(lián)又彼此獨立?;谏鲜鏊伎迹贛ATLAB 的大地測量計算實驗系統(tǒng)集成了3 個經(jīng)典功能模塊,每個模塊中均含有不同的子模塊,如圖1所示。
圖1 大地測量計算實驗系統(tǒng)功能模塊
實驗系統(tǒng)選擇功能強大的MATLAB R2015b 作為開發(fā)平臺。MATLAB 是由美國MathWorks 公司開發(fā)的科學與工程計算軟件,具有功能強、效率高、簡單易學等特點,尤其是矩陣計算,省時直觀,適用于理論教學過程中展示計算實例,輔助理解理論公式的計算過程,可以改善理論課程的教學效果,使學生更容易掌握抽象概念和復雜運算。
MATLAB 的GUI 設(shè)計可通過2 種方法實現(xiàn)。一種是編寫M文件創(chuàng)建GUI,另一種是通過GUIDE工具設(shè)計界面。本系統(tǒng)采用GUIDE 創(chuàng)建界面,新建的MATLAB GUI保存成包含交互控件和菜單屬性的二進制fig文件和用來存儲回調(diào)函數(shù)的M文件。通過編寫界面中各個交互組件和菜單的回調(diào)函數(shù),實現(xiàn)界面設(shè)計效果和程序功能。
用戶界面設(shè)計,力求簡潔、清晰地體現(xiàn)系統(tǒng)的主要功能和特征[3]。系統(tǒng)的主界面包括地球橢球與測量計算、高斯投影及其計算、大地測量坐標系統(tǒng)的轉(zhuǎn)換等3 個功能模塊,點擊主菜單可彈出對應(yīng)的二級菜單。通過點擊子菜單或工具欄進入各功能子模塊對應(yīng)的界面。
大地測量學中研究的地球形狀主要是指大地水準面的形狀,它是一個封閉的不規(guī)則重力等位面[6],是野外測量作業(yè)的基準面。為了解決測量計算問題,需要一個可以代表地球形狀和大小的規(guī)則數(shù)學曲面,這就是具有幾何特征的參考橢球面,通過建立地面與橢球面上點的一一對應(yīng)關(guān)系,從而開展以橢球面為基準面的一系列大地測量計算研究。參考橢球與測量計算模塊包括5 個子模塊:橢球參數(shù)、法截線曲率半徑計算、子午線弧長正反算、地面觀測距離歸算至橢球面和大地問題解算。
橢球參數(shù)是描述參考橢球形狀和大小的幾何參數(shù),包括長半軸a、短半軸b、扁率f、第一偏心率e和第二偏心率e′等。地球曲率半徑是大地測量和地球科學計算中常用的基本參數(shù),主要包括主曲率半徑(子午圈、卯酉圈方向)和平均曲率半徑。子午線弧長是大地測量學中的一個基本量,主要用于研究地圖投影中的高斯投影計算和推算地球形狀大小的弧度測量計算。地面觀測距離歸算至橢球面,即斜距歸算,是指將野外實測的電磁波測距邊長在經(jīng)過氣象改正(溫度、氣壓、濕度)、儀器常數(shù)改正(加常數(shù)、乘常數(shù))、周期誤差改正等系統(tǒng)誤差后得到的儀器中心至反射鏡中心的空間直線距離D歸算到參考橢球面上2點間的大地線長度S。大地問題解算分為大地問題正解和大地問題反解。隨著現(xiàn)代空間技術(shù)和航空航天、船舶導航、導彈制導等方面科學技術(shù)的發(fā)展,大地問題解算(尤其是反算)有其重要作用。鑒于各種用途和大地問題解算的復雜性,大地問題解算的方法和公式多達幾十種。這些算法中,比較典型的有高斯平均引數(shù)公式、貝塞爾(Bessel)公式和韋森特(Vincenty)[7]公式。其中,高斯平均引數(shù)公式是解決短距離(<200 km)大地問題解算的一種經(jīng)典方法,大地坐標計算精度為0.000 1″,方位角計算精度為0.001″,大地線邊長精度為0.001 m。貝塞爾公式展開為橢球偏心率平方e2(或e’2)的冪級數(shù),解算精度與距離無關(guān),適用于中長距離(400~20 000 km)的大地問題解算[8]。韋森特公式適用于大地線長從1 cm 到近20 000 km 的大地問題解算,大地方位角的精度為0.000 1″,大地線長的計算精度為毫米級。該實驗系統(tǒng)只提供了高斯平均引數(shù)公式和貝塞爾公式的計算,學生可參考相關(guān)文獻實現(xiàn)韋森特公式的編程,擴展系統(tǒng)內(nèi)容,從而鍛煉動手能力。
以子午線弧長正反算模塊為例,包括輸入?yún)?shù)、執(zhí)行按鈕和計算結(jié)果3 部分。該模塊能夠?qū)崿F(xiàn)子午線弧長正算,即根據(jù)緯度B計算子午線弧長X,也可以根據(jù)子午線弧長反求大地緯度B,即子午線弧長反算。用戶選擇坐標系統(tǒng)(如CGCS2000),輸入大地緯度B(DD.MM.SSSSS 格式),點擊“正算”按鈕,計算子午線弧長X。輸入子午線弧長X,點擊“反算”按鈕,計算大地緯度B,與給定大地緯度B對比,驗證反算程序的正確性。如果需要計算的子午線弧長X或大地緯度B較多,可采用文件批量轉(zhuǎn)換方式,在選擇坐標系統(tǒng)后,點擊“文件形式”按鈕,即可完成批量計算,以文件形式保存計算結(jié)果。用戶點擊“數(shù)學模型”按鈕,可以查看子午線弧長正反解公式,分別為式(1)、(2)。
大地緯度B處的子午線弧長計算公式:
式中,B為大地緯度(單位:弧度);為第一偏心率;a為長半軸;b為短半軸。
子午線弧長反求大地緯度B的迭代計算公式:
由于橢球面上的大地坐標不能直接控制大比例尺測圖,也不能直接作為工程測量的控制。此外,在橢球面上的大地問題計算非常復雜和繁瑣。因此,為了滿足控制地形測圖及控制網(wǎng)計算簡便的需要,須利用高斯投影的方法進一步把橢球面上由大地線構(gòu)成的三角網(wǎng)歸算成高斯平面上由直線段連接而成的平面三角網(wǎng)[9]。高斯投影及其計算模塊包括5個子模塊:高斯投影正算、高斯投影反算、高斯投影鄰帶換算、方向改正與距離改正。
高斯投影(又名等角橫切橢圓柱投影)是高斯-克呂格投影的簡稱,是地球橢球面到平面上正形投影的一種,是我國采用的投影方法。高斯投影坐標計算包括高斯投影正算和高斯投影反算。高斯投影正(反)算的推證方法有待定系數(shù)法和復變函數(shù)理論方法[10]。其中,待定系數(shù)法是利用該投影的3 個條件,將其展開為經(jīng)差(橫坐標)實數(shù)型冪級數(shù)形式,具有容易理解和直觀的優(yōu)點,但公式冗長復雜;利用復變函數(shù)理論推導的高斯投影公式具有形式緊湊、公式簡單、計算效率高等優(yōu)點[11]。工程中為限制高斯投影的長度變形,必須將橢球面依中央子午線按照經(jīng)差3°帶或6°帶進行分帶投影,形成了各帶獨立的高斯平面直角坐標系。為解決生產(chǎn)實踐中不同投影帶之間測量成果的轉(zhuǎn)換和聯(lián)系,需要將一個投影帶的高斯坐標換算到相鄰帶的高斯坐標,稱為高斯投影鄰帶換算,其基本思想是把橢球面上的大地坐標作為過渡坐標,利用高斯投影正、反算公式進行換帶計算。方向改正,又稱曲率改正,是橢球面上的兩點間的大地線方向歸算至平面上相應(yīng)投影點間的弦線方向所加的改正。本實驗系統(tǒng)實現(xiàn)了適用于三、四等三角測量的近似公式及二等三角測量的較精密公式的計算。距離改正是將橢球面上的大地線長S改化為平面上投影曲線兩端點的弦長D所加的改正,根據(jù)高斯投影長度變形公式可知,離開中央子午線越遠,長度變形越多,距離改正也就越大。
以高斯投影正算模塊為例,點選列表框坐標系統(tǒng)(如1980 西安坐標系)后,按度分秒格式分別輸入大地經(jīng)度L和大地緯度B,然后選擇投影帶類型(如6°帶),點擊“計算”按鈕,即可獲得高斯平面坐標、點位所處帶號和子午線收斂角。點擊“數(shù)學模型”按鈕,可以查看高斯投影正算的理論模型[16]。
式中,X為子午線弧長;為卯酉圈曲率半徑;l=L-L0(單位:弧度)為經(jīng)差;L為大地經(jīng)度;L0為中央子午線經(jīng)度;t=tanB;為第二偏心率;B為大地緯度;為第一偏心率;a為長半軸;b為短半軸。
我國常用的大地坐標系統(tǒng)包括1954 北京坐標系、1980 西安坐標系和2000 國家大地坐標系(縮寫為CGCS2000)[19],在工程測量實踐中通常需要將不同大地坐標系統(tǒng)之間進行轉(zhuǎn)換。大地測量坐標系統(tǒng)的轉(zhuǎn)換模塊包括3 個子模塊:大地坐標與空間直角坐標換算、不同空間直角坐標系的轉(zhuǎn)換和不同平面坐標系統(tǒng)之間的轉(zhuǎn)換。
同一參考橢球下地面或空間一點P 可以表示為大地坐標(B,L,H)和空間直角坐標(X,Y,Z),它們是同一大地坐標系統(tǒng)下2 種不同的坐標表達形式,二者可通過大地坐標與空間直角坐標換算公式實現(xiàn)換算。不同參考橢球下定義的不同大地空間直角坐標系統(tǒng)之間可采用布爾莎七參數(shù)模型實現(xiàn)坐標轉(zhuǎn)換。不同大地坐標系統(tǒng)下高斯平面直角坐標之間可通過相似變換模型(赫爾默特法)和多項式回歸模型實現(xiàn)坐標轉(zhuǎn)換。
以大地坐標與空間直角坐標互換模塊為例,該模塊可以實現(xiàn)單點和文件形式的大地坐標和空間直角坐標之間的相互換算。點選列表框坐標系統(tǒng)(如1954北京坐標系)后,分別點擊“大地轉(zhuǎn)空間坐標”和“空間轉(zhuǎn)大地坐標”按鈕可實現(xiàn)大地坐標(B,L,H)和空間直角坐標(X,Y,Z)之間的互換。點擊“數(shù)學模型”按鈕,可以查看大地坐標與空間直角坐標互換模型[13],即:
式中,L為大地經(jīng)度;B為大地緯度;h為大地高;為卯酉圈曲率半徑;為第一偏心率;a為長半軸;b為短半軸。
該實驗系統(tǒng)具有以下特點:①界面友好,操作簡便。系統(tǒng)模塊化設(shè)計,各模塊功能的劃分具有條理化,界面層次分明;②良好的交互性。通過設(shè)置不同參數(shù)(如坐標系統(tǒng)、算法模型、投影帶號)觀察實驗計算結(jié)果的不同,減少重復編程的時間。能夠通過“數(shù)學模型”按鈕查閱計算程序應(yīng)用的理論公式,人機交互友好;③可擴展性強。由于算法源代碼開放,方便具有大地測量學知識與MTALAB編程基礎(chǔ)的學生對程序進行修改完善,優(yōu)化擴充功能模塊,鍛煉學生使用理論知識與計算機解決實際問題的能力,提高個人素質(zhì)。
該實驗系統(tǒng)已經(jīng)應(yīng)用在我校測繪工程專業(yè)基礎(chǔ)課大地測量學的輔助性教學中。在課堂教學中,教師在理論講授和公式推導后,結(jié)合工程算例,從應(yīng)用出發(fā),把理論內(nèi)容和實際應(yīng)用密切結(jié)合,利用實驗系統(tǒng)直觀演示計算過程,強化公式中各符號(如橢球參數(shù)、不同曲率半徑、各種緯度等)的含義,使學生加深對基本原理的深刻理解,提高了學習興趣;學生利用該實驗系統(tǒng)開展課后自主學習,對理論知識進一步消化與吸收,提高了學習效率,充分調(diào)動了學習的積極主動性。鼓勵編程能力較強的學生通過查閱文獻開拓視野,研究改進算法,開展創(chuàng)新性實驗,擴充功能模塊,激發(fā)和培養(yǎng)了學生的實踐創(chuàng)新能力。此外,在大地測量學課程設(shè)計和生產(chǎn)實習中,使用本系統(tǒng)的“高斯投影坐標計算”、“高斯投影鄰帶換算”和“不同大地坐標系統(tǒng)之間的轉(zhuǎn)換”等模塊功能開展測量數(shù)據(jù)的分析、處理和計算工作。
本文從測繪工程專業(yè)應(yīng)用型創(chuàng)新人才培養(yǎng)和《大地測量學》課程教學需求出發(fā),注重理論內(nèi)容與實際應(yīng)用密切結(jié)合,基于MATLAB設(shè)計開發(fā)了大地測量計算實驗系統(tǒng),實現(xiàn)了參考橢球與測量計算、高斯投影及其計算、大地測量坐標系統(tǒng)的轉(zhuǎn)換等大地測量學基礎(chǔ)計算功能,軟件界面友好,操作簡便,可擴展性強。實踐證明,該實驗系統(tǒng)可全面輔助大地測量學課程的教與學,提高了大地測量學的授課效率,充分調(diào)動了學生自主學習的積極性,改善了課程教學效果,對激發(fā)和培養(yǎng)學生的工程實踐創(chuàng)新能力有較大幫助。