呂翠華,張東明,葛俊潔
(1.昆明冶金高等專科學校 測繪學院,云南 昆明 650033)
基于VB的測量坐標系統轉換程序設計與實現
呂翠華1,張東明1,葛俊潔1
(1.昆明冶金高等專科學校 測繪學院,云南 昆明 650033)

討論了測量坐標系統轉換中數學模型選擇、參數計算、算法設計等幾個關鍵問題,研究了利用VB語言編程實現測量坐標系統轉換的方法,并通過實例進行了驗證。
VB;測量;坐標系統轉換;程序設計
過去的測繪成果資料的坐標系大多是1954年北京坐標系或1980西安坐標系,隨著2000國家大地坐標系的推廣,需要將這些測繪成果轉換為2000國家大地坐標系。另外,為便于測繪成果的利用和管理,各種工程建設中常常涉及地方獨立坐標系與國家坐標系的相互轉換。因此,開發坐標系統轉換程序,實現不同參考橢球基準下各種坐標系統之間的相互轉換,是實際測量工作中急需解決的問題。
常用的坐標轉換有平面四參數轉換和七參數轉換。平面四參數轉換屬于二維坐標轉換,對于大地坐標,需通過高斯投影得到平面坐標,再計算轉換參數。七參數轉換有布爾莎(Bursa)模型、莫洛金斯基(Molodensky)模型、武測模型等,屬于三維坐標轉換。布爾莎模型是以原坐標系原點為中心,對坐標進行旋轉、縮放和平移變換;莫洛金斯基模型是在測區范圍選擇一參考點作為變換中心,對坐標進行旋轉和縮放,以原坐標系原點為中心進行平移變換;武測模型是以原坐標系原點為中心,對坐標進行旋轉和平移變換,以測區某參考點為中心進行縮放變換[1]。
1.1 布爾莎(Bursa)模型
模型中共采用了7個參數,分別是3個平移參數ΔX、ΔY、ΔZ;3個旋轉參數(也稱為3個歐拉角)εX、εY、εZ和1個尺度參數μ。考慮坐標系統轉換中旋轉角均為極小角度,給出簡化模型如下:

1.2 莫洛金斯基(Molodensky)模型

1.3 平面四參數轉換模型

式中,ΔX、ΔY為平移參數;α為旋轉參數,μ為尺度參數。
1.4 轉換模型的選擇
平面四參數轉換只適用于小區域、不同定義下的兩種坐標系轉換,是工程應用較多的一種簡單、直觀且容易掌握的數學模型。七參數轉換從理論上來說更加嚴密,它充分考慮了兩套坐標系的橢球定位定向差異,保證了兩套坐標系相對嚴密的轉換,更適用于大型項目中的坐標轉換。在實際應用中,要綜合考慮待轉換的兩個坐標系的基本信息、轉換區域距中央子午線的距離、區域大小、公共點的多少與分布等情況,以此來選擇適宜的坐標轉換模型[2]。
測量坐標系統轉換包括:相同參考橢球基準下平面直角坐標、大地坐標與空間直角坐標的相互轉換,不同參考橢球基準下平面直角坐標、大地坐標與空間直角坐標的相互轉換。各種坐標系統之間相互轉換存在幾個關鍵問題:①轉換參數的求解;②高斯投影反算中底點緯度的解算;③由空間直角坐標反解大地緯度。
2.1 轉換參數的求解
根據數學模型,求取三維坐標轉換中的7個轉換參數,至少需要3個公共點;求取二維坐標轉換中的4個轉換參數,至少需要2個公共點。通常,為減小轉換誤差,參與求解參數的公共點數量要多于最少公共點數,按最小二乘原理,由誤差方程列出法方程,通過嚴密平差,解算出轉換參數的最或然值[3]。
對于布爾莎模型,列出誤差方程如下:

對于莫洛金斯基模型,將旋轉縮放中心P(XP,YP,Zp)的坐標取值為公共點坐標平均值:

列出誤差方程如下:

對于平面四參數模型,令a=(1+μ)cosθ,b=(1+μ)sinθ,列出誤差方程如下:

以上誤差方程均可表示為V=Bx'-l,將所有同名公共點視為等精度等權,根據最小二乘原理得:

從轉換數學模型可知,在選擇了參與求解轉換參數的公共點后,坐標轉換過程的實質就是根據公共點數量,動態組成B矩陣和l矩陣,且隨著參與求解轉換參數的公共點數量增加,矩陣也在不斷增大。通過矩陣轉置、相乘、求逆等一系列運算,求得轉換參數。在程序設計中,只需將矩陣轉置、相乘、求逆運算編寫為獨立的子程序過程,根據運算需要實時調用即可。
2.2 底點緯度的解算
求解底點緯度有很多算法,可歸納為迭代法、直接解法、數值解法等,這些算法雖思路不同,但計算效果等價[4]。結合計算機運算速度快、適合做重復性操作的特點,作者采用迭代法來求解。迭代法求解,需要確定4個關鍵點:迭代變量、迭代變量初始值、迭代關系式、迭代結束條件。這里設定迭代變量為底點緯度Bf,迭代變量的初值為:迭代公式為:


2.3 由空間直角坐標反解大地緯度
由空間直角坐標反解大地緯度相對較復雜。目前國內大地測量學者提出很多不同的解法,歸納為3類:一是直接解法,二是迭代解法,三是數值導數法[5]。采用迭代法來求解大地緯度B的方法如下:
選擇迭代變量為tanB,設定迭代變量的初值為:


