呂翠華,張東明,葛俊潔
(1.昆明冶金高等??茖W校 測繪學院,云南 昆明 650033)
基于VB的測量坐標系統(tǒng)轉(zhuǎn)換程序設計與實現(xiàn)
呂翠華1,張東明1,葛俊潔1
(1.昆明冶金高等??茖W校 測繪學院,云南 昆明 650033)
討論了測量坐標系統(tǒng)轉(zhuǎn)換中數(shù)學模型選擇、參數(shù)計算、算法設計等幾個關(guān)鍵問題,研究了利用VB語言編程實現(xiàn)測量坐標系統(tǒng)轉(zhuǎn)換的方法,并通過實例進行了驗證。
VB;測量;坐標系統(tǒng)轉(zhuǎn)換;程序設計
過去的測繪成果資料的坐標系大多是1954年北京坐標系或1980西安坐標系,隨著2000國家大地坐標系的推廣,需要將這些測繪成果轉(zhuǎn)換為2000國家大地坐標系。另外,為便于測繪成果的利用和管理,各種工程建設中常常涉及地方獨立坐標系與國家坐標系的相互轉(zhuǎn)換。因此,開發(fā)坐標系統(tǒng)轉(zhuǎn)換程序,實現(xiàn)不同參考橢球基準下各種坐標系統(tǒng)之間的相互轉(zhuǎn)換,是實際測量工作中急需解決的問題。
常用的坐標轉(zhuǎn)換有平面四參數(shù)轉(zhuǎn)換和七參數(shù)轉(zhuǎn)換。平面四參數(shù)轉(zhuǎn)換屬于二維坐標轉(zhuǎn)換,對于大地坐標,需通過高斯投影得到平面坐標,再計算轉(zhuǎn)換參數(shù)。七參數(shù)轉(zhuǎn)換有布爾莎(Bursa)模型、莫洛金斯基(Molodensky)模型、武測模型等,屬于三維坐標轉(zhuǎn)換。布爾莎模型是以原坐標系原點為中心,對坐標進行旋轉(zhuǎn)、縮放和平移變換;莫洛金斯基模型是在測區(qū)范圍選擇一參考點作為變換中心,對坐標進行旋轉(zhuǎn)和縮放,以原坐標系原點為中心進行平移變換;武測模型是以原坐標系原點為中心,對坐標進行旋轉(zhuǎn)和平移變換,以測區(qū)某參考點為中心進行縮放變換[1]。
1.1 布爾莎(Bursa)模型
模型中共采用了7個參數(shù),分別是3個平移參數(shù)ΔX、ΔY、ΔZ;3個旋轉(zhuǎn)參數(shù)(也稱為3個歐拉角)εX、εY、εZ和1個尺度參數(shù)μ??紤]坐標系統(tǒng)轉(zhuǎn)換中旋轉(zhuǎn)角均為極小角度,給出簡化模型如下:
1.2 莫洛金斯基(Molodensky)模型
1.3 平面四參數(shù)轉(zhuǎn)換模型
式中,ΔX、ΔY為平移參數(shù);α為旋轉(zhuǎn)參數(shù),μ為尺度參數(shù)。
1.4 轉(zhuǎn)換模型的選擇
平面四參數(shù)轉(zhuǎn)換只適用于小區(qū)域、不同定義下的兩種坐標系轉(zhuǎn)換,是工程應用較多的一種簡單、直觀且容易掌握的數(shù)學模型。七參數(shù)轉(zhuǎn)換從理論上來說更加嚴密,它充分考慮了兩套坐標系的橢球定位定向差異,保證了兩套坐標系相對嚴密的轉(zhuǎn)換,更適用于大型項目中的坐標轉(zhuǎn)換。在實際應用中,要綜合考慮待轉(zhuǎn)換的兩個坐標系的基本信息、轉(zhuǎn)換區(qū)域距中央子午線的距離、區(qū)域大小、公共點的多少與分布等情況,以此來選擇適宜的坐標轉(zhuǎn)換模型[2]。
測量坐標系統(tǒng)轉(zhuǎn)換包括:相同參考橢球基準下平面直角坐標、大地坐標與空間直角坐標的相互轉(zhuǎn)換,不同參考橢球基準下平面直角坐標、大地坐標與空間直角坐標的相互轉(zhuǎn)換。各種坐標系統(tǒng)之間相互轉(zhuǎn)換存在幾個關(guān)鍵問題:①轉(zhuǎn)換參數(shù)的求解;②高斯投影反算中底點緯度的解算;③由空間直角坐標反解大地緯度。
2.1 轉(zhuǎn)換參數(shù)的求解
根據(jù)數(shù)學模型,求取三維坐標轉(zhuǎn)換中的7個轉(zhuǎn)換參數(shù),至少需要3個公共點;求取二維坐標轉(zhuǎn)換中的4個轉(zhuǎn)換參數(shù),至少需要2個公共點。通常,為減小轉(zhuǎn)換誤差,參與求解參數(shù)的公共點數(shù)量要多于最少公共點數(shù),按最小二乘原理,由誤差方程列出法方程,通過嚴密平差,解算出轉(zhuǎn)換參數(shù)的最或然值[3]。
對于布爾莎模型,列出誤差方程如下:
對于莫洛金斯基模型,將旋轉(zhuǎn)縮放中心P(XP,YP,Zp)的坐標取值為公共點坐標平均值:
列出誤差方程如下:
對于平面四參數(shù)模型,令a=(1+μ)cosθ,b=(1+μ)sinθ,列出誤差方程如下:
以上誤差方程均可表示為V=Bx'-l,將所有同名公共點視為等精度等權(quán),根據(jù)最小二乘原理得:
從轉(zhuǎn)換數(shù)學模型可知,在選擇了參與求解轉(zhuǎn)換參數(shù)的公共點后,坐標轉(zhuǎn)換過程的實質(zhì)就是根據(jù)公共點數(shù)量,動態(tài)組成B矩陣和l矩陣,且隨著參與求解轉(zhuǎn)換參數(shù)的公共點數(shù)量增加,矩陣也在不斷增大。通過矩陣轉(zhuǎn)置、相乘、求逆等一系列運算,求得轉(zhuǎn)換參數(shù)。在程序設計中,只需將矩陣轉(zhuǎn)置、相乘、求逆運算編寫為獨立的子程序過程,根據(jù)運算需要實時調(diào)用即可。
2.2 底點緯度的解算
求解底點緯度有很多算法,可歸納為迭代法、直接解法、數(shù)值解法等,這些算法雖思路不同,但計算效果等價[4]。結(jié)合計算機運算速度快、適合做重復性操作的特點,作者采用迭代法來求解。迭代法求解,需要確定4個關(guān)鍵點:迭代變量、迭代變量初始值、迭代關(guān)系式、迭代結(jié)束條件。這里設定迭代變量為底點緯度Bf,迭代變量的初值為:迭代公式為:
2.3 由空間直角坐標反解大地緯度
由空間直角坐標反解大地緯度相對較復雜。目前國內(nèi)大地測量學者提出很多不同的解法,歸納為3類:一是直接解法,二是迭代解法,三是數(shù)值導數(shù)法[5]。采用迭代法來求解大地緯度B的方法如下:
選擇迭代變量為tanB,設定迭代變量的初值為:
3.1 功能設計
VB6.0具有簡單易用、快捷方便的特點,與Excel等辦公軟件有很好的接口,適合開發(fā)非底層計算機應用軟件,故選擇VB6.0作為開發(fā)工具。程序主要功能設計為:
1)同一橢球基準下的坐標系統(tǒng)轉(zhuǎn)換。包括大地坐標與空間直角坐標的互換,大地坐標與高斯平面坐標的互換,高斯平面坐標與空間直角坐標的互換。
2)不同橢球基準下的坐標系統(tǒng)轉(zhuǎn)換。提供3種轉(zhuǎn)換模型:布爾莎模型、莫洛金斯基模型、平面四參數(shù)模型。
3)生成轉(zhuǎn)換報告,對轉(zhuǎn)換精度進行分析評價。
4)實用工具。包括坐標換帶計算,空間距離計算、方位角計算等。
3.2 數(shù)據(jù)組織與結(jié)構(gòu)設計
1)為便于數(shù)據(jù)導入和管理,批量輸入輸出的坐標數(shù)據(jù)采用通用的ASCⅡ碼文本格式和Excel數(shù)據(jù)表格式進行組織。
2)程序設計中,對于經(jīng)緯度坐標,約定輸入格式為“度.分秒”。為方便程序調(diào)用,所有坐標數(shù)據(jù)均用一維數(shù)組來存儲。
3)坐標系統(tǒng)轉(zhuǎn)換涉及4種橢球:克拉索夫斯基橢球、1975國際橢球、WGS-84橢球和CGCS2000橢球。將不同橢球參數(shù)統(tǒng)一寫入獨立的子程序過程,約定不同的橢球基準編號,以橢球基準號為過程傳遞參數(shù),通過判斷橢球基準ID來調(diào)用相應的橢球參數(shù)。
4)在轉(zhuǎn)換參數(shù)計算時,綜合運用MSFlexGrid和Text控件,將公共點坐標數(shù)據(jù)輸入界面設計為表格形式[6],模擬電子表格輸入、顯示和編輯,使數(shù)據(jù)輸入和編輯操作簡單快捷,如圖1所示。
圖1 七參數(shù)計算界面
3.3 轉(zhuǎn)換流程
1)數(shù)據(jù)準備。需提供測區(qū)內(nèi)具有2套坐標系(原坐標系和目標坐標系)的公共點坐標,選擇一定數(shù)量的精度可靠、分布合理、覆蓋整個測區(qū)的公共點參與轉(zhuǎn)換參數(shù)計算。若是七參數(shù)轉(zhuǎn)換,則提供經(jīng)緯度和大地高;若是四參數(shù)轉(zhuǎn)換,則提供平面直角坐標;以Excel表形式編輯保存。待進行坐標轉(zhuǎn)換的數(shù)據(jù)以TXT文本文件編輯保存。
2)設置投影參數(shù),包括中央子午線經(jīng)度、Y坐標加常數(shù)、投影高程等。
3)設置原坐標系和目標坐標系,選擇橢球基準,確定轉(zhuǎn)換模型。
4)讀取參與轉(zhuǎn)換參數(shù)計算的公共點坐標,計算轉(zhuǎn)換參數(shù)。
5)利用參與轉(zhuǎn)換參數(shù)計算的公共點計算內(nèi)符合精度,利用未參與轉(zhuǎn)換參數(shù)計算的公共點計算外符合精度,查找并剔除用于計算坐標轉(zhuǎn)換參數(shù)的粗差公共點[7],用可靠公共點重新計算坐標轉(zhuǎn)換參數(shù),直到精度滿足限差為止。
6)讀取需要進行坐標轉(zhuǎn)換的數(shù)據(jù),根據(jù)轉(zhuǎn)換參數(shù),執(zhí)行坐標轉(zhuǎn)換,求解出所有待轉(zhuǎn)換點的轉(zhuǎn)換坐標。
選取某礦區(qū)分布均勻、坐標精度可靠且覆蓋整個礦區(qū)的5個公共點計算轉(zhuǎn)換參數(shù),選取8個未參與轉(zhuǎn)換參數(shù)計算的公共點作為外部檢核點,利用2015年的礦區(qū)大地水準面精化成果內(nèi)插高程異常值,分別運用布爾莎模型、莫洛金斯基模型和平面四參數(shù)模型進行1954年北京坐標系到2000國家大地坐標系、1980西安坐標系到2000國家大地坐標系的轉(zhuǎn)換。轉(zhuǎn)換精度統(tǒng)計見表1。根據(jù)程序運行結(jié)果,分析得到:
1)由于1954年北京坐標系的大地點坐標是經(jīng)過局部分區(qū)平差得到,而1980西安坐標系的大地點坐標是經(jīng)過整體平差得到,故1954年北京坐標系統(tǒng)的內(nèi)符合性較差,其相應坐標轉(zhuǎn)換的內(nèi)符合精度和外符合精度比1980西安坐標系低,程序運行結(jié)果證實了這一點。
表1 坐標系統(tǒng)轉(zhuǎn)換精度統(tǒng)計/m
2)該礦區(qū)利用本程序進行坐標系統(tǒng)轉(zhuǎn)換的點位中誤差遠小于限差±5 cm,滿足國家規(guī)范要求。通過該程序可以實現(xiàn)任何區(qū)域范圍內(nèi)新 、舊坐標系之間的快速轉(zhuǎn)換,在公共點精度較高、分布合理的前提下,坐標轉(zhuǎn)換誤差很小,滿足測繪生產(chǎn)的要求。
3)通過驗證,程序運行穩(wěn)定,運行速度快,計算結(jié)果可靠。
坐標系統(tǒng)轉(zhuǎn)換是測量工作中較為復雜的問題,轉(zhuǎn)換精度與數(shù)學模型的選擇、算法的設計、公共點的分布和數(shù)量等因素有關(guān)。在實際工作中,對于不同區(qū)域大小、地理位置、地形地貌,應選擇合適本區(qū)域的數(shù)學模型,利用程序?qū)Χ喾N公共點選擇方案進行反復實驗,確定最佳轉(zhuǎn)換參數(shù),提高坐標系統(tǒng)轉(zhuǎn)換精度。
[1] 鮑建寬. 坐標轉(zhuǎn)換的方法及應用[J]. 現(xiàn)代測繪,2014,37(5):3-7
[2] 孔祥元,梅是義. 控制測量學(第二版)下冊[M].武漢: 武漢大學出版社,2005
[3] 武漢大學測繪學院測量平差學科組.誤差理論與測量平差基礎[M].武漢:武漢大學出版社,2003
[4] 趙英志,劉永濤,鄭玉軍.利用VB6.0實現(xiàn)2000國家大地坐標系高斯正反算程序的編寫[J].測繪通報,2010(5) :38-41
[5] 史海鋒,張衛(wèi)斌.空間直角坐標與大地坐標轉(zhuǎn)換算法研究[J].大地測量與地球動力學,2012,32(5):78-81
[6] 呂翠華主編. VB語言與測量程序設計[M].北京: 測繪出版社,2013
[7] 吳祖海,羅偉釗,李軍.坐標轉(zhuǎn)換中公共點粗差定位與降低粗差點影響方法研究[J].大地測量與地球動力學,2014,34(1):118-122
P226.3
B
1672-4623(2016)12-0094-04
10.3969/j.issn.1672-4623.2016.12.031
呂翠華,碩士,教授,注冊測繪師,主要從事測繪與地理信息系統(tǒng)技術(shù)應用研究。
2016-03-09。
項目來源:住房和城鄉(xiāng)建設部2014年科學技術(shù)資助項目(2014-R2-032);玉溪礦業(yè)有限公司委托技術(shù)開發(fā)資助項目(YKHS-CHJSB-1505-JS-1256)。