摘 要:本文詳細(xì)闡述了大地主題解算的基本原理及常用方法,并針對當(dāng)前多種解算方式進(jìn)行比較。大地橢球體計算具有復(fù)雜性,在實(shí)際應(yīng)用中存在許多困難。為解決該問題,本文采用高斯平均引數(shù)法進(jìn)行正反算,根據(jù)VS2010開發(fā)平臺和MFC框架設(shè)計一款大地主題解算軟件。該軟件基于高斯平均引數(shù)法數(shù)學(xué)模型,使大地主題解算更高效,提高坐標(biāo)解算轉(zhuǎn)換效率,為大地測量相關(guān)工作提供重要的技術(shù)支持。
關(guān)鍵詞:大地主題解算;高斯平均引數(shù)法;MFC
中圖分類號:TP 391" " " " " " 文獻(xiàn)標(biāo)志碼:A
在天文大地測量中,為了獲得點(diǎn)的大地坐標(biāo),需要在橢球面上進(jìn)行控制點(diǎn)間的坐標(biāo)解算。在橢球面上兩點(diǎn)之間的大地坐標(biāo)(大地經(jīng)度、大地緯度)、大地線以及大地方位角稱為大地元素[1]。大地主題解算包括大地主題正算和反算2種類型,大地主題正算是利用已知點(diǎn)的大地坐標(biāo)、大地線長度以及大地方位角來計算待求點(diǎn)的大地坐標(biāo)的過程。該過程是在一個橢球面上找到一個已知點(diǎn),然后利用這個點(diǎn)與待求點(diǎn)之間的距離和方位角來計算待求點(diǎn)的大地坐標(biāo);而大地主題反算是利用2個已知點(diǎn)的大地坐標(biāo),求解兩點(diǎn)之間的大地線長度以及正反方位角的過程。大地問題解算的用途是多方面的,大地反算在現(xiàn)代空間技術(shù)和航空航天、航海等領(lǐng)域發(fā)揮了重要的作用。由于橢球體計算有一定的復(fù)雜性,因此在計算過程中需要不斷進(jìn)行迭代計算,直到趨近理想結(jié)果,給人工大地主題解算帶來了巨大的工作難度。本文根據(jù)高斯平均引數(shù)法正反算方法,以微軟VS 2010為開發(fā)平臺,采用MFC框架開發(fā)和CS端應(yīng)用程序并通過圖形界面完成大地主題解算和坐標(biāo)轉(zhuǎn)換。
1 研究方法及關(guān)鍵技術(shù)
1.1 傳統(tǒng)大地主題解法
根據(jù)不同的目的和計算工具,大地主題解算方法有70余種。根據(jù)其推導(dǎo)理論將這些解算方法分為以下5種。1)根據(jù)大地坐標(biāo)系中的大地線微分方程,該方法的解算精度與距離密切相關(guān)。隨著大地線長度的增加,其收斂速度逐漸降低。因此,該方法通常應(yīng)用于較短距離的解算。2)以貝塞爾大地投影為基礎(chǔ)。該方法具有簡單、嚴(yán)密的特點(diǎn),由于地球的形狀近似于圓形,因此可以通過球面三角學(xué)公式在球面上進(jìn)行大地主題問題的解算。3)使用數(shù)值積分的解算方法求解大地線的微分方程。該方法通過直接應(yīng)用幾個核心的公式進(jìn)行數(shù)值積分計算,無須引入輔助面和勒讓德級數(shù)。這種計算方式適用于任意距離,且易于編程實(shí)現(xiàn)。但是,隨著距離增加,計算精度會有所下降,同時計算量也會相應(yīng)增加。特別是在接近兩極地區(qū),這種影響會更顯著。4)根據(jù)地圖投影理論進(jìn)行解算,該方法利用橢球面在平面上的正形投影等距離的投影、橢球面在球面上的正形投影等方式來實(shí)現(xiàn)大地主題的解算,與距離密切相關(guān),適用于特定情況[2]。5)以大地線以外的其他線條為基礎(chǔ),與橢球面上的兩點(diǎn)存在關(guān)聯(lián)的線條,除了大地線以外,也可以利用有價值的其他線條,例如法截線,來進(jìn)行大地主題的解析計算[2]。
1.2 MFC數(shù)據(jù)庫
MFC(Microsoft Foundation Class)是微軟基本類庫,其是面向?qū)ο蟮膽?yīng)用程序架構(gòu),利用其中的各種類可以很方便地搭建應(yīng)用程序框架。MFC結(jié)合了面向?qū)ο蟮木幊碳夹g(shù)和Windows消息驅(qū)動的編程技術(shù),在C++類庫中有各種API和相關(guān)機(jī)制,其被封裝成許多個類。因?yàn)樗鼈兲峁┝艘粋€應(yīng)用程序框架,使開發(fā)人員可以省略一些重復(fù)的代碼編寫工作,所以這些類可以幫助開發(fā)人員更方便地編寫Windows應(yīng)用程序。這些類包括大量Windows句柄封裝類和很多Windows的內(nèi)建控件和組件的封裝類[3],消除了WIN32 API的復(fù)雜性,統(tǒng)一了程序的概念,而且可擴(kuò)展。總體來說,MFC框架在軟件設(shè)計層面提供了明確的架構(gòu),并且給出了實(shí)現(xiàn)用戶界面的標(biāo)準(zhǔn)方式。開發(fā)者只需要根據(jù)預(yù)定義的接口,將各自應(yīng)用程序特有的元素恰當(dāng)?shù)靥畛涞竭@個框架中。
2 算法原理
2.1 高斯平均引數(shù)法正算
下面介紹高斯平均引數(shù)法正算過程。首先,將勒讓德級數(shù)在點(diǎn)P1展開,在大地線長度中點(diǎn)M展開,減少級數(shù)的項,收斂速度會更快,而且精度也會更高。其次,為了應(yīng)對求解目標(biāo)點(diǎn)M的復(fù)雜性,采用一種替代方法,即用大地線兩端點(diǎn)的平均緯度及平均方位角所對應(yīng)的點(diǎn)m來代替M點(diǎn)。通過迭代運(yùn)算,可成功實(shí)現(xiàn)大地主題的正解。這種方法具有實(shí)用性和高效性,可以有效地解決大地主題求解問題。大地元素包括橢球的大地經(jīng)緯度(B,L)、大地點(diǎn)的正反方位角(A12,A21)以及大地線弧長S等。若使用P1點(diǎn)的大地坐標(biāo)(B1,B2)以及起點(diǎn)方位角A12、大地線弧長S來解算其他大地元素,稱為大地主題正算,高斯平均引數(shù)法正算公式如公式(1)~公式(3)所示。
(1)
(2)
(3)
式中:ΔB、ΔL、ΔA分別為緯差、經(jīng)差和方位角差;Bm為平均緯度;tm、ηm為嵌套改正系數(shù);M為大地線長度中點(diǎn)。
2.2 高斯平均引數(shù)法反算
根據(jù)正算公式推出反算公式,即已知經(jīng)差ΔL,緯差ΔB及平均緯度Bm,求大地線弧長S、正方位角A12和反方位角A21,首先,根據(jù)正算公式(1),推導(dǎo)求出SsinAm、ScosAm和ΔA,在此基礎(chǔ)上求解平均方位角Am具體高斯平均引數(shù)法反算公式,如公式(4)、公式(5)所示。
(4)
(5)
式中:ΔA為大地方位角差;A為大地方位角;S為大地弧長;Am為P1和P2的平均方位角。
3 系統(tǒng)實(shí)現(xiàn)
3.1 系統(tǒng)總體框架設(shè)計
本文以微軟VS 2010平臺和C++編程語言為基礎(chǔ),設(shè)計一個基于CS端的應(yīng)用程序。該程序利用高斯平均引數(shù),實(shí)現(xiàn)了克拉索夫斯基橢球、1975國際75橢球、WGS84橢球、貝塞爾橢球4個橢球的大地主題正反算功能。程序界面清晰易操作,支持單點(diǎn)和批量計算2種方式,并保存計算結(jié)果,如圖1所示。
3.1.1 高斯平均引數(shù)法正算
輸入大地線起點(diǎn)緯度、經(jīng)度、大地方位角和大地線長度。選定橢球類型,給定Bm,Am初值,然后參與迭代計算。當(dāng)兩次迭代所得結(jié)果相差小于限值時,迭代結(jié)束,判斷A21所在象限,最終計算結(jié)果。
3.1.2 高斯平均引數(shù)法反算
首先,輸入兩端點(diǎn)經(jīng)緯度,將角度轉(zhuǎn)化為弧度參與后續(xù)計算。其次,選定橢球類型,輸入平均緯度及平均緯度處各參數(shù)。再次,分別計算ΔA、SsinAm、ScosAm,再計算大地線長度S,正反方位角A12,A21。最后,判斷方位角象限,最終輸出結(jié)果。
3.2 功能實(shí)現(xiàn)
3.2.1 計算方式
系統(tǒng)提供正向和反向2種計算方式。正向計算基于已知大地坐標(biāo)和橢球參數(shù)來計算目標(biāo)點(diǎn)的位置坐標(biāo);反向計算則根據(jù)目標(biāo)點(diǎn)的位置坐標(biāo)反推橢球參數(shù)和大地坐標(biāo)。這種靈活性使用戶在進(jìn)行大地測量的過程中更方便。
3.2.2 橢球模型切換
系統(tǒng)提供克拉索夫斯基橢球、1975國際75橢球、WGS84橢球、貝塞爾橢球4種橢球模型,可完成不同橢球模型下的大地主題正反算。這表明該系統(tǒng)具有強(qiáng)大的適應(yīng)性,可滿足不同用戶對于不同橢球模型的需求。
3.2.3 數(shù)據(jù)添加
用戶可以選擇手動輸入單個坐標(biāo)數(shù)據(jù)或通過導(dǎo)入文件批量添加數(shù)據(jù)。這種設(shè)計使用戶更高效地處理大量數(shù)據(jù)。
3.2.4 保存功能
通過將計算結(jié)果輸出至文件實(shí)現(xiàn)保存,方便用戶后續(xù)使用和分析。該系統(tǒng)保存功能靈活,用戶可自由選擇文件格式和存儲位置,便于數(shù)據(jù)管理和使用。
3.3 正算關(guān)鍵代碼
正算關(guān)鍵代碼是根據(jù)高斯平均引數(shù)法,結(jié)合實(shí)際結(jié)算經(jīng)驗(yàn)開發(fā)的,適用于短距離大地主題結(jié)算,其中關(guān)鍵代碼如下。
輔助量計算代碼:
double V1=sqrt(1+ep2*cos(B1)*cos(B1));
double M1=c/V1/V1/V1;
double N1 =c/V1;
輔助量計算方法是正算關(guān)鍵代碼的重要組成部分。該方法基于高斯平均引數(shù)法,適用于短距離大地主題結(jié)算,并結(jié)合實(shí)際結(jié)算經(jīng)驗(yàn)進(jìn)行開發(fā)。通過使用輔助量計算方法,可以更準(zhǔn)確地計算大地主題的坐標(biāo)和相關(guān)參數(shù)。具體而言,輔助量計算方法包括以下步驟。首先,根據(jù)已知的大地坐標(biāo)和相關(guān)參數(shù),計算所需的輔助量。其次,利用高斯平均引數(shù)法對輔助量進(jìn)行計算,以獲得更精確的結(jié)果。最后,根據(jù)計算結(jié)果,對大地主題的坐標(biāo)和相關(guān)參數(shù)進(jìn)行結(jié)算。在輔助量計算方法的實(shí)現(xiàn)過程中,需要考慮各種因素。對這些因素進(jìn)行分析和處理,可以獲得更準(zhǔn)確的結(jié)果。此外,輔助量計算方法還需要考慮到實(shí)際應(yīng)用場景的需求,例如計算速度和精度等。對這些需求進(jìn)行處理,可以獲得更實(shí)用的結(jié)果??傊?,正算關(guān)鍵代碼中的輔助量計算方法是一種基于高斯平均引數(shù)法,適用于短距離大地主題結(jié)算的方法。它結(jié)合實(shí)際結(jié)算經(jīng)驗(yàn)進(jìn)行開發(fā),具有思路清晰、邏輯嚴(yán)密以及推理精確等特點(diǎn)。使用該方法可以更準(zhǔn)確地計算大地主題的坐標(biāo)和相關(guān)參數(shù),為各種應(yīng)用場景提供支持。
初值計算關(guān)鍵代碼:
double dB1=1*S*cos(A12)/M1;
double dL1=1*S*sin(A12)/(N1*cos(B1));
double dA1=dL1*sin(B1);
計算大地橢球面上的一點(diǎn),須運(yùn)用專業(yè)地理學(xué)知識。當(dāng)計算初值時,需要注意函數(shù)單位以弧度計量。
最終正算結(jié)果計算關(guān)鍵代碼如下。
Vm=sqrt(1+ep2*cos(Bm)*cos(Bm));
Mm=c/Vm/Vm/Vm;
lingem=sqrt(ep2*cos(Bm)*cos(Bm));
tm=tan(Bm);
最后,根據(jù)給定的信息采用M 點(diǎn)輔助計算方法進(jìn)行精密計算。這種方法能夠計算已知點(diǎn)的大地經(jīng)緯度和大地方位角的結(jié)算真實(shí)誤差,并且這些誤差均小于0.0001″。采用高精度的計算方法使結(jié)果更準(zhǔn)確、可靠,可以滿足各種高精度應(yīng)用的需求。
3.4 反算關(guān)鍵代碼
反算關(guān)鍵代碼是用于根據(jù)已知的大地坐標(biāo)計算兩點(diǎn)間的大地線長度和反方位角的程序代碼,其中關(guān)鍵代碼如下。
前置數(shù)據(jù)計算關(guān)鍵代碼如下。
double Bm=(B1+B2)/2;
double Lm=(L1+L2)/2;
double dB=B2-B1;
double dL=L2-L1;
double tm=tan(Bm);
double lingem=sqrt(ep2*cos(Bm)*cos(Bm));
double Vm=sqrt(1+ep2*cos(Bm)*cos(Bm));
double Nm=c/Vm;
前置數(shù)據(jù)計算部分涉及解析和轉(zhuǎn)換大地坐標(biāo),提取經(jīng)度、緯度、高度等有效坐標(biāo)信息,以及地球橢球體模型的相關(guān)參數(shù)。這些數(shù)據(jù)是后續(xù)數(shù)據(jù)處理和分析的基礎(chǔ),其作用是計算兩點(diǎn)間的大地線長度和反方位角。保證大地線長度和反方位角正確計算的關(guān)鍵步驟是反算關(guān)鍵代碼的前
置數(shù)據(jù)計算。
SsinAm、ScosAm、A計算關(guān)鍵代碼:
doubleSsinAm=r01*dL+r21*pow(dB,2)*dL+r03*pow(dL,3);
doubleScosAm=s10*dB+s12*dB*pow(dL,2)+s30*pow(dB,3);
doubledA=t01*dL+t21*pow(dB,2)*dL+t03*pow(dL,3);
利用高斯平均引數(shù)最小二乘法或數(shù)值積分反算大地方位角和大地距離,最終能夠計算出大地主題解算反算結(jié)果的的精度,大地距離達(dá)到0.001m,大地方位角度0.001″。同時也驗(yàn)證了高斯平均引數(shù)大地主題解算適用于短距離的大地主題解算,解算精度與距離有關(guān)。
程序運(yùn)行后,所有解算結(jié)果可以保存為報告輸出到指定位置,在報告中包括大地主題解算的原始數(shù)據(jù)、解算結(jié)果、真誤差、計算橢球以及橢球參數(shù)、迭代次數(shù)等,提高工作效率,避免重復(fù)勞動,使用戶能夠解決復(fù)雜的地質(zhì)問題。生成的報告不僅提供了詳細(xì)的數(shù)據(jù),還通過清晰的圖表和可視化界面展示了結(jié)果,使用戶能夠更直觀地理解解算結(jié)果。
3.5 案例分析
在本文的大地主題正算中,為了準(zhǔn)確評估系統(tǒng)的適用性,隨機(jī)選取3個已知點(diǎn)進(jìn)行測試。經(jīng)過解算,控制已知點(diǎn)的大地經(jīng)緯度以及大地方位角的真實(shí)誤差均在0.0001″內(nèi)。其中,P2點(diǎn)的大地經(jīng)度之差ΔL2達(dá)到0.0006″,而最小誤差為0。此外,各點(diǎn)間的大地線長度均小于500 km,進(jìn)一步證實(shí)高斯平均引數(shù)法在短距離大地主題解算中的適用性。選取點(diǎn)的參數(shù)見表1。
根據(jù)表2、表3中的數(shù)據(jù)可知,大地坐標(biāo)的正反方位角的計算真實(shí)誤差達(dá)到0.0001″,距離真誤差達(dá)到米級。
在這3個實(shí)例中,P3的誤差最大,距離、大地坐標(biāo)方位角誤差等都大于前 2個例子的誤差。經(jīng)過分析,P3中大地線長度為1 000 km,超過了高斯平均引數(shù)法解算的要求。這表明本程序使用高斯平均引數(shù)大地主題解算的距離和角度精度達(dá)到 0.001m和 0.0001\",同時也驗(yàn)證了高斯平均引數(shù)大地主題解算適用于短距離的大地主題解算。在選擇大地坐標(biāo)的過程中,需要考慮大地線長度范圍是否適合解算方法。
4 結(jié)語
本文采用高斯平均引數(shù)法作為數(shù)學(xué)模型,采用坐標(biāo)轉(zhuǎn)換程序使大地主題正反算精度滿足大地測量的要求。其角度為0.000 1″、距離0.001m。因?yàn)楦咚蛊骄龜?shù)法在應(yīng)用范圍存在一定的局限性,僅適用于短距離大地主題解算,所以下一步將貝塞爾方法和嵌套系數(shù)法算法引入大地主題正反算系統(tǒng)中,進(jìn)一步擴(kuò)充系統(tǒng)適應(yīng)性。隨著技術(shù)的不斷發(fā)展,利用計算機(jī)進(jìn)行迭代計算將更高效,計算精度會更高。
參考文獻(xiàn)
[1]田桂娥,謝露,馬廣濤.高斯平均引數(shù)大地主題解算程序設(shè)計[J].山西建筑,2016,42(27):192-193.
[2]保振永.大地主題的不同解法分析研究[J].工程技術(shù)研究,2019,4(3):212-214.
[3]汪守勇.基于VC++無人機(jī)地面測控系統(tǒng)設(shè)計[J].電子設(shè)計工程, 2013,21(24):78-80.