3.1 功能設計
VB6.0具有簡單易用、快捷方便的特點,與Excel等辦公軟件有很好的接口,適合開發非底層計算機應用軟件,故選擇VB6.0作為開發工具。程序主要功能設計為:
1)同一橢球基準下的坐標系統轉換。包括大地坐標與空間直角坐標的互換,大地坐標與高斯平面坐標的互換,高斯平面坐標與空間直角坐標的互換。
2)不同橢球基準下的坐標系統轉換。提供3種轉換模型:布爾莎模型、莫洛金斯基模型、平面四參數模型。
3)生成轉換報告,對轉換精度進行分析評價。
4)實用工具。包括坐標換帶計算,空間距離計算、方位角計算等。
3.2 數據組織與結構設計
1)為便于數據導入和管理,批量輸入輸出的坐標數據采用通用的ASCⅡ碼文本格式和Excel數據表格式進行組織。
2)程序設計中,對于經緯度坐標,約定輸入格式為“度.分秒”。為方便程序調用,所有坐標數據均用一維數組來存儲。
3)坐標系統轉換涉及4種橢球:克拉索夫斯基橢球、1975國際橢球、WGS-84橢球和CGCS2000橢球。將不同橢球參數統一寫入獨立的子程序過程,約定不同的橢球基準編號,以橢球基準號為過程傳遞參數,通過判斷橢球基準ID來調用相應的橢球參數。
4)在轉換參數計算時,綜合運用MSFlexGrid和Text控件,將公共點坐標數據輸入界面設計為表格形式[6],模擬電子表格輸入、顯示和編輯,使數據輸入和編輯操作簡單快捷,如圖1所示。

圖1 七參數計算界面
3.3 轉換流程
1)數據準備。需提供測區內具有2套坐標系(原坐標系和目標坐標系)的公共點坐標,選擇一定數量的精度可靠、分布合理、覆蓋整個測區的公共點參與轉換參數計算。若是七參數轉換,則提供經緯度和大地高;若是四參數轉換,則提供平面直角坐標;以Excel表形式編輯保存。待進行坐標轉換的數據以TXT文本文件編輯保存。
2)設置投影參數,包括中央子午線經度、Y坐標加常數、投影高程等。
3)設置原坐標系和目標坐標系,選擇橢球基準,確定轉換模型。
4)讀取參與轉換參數計算的公共點坐標,計算轉換參數。
5)利用參與轉換參數計算的公共點計算內符合精度,利用未參與轉換參數計算的公共點計算外符合精度,查找并剔除用于計算坐標轉換參數的粗差公共點[7],用可靠公共點重新計算坐標轉換參數,直到精度滿足限差為止。
6)讀取需要進行坐標轉換的數據,根據轉換參數,執行坐標轉換,求解出所有待轉換點的轉換坐標。
選取某礦區分布均勻、坐標精度可靠且覆蓋整個礦區的5個公共點計算轉換參數,選取8個未參與轉換參數計算的公共點作為外部檢核點,利用2015年的礦區大地水準面精化成果內插高程異常值,分別運用布爾莎模型、莫洛金斯基模型和平面四參數模型進行1954年北京坐標系到2000國家大地坐標系、1980西安坐標系到2000國家大地坐標系的轉換。轉換精度統計見表1。根據程序運行結果,分析得到:
1)由于1954年北京坐標系的大地點坐標是經過局部分區平差得到,而1980西安坐標系的大地點坐標是經過整體平差得到,故1954年北京坐標系統的內符合性較差,其相應坐標轉換的內符合精度和外符合精度比1980西安坐標系低,程序運行結果證實了這一點。

表1 坐標系統轉換精度統計/m
2)該礦區利用本程序進行坐標系統轉換的點位中誤差遠小于限差±5 cm,滿足國家規范要求。通過該程序可以實現任何區域范圍內新 、舊坐標系之間的快速轉換,在公共點精度較高、分布合理的前提下,坐標轉換誤差很小,滿足測繪生產的要求。
3)通過驗證,程序運行穩定,運行速度快,計算結果可靠。
坐標系統轉換是測量工作中較為復雜的問題,轉換精度與數學模型的選擇、算法的設計、公共點的分布和數量等因素有關。在實際工作中,對于不同區域大小、地理位置、地形地貌,應選擇合適本區域的數學模型,利用程序對多種公共點選擇方案進行反復實驗,確定最佳轉換參數,提高坐標系統轉換精度。
[1] 鮑建寬. 坐標轉換的方法及應用[J]. 現代測繪,2014,37(5):3-7
[2] 孔祥元,梅是義. 控制測量學(第二版)下冊[M].武漢: 武漢大學出版社,2005
[3] 武漢大學測繪學院測量平差學科組.誤差理論與測量平差基礎[M].武漢:武漢大學出版社,2003
[4] 趙英志,劉永濤,鄭玉軍.利用VB6.0實現2000國家大地坐標系高斯正反算程序的編寫[J].測繪通報,2010(5) :38-41
[5] 史海鋒,張衛斌.空間直角坐標與大地坐標轉換算法研究[J].大地測量與地球動力學,2012,32(5):78-81
[6] 呂翠華主編. VB語言與測量程序設計[M].北京: 測繪出版社,2013
[7] 吳祖海,羅偉釗,李軍.坐標轉換中公共點粗差定位與降低粗差點影響方法研究[J].大地測量與地球動力學,2014,34(1):118-122
P226.3
B
1672-4623(2016)12-0094-04
10.3969/j.issn.1672-4623.2016.12.031
呂翠華,碩士,教授,注冊測繪師,主要從事測繪與地理信息系統技術應用研究。
2016-03-09。
項目來源:住房和城鄉建設部2014年科學技術資助項目(2014-R2-032);玉溪礦業有限公司委托技術開發資助項目(YKHS-CHJSB-1505-JS-1256)。