(1.國家海洋局南海規(guī)劃與環(huán)境研究院 廣東 廣州 510300)(2.高新興科技集團(tuán)股份有限公司 廣東 廣州 510663)(3.深圳市坪山區(qū)科技創(chuàng)新局 廣東 深圳 518118)(4.佛山市城市規(guī)劃設(shè)計(jì)研究院 廣東 佛山 528000)(5.廣州高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)民營科技園管理委員會 廣東 廣州 510080)(6.揭陽市城鄉(xiāng)規(guī)劃設(shè)計(jì)院 廣東 揭陽 522031)
隨著測繪技術(shù)的不斷發(fā)展,計(jì)算機(jī)在現(xiàn)代測繪科學(xué)中的應(yīng)用越來越廣泛,從理論研究到實(shí)際生產(chǎn)的方方面面都離不開計(jì)算機(jī)。當(dāng)前國內(nèi)外關(guān)于水準(zhǔn)網(wǎng)間接平差程序設(shè)計(jì)與實(shí)現(xiàn)的方法有很多,其中比較主流的有:以VB為基礎(chǔ)的水準(zhǔn)網(wǎng)平差設(shè)計(jì)與實(shí)現(xiàn)[1-2]、變異系數(shù)賦權(quán)法對水準(zhǔn)網(wǎng)平差定權(quán)方法的改進(jìn)[3]、基于MATLAB的水準(zhǔn)網(wǎng)平差程序設(shè)計(jì)[4]和用信息擴(kuò)散估計(jì)進(jìn)行水準(zhǔn)網(wǎng)平差[5]。總的來說這些方法都是當(dāng)前有關(guān)水準(zhǔn)網(wǎng)平差設(shè)計(jì)與實(shí)現(xiàn)的有效方法,但各個方法的側(cè)重點(diǎn)不同,基于不同的平臺實(shí)現(xiàn)有的方法還存在改進(jìn)的地方。
對觀測數(shù)據(jù)進(jìn)行平差處理一般有條件平差和間接平差兩種方法,但在條件平差中,條件方程式往往是多變的,這不利于計(jì)算機(jī)程序處理,因此在平差程序設(shè)計(jì)中一般是采用間接平差方法。

代入上式,并令:
1=L-(BX0+d)=L-L0(2-3)
L0=BX0+d為觀測值得近似值,所以l是觀測值與其近似值之差由此可得誤差方程:

由誤差方程V求出觀測量(高差)平均值:

評定精度:
單位權(quán)中誤差:
平差值函數(shù)中誤差:
本程序是基于Visual Studio 2017平臺進(jìn)行開發(fā),該平臺運(yùn)行環(huán)境穩(wěn)定,功能強(qiáng)大。采用C#語言進(jìn)行編寫,C#語言是一種安全、穩(wěn)定的語言,應(yīng)用方便能夠?qū)崿F(xiàn)程序的運(yùn)行。平差程序主要實(shí)現(xiàn)以下四個功能模塊:數(shù)據(jù)輸入、平差計(jì)算、結(jié)果保存和輸出圖形。
程序界面的設(shè)計(jì)利用Visual Studio 2017的有關(guān)部件構(gòu)建水準(zhǔn)網(wǎng)平差程序的運(yùn)行界面、輸入、輸出窗口并根據(jù)觀測數(shù)據(jù)和已知數(shù)據(jù)的輸入形式和數(shù)據(jù)結(jié)構(gòu)按照水準(zhǔn)網(wǎng)平差的間接平差模型編寫相應(yīng)代碼,形成參數(shù)平差模型計(jì)算模塊[7]。
軟件界面設(shè)計(jì)包括菜單欄、工具欄、列表框和輸出界面,菜單欄中設(shè)計(jì)了文件、編輯和關(guān)于三個按鈕。程序界面如圖1所示:

