烏麗雅蘇,孟克其勞,蘇立娟,道日娜
(1.內(nèi)蒙古工業(yè)大學 內(nèi)蒙古 呼和浩特 010080;2.內(nèi)蒙古自治區(qū)氣象科學研究所 內(nèi)蒙古 呼和浩特 010051)
基于MATLAB GUI的水汽自動處理系統(tǒng)的設(shè)計與實現(xiàn)
烏麗雅蘇1,孟克其勞1,蘇立娟2,道日娜1
(1.內(nèi)蒙古工業(yè)大學 內(nèi)蒙古 呼和浩特 010080;2.內(nèi)蒙古自治區(qū)氣象科學研究所 內(nèi)蒙古 呼和浩特 010051)
在利用GAMIT軟件解算得出對流層總延遲ZTD的基礎(chǔ)上,通過MATLAB GUI各控件的布局設(shè)計及其回調(diào)函數(shù)的編寫,利用MATLAB的圖形用戶開發(fā)環(huán)境(GUIDE)設(shè)計實現(xiàn)了水汽自動處理系統(tǒng)。本系統(tǒng)具有氣象數(shù)據(jù)查詢,日期與年積日轉(zhuǎn)換,利用GPS氣象數(shù)據(jù)及探空氣象數(shù)據(jù)計算水汽總量及水汽變化分析等功能,可避免使用復雜的程序運算得出天頂靜力學延遲ZHD,天頂濕延遲ZWD等氣象要素。同時具有界面友好,操作簡單,可移植性強等特點,為使用者提供了方便的,可視化的氣象數(shù)據(jù)查詢及水汽總量計算方法,具有良好的實際應(yīng)用價值。
MATLAB;GUI;水汽總量;氣象數(shù)據(jù)
水汽總量(又稱大氣可降水量)是氣象學中非常重要的一個物理量,指從地面直到大氣層頂?shù)拇怪睔庵兴偭咳磕Y(jié)并降落到地面可以產(chǎn)生的降水量,通常用相當?shù)乃吭谕娣e容器中的深度表示,以毫米為單位[1]。目前水汽探測的方法有很多,例如通過釋放探空氣球,利用水汽輻射計,激光雷達等[2]。隨著全球定位系統(tǒng)(Global Positioning System)的發(fā)展,利用GPS衛(wèi)星信號在大氣層中傳輸時由大氣折射產(chǎn)生的延遲并結(jié)合其誤差的消除,可解算出毫米級的大氣延遲量。大氣延遲量可分為電離層延遲,天頂靜力延遲和天頂濕延遲,其中電離層延遲通過采用雙頻技術(shù)基本可以完全消除[3-4],而天頂靜力學延遲(ZHD)可以通過地面氣壓參數(shù)與天頂靜力學模型計算得出,再結(jié)合天頂濕延遲(ZWD)并乘以轉(zhuǎn)換系數(shù),即可得出水汽總量。
利用GPS計算水汽總量的方法具有時間分辨率高,設(shè)備易于維護和更新,費用較低,可全天觀測而不受氣溶膠,云和降水的影響等優(yōu)點[5],但由于該方法數(shù)據(jù)量大,計算公式復雜,過程繁瑣,且目前主要使用編寫腳本程序的方式進行水汽總量的計算,從而其交互性不強,不便于初學者掌握。針對以上問題,設(shè)計開發(fā)一款界面友好,操作簡單的水汽自動處理系統(tǒng)是非常有必要的。
MATLAB軟件在數(shù)值運算,一維和二維圖形的繪制,數(shù)值擬合等方面均有極強的功能,已被廣泛應(yīng)用于數(shù)字信號處理,圖像處理,系統(tǒng)仿真等各個領(lǐng)域[6]。同時MATLAB軟件具備高質(zhì)量的圖形可視化與界面設(shè)計工具,其集成圖形用戶界面 GUIDE(Graphical User Interface Development Environment)包含了窗口菜單,對話框,按鈕和文本等各種控件[7]。用戶通過控件的布局設(shè)計,編寫控件的回調(diào)函數(shù)就可以按照自身需求實現(xiàn)GUI與用戶之間直觀,便捷的交互。
文中以GAMIT軟件及2007-2008年內(nèi)蒙古呼和浩特,二連浩特站點探空與地面氣象數(shù)據(jù)為基礎(chǔ),通過MATLAB GUI設(shè)計實現(xiàn)了水汽自動處理系統(tǒng)。該系統(tǒng)具有氣象數(shù)據(jù)查詢,日期與年積日轉(zhuǎn)換,利用GPS氣象數(shù)據(jù)及探空氣象數(shù)據(jù)計算水汽總量及水汽變化分析等功能,為使用者提供了操作簡便,界面友好的用戶環(huán)境,化簡了氣象數(shù)據(jù)查詢及水汽總量計算的過程,具有一定的實際應(yīng)用價值。
水汽總量的計算過程中需要用到的數(shù)據(jù)有:利用GAMIT軟件解算得出的對流層總延遲ZTD及地面氣象數(shù)據(jù),探空氣象數(shù)據(jù)等。GPS觀測數(shù)據(jù),精密星歷等輔助文件的準備過程及GAMIT軟件的具體解算過程請參照文獻[8]。水汽總量的計算過程如圖1所示,包括從GAMIT軟件的解算結(jié)果提取對流層總延遲ZTD,利用地面氣象數(shù)據(jù)結(jié)合天頂靜力學模型求出天頂靜力學延遲ZHD,根據(jù)天頂濕延遲ZWD及轉(zhuǎn)換系數(shù)得出水汽總量等步驟。
圖1 水汽總量計算流程Fig.1 Flow chart for precipitable water vapor calculation
圖1中除了對流層總延遲ZTD可利用GAMIT軟件解算得出之外,其余部分的求解均需要通過復雜的數(shù)學計算來完成,而且計算過程中需要用到的各參數(shù)往往數(shù)據(jù)量較大??紤]到MATLAB軟件具有強大的數(shù)值運算及圖形界面開發(fā)能力,所以利用MATLAB GUI設(shè)計實現(xiàn)的水汽自動處理系統(tǒng)可有效的為氣象數(shù)據(jù)利用及水汽計算過程提供便利。
利用MATLAB GUI制作水汽自動處理系統(tǒng)的過程可以分為GUI圖形界面布局和GUI程序?qū)崿F(xiàn)兩部分。MATLAB GUI的編輯界面由工具欄、控件選擇區(qū)、控件的標簽顯示區(qū)及位置坐標顯示區(qū)組成。在GUI圖形界面布局的過程中應(yīng)該首先構(gòu)思界面所要實現(xiàn)的功能及各控件需要完成的任務(wù),設(shè)計時可先繪制草圖,審查是否達到界面美觀,符合用戶使用習慣等。完成控件的布局之后,應(yīng)該對控件的屬性進行設(shè)置,通過在相應(yīng)的控件上雙擊左鍵,即可調(diào)用屬性查看器,設(shè)置和查看該控件所有屬性。為了使控件具備相應(yīng)的功能,就要對控件進行回調(diào)函數(shù)的編寫,這一步也是界面設(shè)計的關(guān)鍵,直接影響著界面的功能。
在利用GUIDE進行界面設(shè)計的過程中,會產(chǎn)生兩個文件:一個是.fig文件,主要包括GUI控件的屬性及布局位置信息;另一個是.m文件,主要包含了賦予GUI控件相關(guān)功能的回調(diào)函數(shù)信息[9]。
本系統(tǒng)采用總-分式設(shè)計,即通過程序控制主界面對各子GUI的調(diào)用,當鼠標點擊主界面中的6個觸控按鈕(Push Button)可以分別進入到對應(yīng)的子界面,點擊“退出”按鈕可以彈出確認對話框選擇是否退出系統(tǒng),系統(tǒng)主界面如圖2所示。實現(xiàn)步驟為:1)在確定界面設(shè)計思想的基礎(chǔ)上通過MATLAB GUI的編輯界面進行控件的選擇,布局。2)通過屬性編輯器對控件進行屬性設(shè)置。3)進行控件回調(diào)函數(shù)的編寫。以界面中的“退出”按鈕為例,回調(diào)函數(shù)為:
通過以上設(shè)置,當點擊“退出”按鈕時,出現(xiàn)圖3所示結(jié)果。
圖2 水汽自動處理系統(tǒng)主界面Fig.2 Main interface of automatic vapor processing system
圖3 “退出”按鈕功能演示Fig.3 Demo of“Exit” button
從實際應(yīng)用角度出發(fā),本系統(tǒng)具備以下3種功能:1)氣象要素查詢功能;2)水汽總量計算功能;3)水汽變化分析功能。
2.2.1 氣象要素查詢功能
由于地面和探空氣象數(shù)據(jù)都是以.OOO為后綴的文本文件,而且文件內(nèi)的數(shù)據(jù)都按照一定的規(guī)律排列,例如地面氣象數(shù)據(jù)是以年-月-日-時次為文件名,數(shù)據(jù)內(nèi)容包括區(qū)站號、經(jīng)度、緯度、海拔高度、站點級別、總云量、風向、風速等26項氣象要素?;谝陨咸攸c,本系統(tǒng)設(shè)計了氣象數(shù)據(jù)查詢界面,如圖4(a)所示。實現(xiàn)過程為:首先將氣象數(shù)據(jù)存儲于系統(tǒng)中指定的位置,然后在該界面.m文件的OpeningFcn函數(shù)中規(guī)定文件的讀取路徑,并利用MATLAB讀取文本文件的函數(shù)將氣象數(shù)據(jù)讀入MATLAB的單元數(shù)組中,例如將氣象數(shù)據(jù)存放在系統(tǒng)的F盤中,則在界面.m文件的OpeningFcn函數(shù)中以語句 fid=fopen([‘F:2008’ ‘0’ num2str(S(k)) ‘.000’],‘r’)將氣象文件讀取到單元數(shù)組中。再根據(jù)Button Group中的站點選擇(可在回調(diào)函數(shù)中利用Switch語句進行站號的定位),Listbox中的日期、時間的點擊選擇(單選或多選)確定相應(yīng)數(shù)據(jù)在單元數(shù)組中的位置,并編寫Edit Text(氣象數(shù)據(jù)顯示區(qū))的回調(diào)函數(shù)使顯示查找結(jié)果。
2.2.2 水汽總量計算功能
水汽總量PWV的計算可根據(jù)GPS數(shù)據(jù)結(jié)合地面氣象數(shù)據(jù)及利用探空數(shù)據(jù)的方法得出,具體計算公式請參見文獻1。本系統(tǒng)根據(jù)以上兩種方法分別設(shè)計了GPS數(shù)據(jù)計算PWV及探空數(shù)據(jù)計算PWV界面,如圖4(b),(c)所示。實現(xiàn)方法為:在站點選擇控件(Radio Button)及日期、時間設(shè)定控件(Edit Text與Listbox)的回調(diào)函數(shù)中設(shè)定操作的訪問路徑,通過查找MATLAB的單元數(shù)組中對應(yīng)的氣象數(shù)據(jù)的位置信息,讀取到計算所需要的數(shù)據(jù),并將數(shù)據(jù)傳遞到“計算”按鈕的回調(diào)函數(shù)中(即用MATLAB語言編寫的水汽總量計算公式中),經(jīng)過計算,將得出的數(shù)據(jù)送至計算結(jié)果顯示區(qū)域顯示。同時,在“保存”按鈕的回調(diào)函數(shù)中設(shè)定以日期時間為文件名的文本文件的保存路徑,以便滿足使用者保存計算結(jié)果的需求。
圖4 水汽自動處理系統(tǒng)子界面Fig.4 Sub-interface of automatic vapor processing system
2.2.3 水汽變化分析功能
水汽數(shù)據(jù)是氣象業(yè)務(wù)應(yīng)用中重要的觀測數(shù)據(jù),其根據(jù)時間的變化趨勢是氣象預報和分析的重要依據(jù)。基于MATLAB強大的繪圖及圖形顯示功能,本系統(tǒng)設(shè)計了水汽分析界面。通過界面中GPS及探空數(shù)據(jù)變化曲線及其對比按鈕控件的回調(diào)函數(shù)的編寫,調(diào)用保存的水汽總量計算結(jié)果的文本文件,并根據(jù)日期與數(shù)據(jù)范圍的變化確定圖形顯示的X軸(時間)與Y軸(水汽總量值),并將變化曲線送至Axes控件顯示。此界面可以為使用者提供直觀的水汽變化觀測方法,為用戶在水汽變化分析,數(shù)據(jù)對比方面提供便利。
2.2.4 其他功能
同時,本系統(tǒng)也設(shè)計了年積日查詢與pH自動氣象臺站數(shù)據(jù)讀取功能。由于年積日與日期之間是一一對應(yīng)的,所以通過預先制作的年積日-日期轉(zhuǎn)換表格 (為2列365行的表格,可以為EXCEL或TXT形式),在回調(diào)函數(shù)中規(guī)定讀取此轉(zhuǎn)換表格的訪問路徑,通過用戶所輸入的需要轉(zhuǎn)換的數(shù)值,與表格中的數(shù)值進行比較、定位,再將表格中與此數(shù)據(jù)同行不同列的數(shù)據(jù)返回并輸出顯示即可實現(xiàn)年積日-日期之間的轉(zhuǎn)換。而PH自動臺站產(chǎn)生的氣象數(shù)據(jù)與圖4(a)中所顯示的氣象數(shù)據(jù)只是在文本格式上有所不同,只要在程序的文件讀取語句中將文件后綴名作更改即可,在此不再贅述。
圖 5(a)、(b)分別表示經(jīng)本系統(tǒng)計算得出的 2008年 1月6日當日GPS數(shù)據(jù)PWV變化曲線和本周內(nèi)探空數(shù)據(jù)PWV變化曲線。與其他計算水汽總量的手段相比,本系統(tǒng)既保證了計算結(jié)果的準確度,又提供了簡便易行的水汽數(shù)據(jù)分析方法。
基于MATLAB軟件在圖形繪制,數(shù)值計算及可視化界面開發(fā)等方面的優(yōu)勢,在利用高精度GPS數(shù)據(jù)解算軟件GAMIT得出對流層總延遲ZTD的基礎(chǔ)上,結(jié)合地面及探空氣象數(shù)據(jù),通過MATLAB GUI設(shè)計完成的水汽自動處理系統(tǒng)可以實現(xiàn)氣象數(shù)據(jù)查詢、利用GPS及探空數(shù)據(jù)計算水汽總量、并對計算得出的結(jié)果進行分析,顯示其變化曲線等功能。本系統(tǒng)為水汽總量的計算提供了簡便易行的方法,提高了氣象數(shù)據(jù)的利用度,并具有性能可靠,便于操作等特點。同時,本系統(tǒng)在氣象業(yè)務(wù)及數(shù)值天氣預報方面具有一定的數(shù)據(jù)參考價值。
圖5 水汽總量變化曲線Fig.5 Precipitable water vapor changing curves
[1]李國平.地基GPS氣象學[M].北京:科學出版社,2010.
[2]谷小平.GPS反演及降雨預報方法研究[D].北京:中國農(nóng)業(yè)大學,2004.
[3]李成才,毛節(jié)泰.GPS地基遙感大氣水汽總量分析[J].應(yīng)用氣象學報,1998,9(4) :470-472.
LI Cheng-cai,MAO Jie-tai.Analysis for remote sensing of atmospheric precipitable water using ground based GPS receiver[J].Journal of Applied Meteorological Science,1998,9(4):470-472.
[4]李成才,毛節(jié)泰,李建國,等.全球定位系統(tǒng)遙感水汽總量[J].科學通報,1999(44):333-336.
LI Cheng-cai,MAO Jie-tai,LI Jian-guo,etal.Remote sensing of precipitable water vapor using global positioning system[J].Chinese Science Bulletin,1999(44):333-336.
[5]李國平,黃丁發(fā).GPS遙感區(qū)域大氣水汽總量研究回顧與展望[J].氣象科技,2004,32(4):201-205.
LI Guo-ping,HUANG Ding-fa.Reviews and prospects of researches on remote sensing of regional atmospheric water vapor using ground-based GPS[J].Meteorological Science and Technology,2004,32(4):201-205.
[6]羅建軍,楊琦.MATLAB7教程[M].北京:電子工業(yè)出版社,2005.
[7]姚秀芳,崔松菲.基于MATLAB GUIDE的程序設(shè)計[J].電腦知識與技術(shù),2009,27(5):7767-7768.
YAO Xiu-fang,CUI Song-fei.Programme design based on MATLAB GUIDE[J].Computer Knowledge and Technology,2009,27(5):7767-7768.
[8]王皓,李國平,陳嬌娜.運用GAMIT10.34解算成都地區(qū)的GPS可降水量[J].成都信息工程學院學報,2009,24(5):478-483.
WANG Hao,LI Guo-ping,CHEN Qiao-na.Solution of GPS precipitable water vapor in Chengdu area by using GAMIT10.34[J].Journal of Chengdu University of Information Technology,2009,24(5):478-483.
[9]羅華飛.MATLAB GUI設(shè)計學習手記[M].北京:北京航空航天大學出版社,2011.
Design and implementation of the MATLAB GUI-based automatic water vapor processing system
Wu-li-ya-su1, Meng-ke-qi-lao1, SU Li-juan2, DAO Ri-na1
(1.Inner Mongolia University of Technology,Huhhot010080,China;2.Inner Mongolia Institute of Meteorological Sciences,Huhhot010051,China)
On the base of calculating out zenith total delay ZTD in the use of GAMIT software,then on the basis of layout design of each MATLAB GUI control unit and the programming of their callback function,the author design and ultimately accomplish the water vapor automatic processing system by using MATLAB graphical user development environment(GUIDE).This system has the functions of meteorological data query, the date and year accumulate conversion, and the function of calculating the precipitable water vapor and analyzing the water vapor changes by using GPS meteorological data and sound data.It can avoid using complex programs to get the zenith hydrostatic delay ZHD;zenith wet delay ZWD and other meteorological elements.At the same time this system has the characteristics of friendly interface, the operation is simple,strong portability and others.The system provides the user with convenient,visual meteorological data query and precipitable water vapor calculation method,and has a good practical value.
MATLAB; GUI; precipitable water vapor; meteorological data
TP311
A
1674-6236(2012)06-0001-04
2012-02-08稿件編號:201202030
內(nèi)蒙古自治區(qū)應(yīng)用技術(shù)研究與開發(fā)資金項目(20080508;20100905)
烏麗雅蘇(1985—),女,蒙古族,內(nèi)蒙古自治區(qū)赤峰人,碩士研究生。研究方向:實時控制與信息處理。