程晗++裴良臣
摘要:針對工程常用的DINI和DNA電子水準儀,結合其原始數據的特點,將數據轉換為了水準平差適用的基礎數據格式。此獨立設計可針對該格式水準線路或者水準網數據平差分析、生成報告的功能。實例結果表明:利用工程數據進行多次實驗,結果可靠,程序實用,模塊化的結構,便于程序功能的拓展。
關鍵詞:電子水準儀;數據轉換;水準平差
中圖分類號:P04
文獻標識碼:A文章編號:16749944(2017)12024603
1引言
電子水準儀與光學水準儀相比具有速度快、精度高、自動讀數、使用方便、易于實現(xiàn)水準測量內外業(yè)一體化等特色,這是其無可比擬的優(yōu)點[1]。伴隨著各行各業(yè)的發(fā)展與需要,電子水準儀在高等級水準測量、水利水電工程變形監(jiān)測、鐵路客運專線變形監(jiān)測以及精密工程測量中得到了廣泛的應用[2~5]。
瑞士徠卡公司推出的DNA系列數字水準儀和美國天寶公司的DINI數字水準儀是目前國內市場上的主流產品,可以滿足高等級、高要求水準測量需要。但是數字水準儀在內業(yè)數據處理過程中存在一些不足。比如DNA03水準儀隨機軟件處理數據生成的平差報告只有結果,無觀測精度,內業(yè)利用徠卡綜合軟件包LGO轉換數據進行處理時,采用的XML文件不可修改。同樣,DINI水準儀數據也存在機載平差軟件輸出數據不完善,利用天寶軟件導入格式與國內規(guī)范格式不一致等問題,因此需要進行數據格式轉換并進行平差處理。目前國內諸多轉換程序有的只是針對某一種原始數據格式進行轉換,有的在進行轉換后不具備平差功能,需要利用其它軟件進行平差,多款軟件套用,操作較為復雜。
鑒于上述問題,筆者結合工程經驗利用微軟開發(fā)的面相對象語言——Microsoft Visual C#,采用模塊化編程思路對于這兩種常用的電子水準儀數據進行數據轉換,生成水準基礎格式數據文件,進行平差,同時將該格式水準數據平差功能處理封裝成為單獨模塊,可單獨利用此模塊進行水準線路或水準網的平差分析生成報告。
2數據輸出與格式介紹
2.1數據輸出與選擇
Leica所有的測量儀器均采用GSI(Geo Serial Interface 串行接口)數據結構,此數據結構存在兩種數據形式:8位字符GSI-8和16位字符GSI-16格式。對于DNA水準儀,結合工程實踐,較為方便的方式是將數據以GSI-8格式傳出到PC卡上導入計算機進行處理。本文討論的是GSI-8數據。
對于DINI水準儀,將儀器內部的數據格式直接通過電纜或者USB存儲器利用天寶Data Transfer傳輸到PC中。有兩種不同的數據格式:Rec 500和Rec E(M5),REC 500類似人工手簿格式,Rec E數據文件信息豐富完整,因此采用Rec E數據。
對水準平差基礎格式數據,根據水準平差的需要,提取已知點及其高程,水準測段起點和終點、高差、距離等基本信息組成基礎格式。
2.2數據格式介紹
2.2.1GSI-8數據
GSI數據有兩種數據塊:測量塊和編碼塊。某GSI-8部分數據及含義如下:
110003+00000E04 32...8+04857068 331.08+00056556
(后視點名) (后視距離1) (后視高程1)……
110006+00000001 32...8+04840854 336.08+00117211
(前視點名) (前視距離2) (前視高程2)
110007+00000001 571.08-00000005 572.08-00000005 573..8+00057158 574..8+05933525 3..08+02509415
…(累積視距差)(累積視距)(高程)…
2.2.2Rec E數據
某水準線路Rec E文件部分數據如下:
……
For M5|Adr 6|KD1 E02 13:20:341 001|Rb 1.11982 m |HD 3.106 m | |
For M5|Adr 7|KD1 001 13:20:551 001|Rf 1.72131 m |HD 22.446 m | |
……
以上兩行數據分別對應“后視點名”、“后視讀數”、“后視距離”;“前視點名”、“前視讀數”、“前視距離”等。
2.2.3水準平差基礎格式數據
本程序中定義水準平差基礎格式數據結構如下:
Ⅰ已知點點號,已知點高程
…,…
Ⅱ測段起點,終點,高差,距離
…,…,…,…
該文件的內容分為兩部分,第一部分為水準線路或者高程控制網的已知數據,即已知高程點點號及其高程值。第二部分為水準線路或高程控制網的觀測數據,它包括測段的起點點號,終點點號,測段高差,測段距離。
3數據處理與平差程序設計
3.1數據轉換
本程序中數據轉換,包括兩方面內容,一方面是對DNA水準儀,將GSI-8數據(.GSI擴展名)轉換為基礎格式數據;另一方面是將DINI水準儀Rec E(.DAT擴展名)文件轉換為基礎格式數據文件。兩種數據的轉換思路是基本一致的,如圖1所示。
圖1GSI-8/Rec E數據轉換流程
在程序設計中,雖然兩種數據轉換的思想是一致的,但是需要根據不同的文件格式,構造不同的測站或者線路類與對應的結構體,這是具體算法的需要,也是面相對象語言編程的核心。在安排好數據結構的基礎上,進行文件數據的讀取、存儲、計算、輸出等操作,在此不再贅述。
3.2水準基礎格式數據平差
水準網的平差與單一水準線路的平差理論是一致的,因為水準網的每一條線路可以看作是水準線路的每一個測站,反之亦然。以下闡述水準網的平差思路。水準網的處理過程可以分為3個步驟,即概略高程計算、誤差方程系數陣的建立以及未知數解算與精度評定[6]。
3.2.1概略高程的計算
這一步驟主要是計算出者水準網中未知點的近似高程,作為后續(xù)建立誤差方程系數陣的基礎,近似高程的計算以水準網中每條邊作為基本的計算單元。
對于某一條邊,端點分別為A和B設A、B兩點間的高差為hAB,若A點已知高程為HA,B點未知,則B點高程HB=HA+hAB;若B點已知,A點未知,則A點高程HA=HB-hAB。
現(xiàn)將網中所有的邊分為3種類型:已知邊(兩端點的高程或者概略高程已知);起算邊(邊的一個端點高程或者概略高程已知,另一端點高程未知);未知邊(兩端點的高程均未知)。概略高程計算程序結構如圖2。
循環(huán)查找起算邊并計算,數組為空結束,代碼如下:
while(noAppEleObs.Count>0){noAppEleObs=GetAppEle(noAppEleObs);}。
3.2.2誤差方程系數矩陣的建立
間接平差計算包括選擇t個必要觀測數作為參數,列出誤差方程,組成法方程,解算法方程,由誤差方程求出測量平差值,5個步驟[7]。
圖2概略高程計算過程
程晗,等:DINI和DNA水準儀數據轉換及平差程序設計
信息與技術
設線路A、B兩點最或然高程分別為HA和HB,近似高程分別為HA0和HB0,改正數分別為A和B,兩點間高差觀測值為hAB,平差值為AB,改正數為vAB,則平差值方程:
hAB+AB=B-A
hAB+AB=HB0-HA0+B-A;
誤差方程:vAB=-A+B-l;
其中l(wèi)=HA0-HB0+hAB。如果A點已知,B點未知,則誤差方程為vAB=B-l;若A點未知,B點已知,則誤差方程為vAB=-A-l。
對于多組觀測值組成法方程矩陣形式:V=B-l;x=(BTPB)-1-BTPl。
建立各個系數矩陣的核心代碼如下:
B矩陣:
{if(obsStations[i].backPoiName==
unknoPois[j].unknoPoiName)
B[i,unknoPois[j].poiIndex]=-1;
if(obsStations[i].forePoiName== unknoPois[j].unknoPoiName)
B[i, unknoPois[j].poiIndex] = 1;}
P矩陣與l矩陣:
P[i,i]=1/obsStations[i].sightDis;
l[i,0]=(obsStations[i].backEle-
obsStations[i].foreEle+obsStations[i].staEleDif);
對于計算機程序,解法方程的過程實質是進行矩陣運算的過程。筆者采用面向對象編程的思想,編寫了一個矩陣類(class Matrix)進行矩陣運算,Matrix類包括二維矩陣構造函數(Matrix(double[,] matrix))、轉置(Transpose())和求逆(Inverse())等成員函數,具體內容不再贅述。
3.2.3精度評定并生成報告
單位權中誤差的計算公式:σ0=VTPVn-t。代碼如下[8]:
sigmo0=Math.Sqrt(VtPV.matrix[0, 0]/(obsStations.Length-unknoPois.Length))。
平差高程中誤差:σi=σ0Qii其中σii=N-1BB=(BTPB)-1。
4工程實例
實驗數據利用武漢市某下穿通道工程基坑監(jiān)測的某期DNA03電子水準儀數據(.GSI)。啟動軟件,點擊菜單欄“原始文件”、“GSI轉基礎格式”,找到數據文件位置選擇文件,將原始數據轉換為基礎格式水準數據文件(.txt)如圖3。
圖3基礎格式水準數據文件截圖
點擊“平差”、“基礎格式水準平差” 對基礎格式水準數據文件進行平差生成平差報告(.Lout),截取部分數據如圖4。
圖4水準平差報告截圖
通過與COSA軟件計算結果比較,本軟件各點平差后的高程和中誤差精度指標是相同的。表明本軟件的計算結果正確、可靠,系統(tǒng)運行穩(wěn)定[9]。
5結語
通過多次工程數據驗證,證明了筆者開發(fā)的程序運行是穩(wěn)定的,結果是可靠的,具有一定的推廣價值。同時本程序從原始數據到水準平差、生成報告簡單快捷便于操作,具有實用性;本文中的水準基礎數據格式是水準平差最簡潔的數據格式,程序以其作為平差的基礎,具有廣泛的適用性[10~12];C#語言作為微軟力推.net平臺的拳頭產品,具有很強的可移植性和靈活性,基于C#的程序開發(fā),融入面向對象的思維,將功能模塊化,便于增加其他電子水準儀器原始數據轉換功能,具有拓展性。
2017年6月綠色科技第12期
參考文獻:
[1]
潘正風,程效軍,成樞,等.數字測圖原理與方法[M].武漢:武漢大學出版社,2009:59~60.
[2]韓賢權,李端有,譚勇,等.數字水準儀自動化監(jiān)測系統(tǒng)在大壩變形監(jiān)測中的應用[J].測繪科學,2010,35(3):173~175.
[3]董志榮.NA3003電子水準儀在三峽工程安全監(jiān)測中的應用[J].測繪通報,2002(5):56~57.
[4]李宇,藍善建.徠卡DNA03電子水準儀在寧杭客運專線沉降觀測上的應用[J].測繪通報,2010(12):89~90.
[5]柯明,于成浩.水準儀在上海光源精密工程測量中的應用[J].測繪科學,2010,35(4):202~203.
[6]李建章.基于MATLAB的水準網平差程序設計[J].蘭州交通大學學報,2009,28(3):29~31.
[7]武漢大學測繪學院測量平差學科組.誤差理論與測量平差基礎[M].武漢:武漢大學出版社,2009.
[8]王磊,郭際明,喻永平,等.水準網定權方法對精度評定的影響[J].測繪通報,2011(5):26~28.
[9]梅連輝,郭際明,周命端,等. 基于VB平臺的水準網平差軟件開發(fā)研究[J].測繪信息與工程,2011,36(6):32~34.
[10]Waston K,Nagel C. Beginning Microsoft Visual C# 2008[M].北京:清華大學出版社,2010.
[11]張東明.水準回平差程序設計與實現(xiàn)[J].昆明冶金高等專科黨校學報,2000(4).
[12]楊福濤.水準網平差程序設計[J].科技創(chuàng)新與應用,2015(17).