李 冰,余代俊
(成都理工大學(xué) 地球科學(xué)學(xué)院,四川 成都610059)
徠卡數(shù)字水準(zhǔn)儀質(zhì)量好、精度高、操作方便,適應(yīng)多種惡劣環(huán)境并且可以在保證測(cè)量精度的同時(shí)進(jìn)行夜間作業(yè)[1],因而廣泛用于地鐵、高速鐵路、基坑、大壩等監(jiān)測(cè)以及各種精密水準(zhǔn)測(cè)量中。
對(duì)水準(zhǔn)原始數(shù)據(jù)的編輯目前以?xún)煞N方法為主,一種是基于C#語(yǔ)言對(duì)已有平臺(tái)進(jìn)行二次開(kāi)發(fā),比如對(duì)徠卡的數(shù)據(jù)處理軟件LGO進(jìn)行的二次開(kāi)發(fā)[2]、基于PDA平臺(tái)的水準(zhǔn)一體化測(cè)量系統(tǒng)的開(kāi)發(fā)[3];另外一種是基于VB語(yǔ)言以EXCEL為平臺(tái)的后處理程序設(shè)計(jì)。
可是當(dāng)前多數(shù)徠卡數(shù)字水準(zhǔn)儀數(shù)據(jù)處理程序大多以GSI格式原始數(shù)據(jù)為對(duì)象,以測(cè)量結(jié)果平差為導(dǎo)向進(jìn)行設(shè)計(jì)[4],忽略了測(cè)量數(shù)據(jù)的增減變更、替換,致使最終所需原始觀測(cè)數(shù)據(jù)紊亂。本文提出了原始觀測(cè)數(shù)據(jù)的整理重構(gòu)技術(shù)與方法,解決了在工程實(shí)踐中對(duì)原始觀測(cè)數(shù)據(jù)進(jìn)行增減、替換繼而重新計(jì)算、輸出的難題。
徠卡數(shù)字水準(zhǔn)儀測(cè)量的數(shù)據(jù)會(huì)自動(dòng)以二進(jìn)制格式存儲(chǔ)在儀器內(nèi)存中,并且將數(shù)據(jù)轉(zhuǎn)換成多種格式,可以在數(shù)據(jù)輸出菜單下操作完成,格式分兩類(lèi),標(biāo)準(zhǔn)格式與自定義格式,標(biāo)準(zhǔn)格式分為XML與GSI,其中GSI分為GSI-8(數(shù)據(jù)位為8位)和GSI-16(數(shù)據(jù)位為16位);自定義格式主要為T(mén)XT文本格式:英文顯示、只顯示測(cè)站高差、中文顯示。GSI與XML格式是以固定格式存儲(chǔ)的測(cè)量文件,處理時(shí)需采用徠卡公司研發(fā)的軟件Leica Geo Office(LGO)或Level Pak-Pr o進(jìn)行處理[5],由于 LGO 支持Leica所有儀器類(lèi)型,以統(tǒng)一的方式管理TPS、GPS和水準(zhǔn)數(shù)據(jù),界面稍顯復(fù)雜,對(duì)使用者而言操作略顯繁瑣。使GSI與XML類(lèi)文件時(shí),需用專(zhuān)業(yè)軟件或程序語(yǔ)言進(jìn)行訪(fǎng)問(wèn),并且熟悉其測(cè)量格式,對(duì)于多數(shù)工程人員而言操作過(guò)于復(fù)雜。
中文顯示的數(shù)據(jù)由標(biāo)題部分(名稱(chēng)、測(cè)段名、時(shí)間、起始點(diǎn)、開(kāi)始高程)、數(shù)據(jù)部分(點(diǎn)號(hào)、中絲讀數(shù)、視距)和統(tǒng)計(jì)部分(本站視距、本站高差、累計(jì)視距、累計(jì)高差、目標(biāo)高程、精度檢查)三部分構(gòu)成,并且數(shù)據(jù)部分文字與讀數(shù)的字符間隔固定。其樣式如圖1所示。
圖1 原始格式
水準(zhǔn)測(cè)量及數(shù)據(jù)整理中,對(duì)原始數(shù)據(jù)要求:
1)不得擅自修改原始觀測(cè)數(shù)據(jù)。
2)原始觀測(cè)數(shù)據(jù)隨水準(zhǔn)路線(xiàn)前進(jìn)方向按照測(cè)段有序排列。
3)能夠快速讀取每個(gè)測(cè)段的高差與距離數(shù)據(jù)。
4)原始數(shù)據(jù)中間出現(xiàn)不合格數(shù)據(jù)時(shí),可以用新觀測(cè)的數(shù)據(jù)進(jìn)行替代,并且保持測(cè)段整體數(shù)據(jù)的規(guī)整。
對(duì)原始數(shù)據(jù)格式分析后,采用易于操作的EXCEL平臺(tái),通過(guò)調(diào)用宏,用VBA程序語(yǔ)言在后臺(tái)進(jìn)行編輯處理,實(shí)現(xiàn)精確重構(gòu),最后輸出原始格式的數(shù)據(jù)[6-7]。
本程序?qū)霐?shù)據(jù)時(shí)采用EXCEL導(dǎo)入文本功能,使用分隔符時(shí)采用空格與自定義西文冒號(hào),導(dǎo)入新建表格中。此外也可使用VBA程序語(yǔ)言中Add方法或者open語(yǔ)句實(shí)現(xiàn)將文本數(shù)據(jù)合理導(dǎo)入EXCEL文件。
在程序中預(yù)置各等級(jí)水準(zhǔn)測(cè)量限差。對(duì)于四等水準(zhǔn)測(cè)量前后視距差應(yīng)小于3 m,前后視距累計(jì)視距差應(yīng)小于10 m[8],部分代碼:
For i=1 To 180
If Abs(Sheet1.Cells(11+10*(j-1),5).Val ue-Sheet1.Cells(12+10* (j-1),5).Val ue)>3 Then
Msg Box"超限!",vb OKCancel,"提醒"
End If
Next i
分析固定規(guī)律排列的原始數(shù)據(jù),用For循環(huán)與if條件語(yǔ)句嵌套實(shí)現(xiàn)限差檢查[9]。
復(fù)制功能主要是防止初始導(dǎo)入數(shù)據(jù)被改動(dòng),對(duì)部分?jǐn)?shù)據(jù)賦予復(fù)制后的數(shù)值。
Sheets("Sheet1").Select
Range("A1:G1800").Select
Selection.Copy’對(duì)選中的單元格復(fù)制
Sheets("Sheet3").Select
Cells.Select
ActiveSheet.Paste’對(duì)選中的單元格粘貼
程序?qū)崿F(xiàn)對(duì)測(cè)站高差、測(cè)站視距、累計(jì)高差、累計(jì)視距的計(jì)算,計(jì)算通過(guò)調(diào)用單元格的VALUE屬性(cells().val ue),用賦值語(yǔ)句和計(jì)算公式實(shí)現(xiàn),然后通過(guò)For循環(huán)計(jì)算出各個(gè)測(cè)站的數(shù)據(jù)與累計(jì)數(shù)據(jù)。實(shí)現(xiàn)界面如圖2所示。界面右側(cè)即為實(shí)現(xiàn)各項(xiàng)數(shù)據(jù)的統(tǒng)計(jì)計(jì)算。
圖2 編輯界面
對(duì)原始數(shù)據(jù)進(jìn)行精確重構(gòu)并且以原格式輸出,要保證原始數(shù)據(jù)的準(zhǔn)確無(wú)誤,因此在輸出前對(duì)數(shù)據(jù)進(jìn)行檢核。
若原始數(shù)據(jù)中有一部分?jǐn)?shù)據(jù)用剔除或重測(cè)后的新數(shù)據(jù)替代,累計(jì)視距和累計(jì)高差將不再正確,替換處相鄰測(cè)站的點(diǎn)號(hào)也不再連續(xù)。因此替換不正確的數(shù)值,用賦值以及For循環(huán)語(yǔ)句實(shí)現(xiàn)此功能,而點(diǎn)號(hào)要重新排列,代碼部分如下:
Sub變換點(diǎn)號(hào)()
Di m i As Integer
For i=1 To 180
Sheet3.Cells(11,3).Value=0
Sheet3.Cells(11+10*i,3).Val ue=Sheet3.
Cells(11+10* (i-1),3).Value+1
Next i
For i=1 To 180
Sheet3.Cells(12,3).Val ue=1
Sheet3.Cells(12+10*i,3).Value=Sheet3.
Cells(12+10* (i-1),3).Val ue+1
Next i
End Sub
各項(xiàng)功能實(shí)現(xiàn)后可對(duì)原始數(shù)據(jù)進(jìn)行原格式輸出:創(chuàng)建文本、寫(xiě)入數(shù)據(jù)。創(chuàng)建文本代碼:
Set fso=Create Object("Scripting.FileSystemObject")
filename="c:重構(gòu)后原始數(shù)據(jù).txt"
Set sfile=fso.Create Text File(filename)
寫(xiě)入數(shù)據(jù)通過(guò)函數(shù)writeline()循環(huán)調(diào)用逐行將未輸出的原始數(shù)據(jù)寫(xiě)入文本[10]。需要注意的是,將原始數(shù)據(jù)引入時(shí)使用西文冒號(hào)以便分離文字與數(shù)值,因此重構(gòu)還應(yīng)將冒號(hào)寫(xiě)入輸出數(shù)據(jù),此外文字之間、數(shù)字之間、文字與數(shù)字間的空格長(zhǎng)短須與原格式保持一致。
以雅安市某測(cè)區(qū)四等水準(zhǔn)測(cè)量為例。作為雅安市山區(qū)土地確權(quán)項(xiàng)目控制測(cè)量的一部分,在I成雅41基(09)和I成雅45基(09)二個(gè)I等水準(zhǔn)點(diǎn)的控制下,聯(lián)測(cè)了13個(gè)D級(jí)GPS點(diǎn),由2條附合路線(xiàn)和2條閉合路線(xiàn)及1條支線(xiàn)組成四等水準(zhǔn)網(wǎng),共20個(gè)測(cè)段,計(jì)114.81 k m,平均測(cè)段長(zhǎng)5.74 k m,最短測(cè)段長(zhǎng)1.39 k m,最長(zhǎng)測(cè)段長(zhǎng)10.50 k m,如圖3所示。
圖3 水準(zhǔn)線(xiàn)路
因項(xiàng)目工期緊迫,采取了先水準(zhǔn)后聯(lián)測(cè)GPS點(diǎn)的施測(cè)方案,于是觀測(cè)數(shù)據(jù)主要分為一期水準(zhǔn)觀測(cè)記錄,二期聯(lián)測(cè)GPS點(diǎn)水準(zhǔn)記錄,而提交水準(zhǔn)部分成果資料則要求按照GPS點(diǎn)分測(cè)段整齊提交,要求將兩期的水準(zhǔn)外業(yè)觀測(cè)資料按測(cè)段整齊排列,方便檢查驗(yàn)收,并且各測(cè)段高差與測(cè)段長(zhǎng)度能夠方便取出。水準(zhǔn)路線(xiàn)較長(zhǎng),數(shù)據(jù)量較大,如果采用傳統(tǒng)辦法只能使用表格分段處理,處理后在原始數(shù)據(jù)中進(jìn)行編輯,耗時(shí)耗力易出差錯(cuò)。在此采用水準(zhǔn)數(shù)據(jù)重構(gòu)程序進(jìn)行快速分類(lèi)、處理。
重構(gòu)前如圖4所示第一張圖片中的數(shù)據(jù),相鄰測(cè)段不同周期的觀測(cè)數(shù)據(jù)統(tǒng)計(jì)結(jié)果(累計(jì)視距、累計(jì)高差等)在上個(gè)測(cè)段的第12站與下個(gè)測(cè)段的第1站出現(xiàn)不連續(xù)。第二張重構(gòu)輸出后的數(shù)據(jù)與重構(gòu)前的相比,排列有序一致,各項(xiàng)統(tǒng)計(jì)數(shù)值正確,所需測(cè)段高程(或高差)可在測(cè)站末尾準(zhǔn)確讀取。
圖4 成果圖
采用此程序設(shè)計(jì)方案,在保證原始數(shù)據(jù)完整性的前提下快速實(shí)現(xiàn)了數(shù)據(jù)的替換、變更、處理以及精確重構(gòu),在內(nèi)業(yè)處理中節(jié)省了大量時(shí)間,發(fā)揮了重要的作用。
本文采用的平臺(tái)實(shí)現(xiàn)了徠卡數(shù)字水準(zhǔn)儀原始觀測(cè)數(shù)據(jù)可以增減變更、替換,通過(guò)程序計(jì)算、檢核,最終精確重構(gòu)輸出。整個(gè)過(guò)程也提供了一整套完整的原始數(shù)據(jù)編輯處理方案,與其他類(lèi)似程序相比,其使用更加靈活簡(jiǎn)便,只須調(diào)用對(duì)部分程序模塊,為水準(zhǔn)測(cè)量觀測(cè)數(shù)據(jù)整理提供了一種簡(jiǎn)單快捷的工具。
[1] 陳小歌,余代俊,毛川.弱光線(xiàn)對(duì)數(shù)字水準(zhǔn)儀測(cè)量的影響分析[J].測(cè)繪工程,2014,23(2):64-65.
[2] 徐昌榮,鄔雪江.采用C#語(yǔ)言實(shí)現(xiàn)LGO的二次開(kāi)發(fā)方法探討[J].工程勘察,2013(11):60-62.
[3] 楊睿,尹暉.Smart Sur vey水準(zhǔn)測(cè)量一體化系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[J].測(cè)繪工程,2009,19(6):49-52.
[4] 李德龍,張文金.徠卡DNA03水準(zhǔn)儀數(shù)據(jù)處理方案與實(shí)現(xiàn)[J].城市勘測(cè),2009(6):93-94.
[5] 孔祥元,郭際明.控制測(cè)量學(xué)[M].武漢:武漢大學(xué)出版社,2006:215-220.
[6] 汪平,孫雪潔,許家琨,等.基于Visual Basic實(shí)現(xiàn)徠卡DNA03電子水準(zhǔn)儀數(shù)據(jù)處理[J].海洋測(cè)繪,2013(6):56-58.
[7] 賈丙普,彭喜林.徠卡DNA03數(shù)字水準(zhǔn)儀數(shù)據(jù)處理研究[J].測(cè)繪工程,2015,24(2):75-77.
[8] 中國(guó)國(guó)家標(biāo)準(zhǔn)化管理委員會(huì).GB/T 12891-2006國(guó)家三四等水準(zhǔn)測(cè)量規(guī)范[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2006.
[9] 佟彪.VB語(yǔ)言與測(cè)量程序設(shè)計(jì)[M].北京:中國(guó)電力出版社,2007:116-119.
[10]馬前雪.文件操作之 VB篇[J].中文信息,2002(12):24-28. ?