李燕軍,朱建華,王萬歷,龔真春
(61243部隊,甘肅 蘭州730020)
?
MATLAB在測繪數(shù)據(jù)處理中的優(yōu)越性及應(yīng)用
李燕軍,朱建華,王萬歷,龔真春
(61243部隊,甘肅蘭州730020)
摘要:簡要介紹了MATLAB的特點、優(yōu)勢及不足。結(jié)合MATLAB強大的數(shù)學計算和數(shù)據(jù)分析功能,針對測繪數(shù)據(jù)的特點,闡述了如何利用MATLAB進行測繪數(shù)據(jù)的處理和分析,給出了MATLAB神經(jīng)網(wǎng)絡(luò)工具箱在GPS高程轉(zhuǎn)換時的具體運用算例。實踐表明,MATLAB易學易用,使用其可大大簡化編程工作,特別適合非專業(yè)編程人員完成測繪數(shù)據(jù)計算、處理和分析等任務(wù)。
關(guān)鍵詞:MATLAB;測繪數(shù)據(jù);GPS高程;神經(jīng)網(wǎng)絡(luò)
MATLAB(MATrix LABoratory)是20世紀70年代由美國新墨西哥大學計算機科學系主任Cleve Moler教授開發(fā),由MathWorks公司加以發(fā)展和推向市場的一種科學計算語言。它是目前國際上最流行、應(yīng)用最廣泛的科學與工程計算軟件,具有語言簡潔緊湊、使用方便、編程效率高、圖形功能強、工具箱全面等特點,深受廣大科技工作者的喜愛[1]。在國際學術(shù)界,MATLAB已經(jīng)被認為是進行高效、可靠的科學計算標準軟件,在許多國際一流學術(shù)刊物上(尤其是信息科學刊物),都可以看到MATLAB的應(yīng)用[2]。本文主要介紹MATLAB軟件的特點、優(yōu)勢和不足,結(jié)合MATLAB強大的數(shù)學計算和數(shù)據(jù)分析功能,并以其神經(jīng)網(wǎng)絡(luò)工具箱在GPS高程轉(zhuǎn)換時的具體運用為例,分析和探討MATLAB應(yīng)用于測繪領(lǐng)域的優(yōu)勢和思路。
1.1測繪數(shù)據(jù)處理的特點
測繪科學是一門以大規(guī)模數(shù)據(jù)甚至是海量數(shù)據(jù)處理、分析與應(yīng)用為基礎(chǔ)的學科,其各項具體工作如測量平差、GPS高程與水準高程換算、遙感圖像處理、坐標轉(zhuǎn)換和GNSS軌道計算、信號模擬等,都涉及大量的計算。而在對測量數(shù)據(jù)或圖像處理過程中,編制測量程序時常常要面對大量的矩陣運算和海量的數(shù)據(jù)。這時需要用C、FORTRAN或C++和VB等語言來編寫相應(yīng)的程序來處理這些問題,要消耗大量的時間和精力,還有可能出錯。
1.2MATLAB應(yīng)用于測繪領(lǐng)域的優(yōu)越性
MATLAB作為一種優(yōu)秀的程序設(shè)計工具,在大規(guī)模數(shù)據(jù)處理,特別是矩陣運算方面具有其他程序設(shè)計語言難以比擬的優(yōu)越性,而且MATLAB還提供了與FORTRAN、C/C++、VB等語言的接口與混合調(diào)用,不但可以方便的將以前用其他語言編寫的程序移植到MATLAB平臺下,還可以在其他平臺下調(diào)用MATLAB程序,因此在科研和教學以及生產(chǎn)實踐中得到廣泛的應(yīng)用[3]。在使用MATLAB進行測繪數(shù)據(jù)處理時,可能只需要一條語句或函數(shù)就能解決上述(如大量的矩陣運算)等問題,大大減輕工作量,提高程序的編寫效率和準確性。例如坐標換算是測繪工作中必不可少的部分,在地理信息系統(tǒng)、遙感圖像配準、GPS后處理等工作中都要用到坐標轉(zhuǎn)換。坐標轉(zhuǎn)換實質(zhì)是求解轉(zhuǎn)換系數(shù)的過程,即可簡化為:
如用其它計算機語言實現(xiàn),則需用相當復雜的算法和代碼,而在MATLAB中只需采用矩陣除法符號“/”完成,即:
根據(jù)一定數(shù)量的控制點求出轉(zhuǎn)換矩陣T后,便可用矩陣相乘形式將所有待轉(zhuǎn)換點的新坐標求出來,計算過程非常簡單,而且不易出錯。
同樣,MATLAB可以方便地實現(xiàn)測量數(shù)據(jù)、遙感影像的頻域分析,其傅立葉變換函數(shù)為我們分析測量據(jù)提供了有效的方法,自帶的小波分析工具箱,提供了大量的小波分析工具,可實現(xiàn)影像的特征提取、數(shù)據(jù)壓縮以及圖像的融合等[4]。
1.3MATLAB不足性分析
實踐證明,MATLAB處理測繪數(shù)據(jù)具有更大的優(yōu)越性,將其引入測繪領(lǐng)域是一件非常有意義的事情。但MATLAB編制的程序也有其本身的缺點,主要有以下幾點:
1)運行速度慢。由于用MATLAB語言編寫的M程序是一種解釋性語言,只能在MATLAB環(huán)境下運行,當進行海量數(shù)據(jù)處理時,所需要的時間較長。
2)源程序可讀。M文件是ASCII碼文件,不但可見,而且可以修改。對于一些需要保密的算法來說,其安全性差應(yīng)當值得注意。
3)可移植性差。當進行M程序發(fā)布和移植時,要求被發(fā)布的計算機上也要安裝MATLAB,其通用性受到很大的限制。
為了解決上述問題,目前也有一些文獻做了這方面的探討,如一般是先將MATLAB函數(shù)編譯成脫離MATLAB環(huán)境的可執(zhí)行文件(以下簡稱可執(zhí)行文件),然后將可執(zhí)行文件與其運行時所需的動態(tài)鏈接庫一起打包、發(fā)布,從而開發(fā)出相應(yīng)的測量軟件。由于MATLAB的編譯是MATLAB應(yīng)用的熱點之一,但是全面探討如何將待編譯的M程序進行優(yōu)化以及將編譯后的可執(zhí)行文件發(fā)布等問題的文獻還不多,因此需要進一步的分析和研究[5]。
2.1GPS高程擬合方法
GPS測量得到的地面點高程是在WGS-84橢球上的大地高HGps,而我國采用的高程系統(tǒng)為正常高系統(tǒng),因此在實際測量工作中,更多需要的是正常高Hr。這就需要找出GPS點的大地高與正常高的關(guān)系,并用一定的方法轉(zhuǎn)換GPS高程。二者之間的關(guān)系如下式所示[6]:
用于CPS高程擬合的方法較多,如:樣條函數(shù)法、多項式曲面擬合法、非參數(shù)回歸曲面擬合法和移動曲面法等,這里不再詳述。
2.2MATLAB中的BP神經(jīng)網(wǎng)絡(luò)及其算法簡介
近年來,出現(xiàn)了用于轉(zhuǎn)換GPS高程的人工神經(jīng)網(wǎng)絡(luò)方法,它是一種自適應(yīng)的映射方法,在轉(zhuǎn)換GPS高程時不需作假設(shè),能減少模型誤差,具有較高的精度,國內(nèi)外許多學者已對其進行較多的研究和運用。BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Network)是基于誤差反向傳播算法的多層前饋網(wǎng)絡(luò)[7,8]。如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)原理圖
顯然,BP網(wǎng)絡(luò)的輸入與輸出關(guān)系是一個高度的非線性映射關(guān)系,即:
對于樣本集合:輸入xi∈Rn和Oj∈Rm,可以認為存在某一個映射g,使
BP神經(jīng)網(wǎng)絡(luò)實質(zhì)上是一種函數(shù)逼近器,理論上它可以無限度的逼近任何線性或非線性的函數(shù),其工作方式分為兩個階段:一個階段為學習階段,另一個階段為BP網(wǎng)絡(luò)計算階段。盡管神經(jīng)網(wǎng)絡(luò)方法優(yōu)勢明顯,但由于神經(jīng)網(wǎng)絡(luò)系統(tǒng)理論較為復雜,因而編程實現(xiàn)起來比較困難。但MATLAB為編程人員提供了一個很好的工具,其神經(jīng)網(wǎng)絡(luò)工具箱幾乎涵蓋了所有的神經(jīng)網(wǎng)絡(luò)常用模型,集成了多種學習算法,為BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用研究提供了強有力的工具,我們可以根據(jù)自己的需要去調(diào)用工具箱中的設(shè)計和訓練程序,將自己從繁瑣的編程中解脫出來,集中精力解決其它問題。
2.3基于MATLAB的GPS高程擬合實現(xiàn)
如上所述,下面給出GPS高程擬合程序的部分源碼及功能如下:
%學習階段%
…
[pn,p最小值,p最大值,tn,t最小值,t最大值]= premnmx(p,t);%數(shù)據(jù)預(yù)處理
Net=newrbe(P,T,SPREAD)%建立網(wǎng)絡(luò)
Net=newff(minmax(pn),[輸入層層數(shù),輸出層層數(shù)],{'傳輸函數(shù)','傳輸函數(shù)'},'訓練方法');
Net=init(net) %初始化網(wǎng)絡(luò)
Net.trainParam.show=100;%間隔
…
[net,tr]=train(net,pn,tn);%訓練生的成BP神經(jīng)網(wǎng)絡(luò)
an=sim(net,pn); %模擬學習數(shù)據(jù)
a=postmnmx(an,最小值t,最大值t);%復原學習數(shù)據(jù)
deta1=(t-a);%求學習誤差
…
%工作階段% pnewn=tramnmx (p2,p最小值,p最大值)
Load surveyingnet net;%加載保存的已訓練好的網(wǎng)絡(luò)
bn=sim(net,pnewn); %模擬工作數(shù)據(jù)
b=postmnmx (bn,t最小值,t最大值);%復原工作數(shù)據(jù)
deta2=(t2-b); %求工作誤差
…
本實例所采用的數(shù)據(jù)為某三級GPS大地控制網(wǎng)中的GPS點位觀測數(shù)據(jù),且所有的GPS點位都進行了三等以上水準聯(lián)測。選取其中4,10,15個均勻分布于測區(qū)的點作為已知點構(gòu)成學習集,其它36,30,25個點作為工作集,用于檢驗轉(zhuǎn)換GPS高程的擬合效果。根據(jù)以上程序,本文結(jié)合工程數(shù)據(jù)反復的試驗與分析,確定了一個10×1結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)運行結(jié)果穩(wěn)定,無不收斂情況發(fā)生。GPS高程擬合結(jié)果見表1。表中,△ζ為高程異常偏差;ζ0為已知高程異常;ζ為擬合結(jié)果。
綜上所述,MATLAB功能強大,并且開發(fā)工具方便快捷,編程的特點更貼近人們的思維方式。MATLAB在對測量數(shù)據(jù)進行的處理和分析時,是較好的數(shù)學工具軟件。將MATLAB與測繪領(lǐng)域?qū)嶋H問題相結(jié)合,可方便地開發(fā)出測量數(shù)據(jù)處理的應(yīng)用程序,大大提高工作效率。因此MATLAB在測量數(shù)據(jù)處理和程序開發(fā)中具有極大的應(yīng)用前景,必將越來越多應(yīng)用于測繪領(lǐng)域。
表1 10×1結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)GPS高程擬合結(jié)果?。▎挝唬簃)
參考文獻:
[1]薛定宇,陳陽泉.高等應(yīng)用數(shù)學問題的MATLAB求解[M].北京:清華大學出版社,2008,3-8.
[2]李建章,陳海鷹,紀鳳仙,等.測量數(shù)據(jù)處理程序設(shè)計[M].北京:國防工業(yè)出版社,2012,1-5.
[3]崔利,武文波.測繪領(lǐng)域中MATLAB的應(yīng)用[J].遼寧工程技術(shù)大學學報,2005(24):47-48.
[4]譚衍濤,張興福.MATLAB擬合工具箱在GNSS高程轉(zhuǎn)換中的應(yīng)用[J].工程勘察,2014(9):65-66.
[5]任超,歐吉坤,陽仁貴.在測量軟件開發(fā)中MATLAB的應(yīng)用[J].測繪通報,2004(1):11-16.
[6]李征航,黃勁松.GPS測量與數(shù)據(jù)處理[M].武漢:武漢大學出版社,2005,270-277.
[7]蔡昌盛,高井祥.面向MATLAB轉(zhuǎn)換GPS高程的神經(jīng)網(wǎng)絡(luò)方法[J].四川測繪,2007,30(2):68-69.
[8]王苗苗,柯福陽.多項式曲面擬合和BP神經(jīng)網(wǎng)絡(luò)GPS高程擬合方法的比較研究[J].測繪工程,2013,22(6):22-25.
中圖分類號:F592.7