圖1 水準(zhǔn)網(wǎng)間接平差程序界面
水準(zhǔn)網(wǎng)數(shù)據(jù)以文本格式存儲,可在程序中直接調(diào)用。一個水準(zhǔn)網(wǎng)一般應(yīng)包含如下數(shù)據(jù):已知點(diǎn)個數(shù)、未知點(diǎn)個數(shù)、點(diǎn)號名、已知高程值、高差觀測值、距離觀測值、觀測點(diǎn)的坐標(biāo)值等。數(shù)據(jù)的錄入格式如下所示:
第一行:按“已知點(diǎn)個數(shù),未知點(diǎn)個數(shù),觀測值數(shù)(hn)”;
第二行:點(diǎn)號(已知點(diǎn)在前,未知點(diǎn)在后)以逗號隔開,末尾不輸入逗號;
第三行:已知高程,與上一行的點(diǎn)號順序相對應(yīng);
第四行到“比觀測值數(shù)多三”(hn+3)的那一行:每一行按照“起點(diǎn)點(diǎn)號,終點(diǎn)點(diǎn)號,高差觀測值,距離觀測值”的順序輸入;“比觀測值個數(shù)多三”(hn+3)以后的行:每一行按照“點(diǎn)號,X坐標(biāo)值,Y坐標(biāo)值,Z值”的順序進(jìn)行輸入。
水準(zhǔn)網(wǎng)中的所有原始數(shù)據(jù)準(zhǔn)確無誤以后,接下來就能進(jìn)行平差計(jì)算,這里簡要敘述一下系統(tǒng)平差計(jì)算的步驟和方法:
(1)根據(jù)水準(zhǔn)網(wǎng)中已知點(diǎn)的高程,按順序依次查找其周圍是否有未推算出高程的點(diǎn),如果有未知高程就推算其概略高程。循環(huán)上述操作,直到水準(zhǔn)網(wǎng)中各個點(diǎn)均有它的概略高程為止[8]。
(2)依據(jù)數(shù)據(jù)庫中各個數(shù)組保存的測段信息(與輸入方向相同的測段信息),依次查找并返回各測段的起點(diǎn)、終點(diǎn)、其概略高程、各測段的路線長和高差觀測值,按照間接平差公式建立誤差方程的系數(shù)矩陣、常數(shù)項(xiàng)矩陣和各測段的權(quán)[9]。
(3)建立法方程系數(shù)矩陣和常數(shù)項(xiàng)矩陣。
(4)計(jì)算解出法方程,求出各個未知點(diǎn)的高程改正數(shù),計(jì)算得出各個未知點(diǎn)的高程平差值。
(5)對精度進(jìn)行評定:單位公里觀測高差中數(shù)的偶然中誤差;各個待定點(diǎn)的高程平差;各個待定點(diǎn)間的高差平差值的中誤差。
計(jì)算結(jié)果首先在程序中顯示,然后可以選擇輸出為文本文件、Word文件和Excel文件,并且能夠根據(jù)輸出結(jié)果繪制出水準(zhǔn)網(wǎng)圖,也能夠選擇輸出為圖片對水準(zhǔn)網(wǎng)圖進(jìn)行顯示,程序的輸出結(jié)果多樣,方便用戶對平差結(jié)果以不同的方式進(jìn)行輸出存儲。
Micsoft Visual Studio 2017擁有強(qiáng)大的繪圖功能,它可以根據(jù)已知觀測數(shù)據(jù)中的坐標(biāo)值,在程序輸出界面中繪制出水準(zhǔn)網(wǎng)圖,本程序在設(shè)計(jì)的時候定義了一個繪圖的類,名稱為Draw Graphic,調(diào)用后可繪制相應(yīng)水準(zhǔn)網(wǎng)圖形并顯示水準(zhǔn)網(wǎng)間接平差實(shí)現(xiàn)的每個過程,以及平差軟件實(shí)現(xiàn)的功能,軟件能夠顯示計(jì)算過程、計(jì)算結(jié)果和輸出結(jié)果,滿足水準(zhǔn)網(wǎng)間接平差和圖形輸出的需求,通過輸出的水準(zhǔn)網(wǎng)圖直觀地對軟件的水準(zhǔn)網(wǎng)圖和計(jì)算結(jié)果進(jìn)行顯示。
為了驗(yàn)證平差助手計(jì)算的正確性和系統(tǒng)的穩(wěn)健性,選取一組水準(zhǔn)網(wǎng)數(shù)據(jù)對程序運(yùn)行情況和結(jié)果進(jìn)行驗(yàn)證和精度分析,檢驗(yàn)軟件的使用功能,并與專業(yè)權(quán)威軟件的輸出結(jié)果進(jìn)行對比以驗(yàn)證該程序軟件能否達(dá)到精度標(biāo)準(zhǔn),是否會發(fā)生計(jì)算錯誤[10-13]。

表1 平差助手驗(yàn)證數(shù)據(jù)
如表1所示,點(diǎn)1、2、3、4組成一組水準(zhǔn)網(wǎng)數(shù)據(jù),其中點(diǎn)1為已知點(diǎn),其高程為45.748m,2、3、4點(diǎn)為未知點(diǎn),將觀測值按軟件所要求的文本形式輸入平差程序軟件內(nèi),輸入形式如下所示:
1,3,5
1,2,3,4
45.748
1,2,5.835,0.35
2,3,3.782,0.27
1,3,5.640,0.20
4,3,5.384,0.30
1,4,2.270,0.25
1,487278.622,3768859.593,
2,487224.963,3768854.792,
3,487225.845,3768845.205,
4,487226.630,3768842.731,
導(dǎo)入到程序中,平差結(jié)果如表2所示:

表2 高程平差結(jié)果
平差后輸出的圖形如圖2所示:

圖2 水準(zhǔn)網(wǎng)圖
為了驗(yàn)證程序結(jié)果的可靠性,檢驗(yàn)水準(zhǔn)網(wǎng)間接平差程序能否滿足用戶需求和精度要求,將上述水準(zhǔn)網(wǎng)數(shù)據(jù)導(dǎo)入到南方平差易軟件中平差后按照國家三四等水準(zhǔn)各項(xiàng)規(guī)范進(jìn)行平差[14-16],平差結(jié)果如表3所示:

表3 高程平差結(jié)果對比
對兩個軟件的平差結(jié)果進(jìn)行對比,發(fā)現(xiàn)在點(diǎn)2和3處出現(xiàn)了差異,差值分別為+0.0001和-0.0001都是在誤差允許的范圍內(nèi),通過上述算例和專業(yè)的軟件平差結(jié)果進(jìn)行對比可以看出程序的運(yùn)行結(jié)果達(dá)到了預(yù)期的效果。
水準(zhǔn)網(wǎng)間接平差助手界面簡潔,程序算法嚴(yán)密,易于操作,運(yùn)行穩(wěn)健,能夠迅速、準(zhǔn)確的對水準(zhǔn)網(wǎng)進(jìn)行平差計(jì)算,輸出水準(zhǔn)網(wǎng)圖形,平差結(jié)果可以在文本文件、Word和Excel文檔中保存,保存成果的路徑多樣,適合不同工作人員使用,具有較高的實(shí)際應(yīng)用價值。