烏麗雅蘇,孟克其勞,蘇立娟,道日娜
(1.內蒙古工業大學 內蒙古 呼和浩特 010080;2.內蒙古自治區氣象科學研究所 內蒙古 呼和浩特 010051)
基于MATLAB GUI的水汽自動處理系統的設計與實現
烏麗雅蘇1,孟克其勞1,蘇立娟2,道日娜1
(1.內蒙古工業大學 內蒙古 呼和浩特 010080;2.內蒙古自治區氣象科學研究所 內蒙古 呼和浩特 010051)
在利用GAMIT軟件解算得出對流層總延遲ZTD的基礎上,通過MATLAB GUI各控件的布局設計及其回調函數的編寫,利用MATLAB的圖形用戶開發環境(GUIDE)設計實現了水汽自動處理系統。本系統具有氣象數據查詢,日期與年積日轉換,利用GPS氣象數據及探空氣象數據計算水汽總量及水汽變化分析等功能,可避免使用復雜的程序運算得出天頂靜力學延遲ZHD,天頂濕延遲ZWD等氣象要素。同時具有界面友好,操作簡單,可移植性強等特點,為使用者提供了方便的,可視化的氣象數據查詢及水汽總量計算方法,具有良好的實際應用價值。
MATLAB;GUI;水汽總量;氣象數據
水汽總量(又稱大氣可降水量)是氣象學中非常重要的一個物理量,指從地面直到大氣層頂的垂直氣柱中所含水汽總量全部凝結并降落到地面可以產生的降水量,通常用相當的水量在同面積容器中的深度表示,以毫米為單位[1]。目前水汽探測的方法有很多,例如通過釋放探空氣球,利用水汽輻射計,激光雷達等[2]。隨著全球定位系統(Global Positioning System)的發展,利用GPS衛星信號在大氣層中傳輸時由大氣折射產生的延遲并結合其誤差的消除,可解算出毫米級的大氣延遲量。大氣延遲量可分為電離層延遲,天頂靜力延遲和天頂濕延遲,其中電離層延遲通過采用雙頻技術基本可以完全消除[3-4],而天頂靜力學延遲(ZHD)可以通過地面氣壓參數與天頂靜力學模型計算得出,再結合天頂濕延遲(ZWD)并乘以轉換系數,即可得出水汽總量。
利用GPS計算水汽總量的方法具有時間分辨率高,設備易于維護和更新,費用較低,可全天觀測而不受氣溶膠,云和降水的影響等優點[5],但由于該方法數據量大,計算公式復雜,過程繁瑣,且目前主要使用編寫腳本程序的方式進行水汽總量的計算,從而其交互性不強,不便于初學者掌握。針對以上問題,設計開發一款界面友好,操作簡單的水汽自動處理系統是非常有必要的。
MATLAB軟件在數值運算,一維和二維圖形的繪制,數值擬合等方面均有極強的功能,已被廣泛應用于數字信號處理,圖像處理,系統仿真等各個領域[6]。同時MATLAB軟件具備高質量的圖形可視化與界面設計工具,其集成圖形用戶界面 GUIDE(Graphical User Interface Development Environment)包含了窗口菜單,對話框,按鈕和文本等各種控件[7]。用戶通過控件的布局設計,編寫控件的回調函數就可以按照自身需求實現GUI與用戶之間直觀,便捷的交互。
文中以GAMIT軟件及2007-2008年內蒙古呼和浩特,二連浩特站點探空與地面氣象數據為基礎,通過MATLAB GUI設計實現了水汽自動處理系統。該系統具有氣象數據查詢,日期與年積日轉換,利用GPS氣象數據及探空氣象數據計算水汽總量及水汽變化分析等功能,為使用者提供了操作簡便,界面友好的用戶環境,化簡了氣象數據查詢及水汽總量計算的過程,具有一定的實際應用價值。
水汽總量的計算過程中需要用到的數據有:利用GAMIT軟件解算得出的對流層總延遲ZTD及地面氣象數據,探空氣象數據等。GPS觀測數據,精密星歷等輔助文件的準備過程及GAMIT軟件的具體解算過程請參照文獻[8]。水汽總量的計算過程如圖1所示,包括從GAMIT軟件的解算結果提取對流層總延遲ZTD,利用地面氣象數據結合天頂靜力學模型求出天頂靜力學延遲ZHD,根據天頂濕延遲ZWD及轉換系數得出水汽總量等步驟。

圖1 水汽總量計算流程Fig.1 Flow chart for precipitable water vapor calculation
圖1中除了對流層總延遲ZTD可利用GAMIT軟件解算得出之外,其余部分的求解均需要通過復雜的數學計算來完成,而且計算過程中需要用到的各參數往往數據量較大。考慮到MATLAB軟件具有強大的數值運算及圖形界面開發能力,所以利用MATLAB GUI設計實現的水汽自動處理系統可有效的為氣象數據利用及水汽計算過程提供便利。
利用MATLAB GUI制作水汽自動處理系統的過程可以分為GUI圖形界面布局和GUI程序實現兩部分。MATLAB GUI的編輯界面由工具欄、控件選擇區、控件的標簽顯示區及位置坐標顯示區組成。在GUI圖形界面布局的過程中應該首先構思界面所要實現的功能及各控件需要完成的任務,設計時可先繪制草圖,審查是否達到界面美觀,符合用戶使用習慣等。完成控件的布局之后,應該對控件的屬性進行設置,通過在相應的控件上雙擊左鍵,即可調用屬性查看器,設置和查看該控件所有屬性。為了使控件具備相應的功能,就要對控件進行回調函數的編寫,這一步也是界面設計的關鍵,直接影響著界面的功能。
在利用GUIDE進行界面設計的過程中,會產生兩個文件:一個是.fig文件,主要包括GUI控件的屬性及布局位置信息;另一個是.m文件,主要包含了賦予GUI控件相關功能的回調函數信息[9]。
本系統采用總-分式設計,即通過程序控制主界面對各子GUI的調用,當鼠標點擊主界面中的6個觸控按鈕(Push Button)可以分別進入到對應的子界面,點擊“退出”按鈕可以彈出確認對話框選擇是否退出系統,系統主界面如圖2所示。實現步驟為:1)在確定界面設計思想的基礎上通過MATLAB GUI的編輯界面進行控件的選擇,布局。2)通過屬性編輯器對控件進行屬性設置。3)進行控件回調函數的編寫。以界面中的“退出”按鈕為例,回調函數為:

通過以上設置,當點擊“退出”按鈕時,出現圖3所示結果。

圖2 水汽自動處理系統主界面Fig.2 Main interface of automatic vapor processing system

圖3 “退出”按鈕功能演示Fig.3 Demo of“Exit” button
從實際應用角度出發,本系統具備以下3種功能:1)氣象要素查詢功能;2)水汽總量計算功能;3)水汽變化分析功能。
2.2.1 氣象要素查詢功能
由于地面和探空氣象數據都是以.OOO為后綴的文本文件,而且文件內的數據都按照一定的規律排列,例如地面氣象數據是以年-月-日-時次為文件名,數據內容包括區站號、經度、緯度、海拔高度、站點級別、總云量、風向、風速等26項氣象要素。基于以上特點,本系統設計了氣象數據查詢界面,如圖4(a)所示。實現過程為:首先將氣象數據存儲于系統中指定的位置,然后在該界面.m文件的OpeningFcn函數中規定文件的讀取路徑,并利用MATLAB讀取文本文件的函數將氣象數據讀入MATLAB的單元數組中,例如將氣象數據存放在系統的F盤中,則在界面.m文件的OpeningFcn函數中以語句 fid=fopen([‘F:2008’ ‘0’ num2str(S(k)) ‘.000’],‘r’)將氣象文件讀取到單元數組中。再根據Button Group中的站點選擇(可在回調函數中利用Switch語句進行站號的定位),Listbox中的日期、時間的點擊選擇(單選或多選)確定相應數據在單元數組中的位置,并編寫Edit Text(氣象數據顯示區)的回調函數使顯示查找結果。
2.2.2 水汽總量計算功能
水汽總量PWV的計算可根據GPS數據結合地面氣象數據及利用探空數據的方法得出,具體計算公式請參見文獻1。本系統根據以上兩種方法分別設計了GPS數據計算PWV及探空數據計算PWV界面,如圖4(b),(c)所示。實現方法為:在站點選擇控件(Radio Button)及日期、時間設定控件(Edit Text與Listbox)的回調函數中設定操作的訪問路徑,通過查找MATLAB的單元數組中對應的氣象數據的位置信息,讀取到計算所需要的數據,并將數據傳遞到“計算”按鈕的回調函數中(即用MATLAB語言編寫的水汽總量計算公式中),經過計算,將得出的數據送至計算結果顯示區域顯示。同時,在“保存”按鈕的回調函數中設定以日期時間為文件名的文本文件的保存路徑,以便滿足使用者保存計算結果的需求。

圖4 水汽自動處理系統子界面Fig.4 Sub-interface of automatic vapor processing system
2.2.3 水汽變化分析功能
水汽數據是氣象業務應用中重要的觀測數據,其根據時間的變化趨勢是氣象預報和分析的重要依據。基于MATLAB強大的繪圖及圖形顯示功能,本系統設計了水汽分析界面。通過界面中GPS及探空數據變化曲線及其對比按鈕控件的回調函數的編寫,調用保存的水汽總量計算結果的文本文件,并根據日期與數據范圍的變化確定圖形顯示的X軸(時間)與Y軸(水汽總量值),并將變化曲線送至Axes控件顯示。此界面可以為使用者提供直觀的水汽變化觀測方法,為用戶在水汽變化分析,數據對比方面提供便利。
2.2.4 其他功能
同時,本系統也設計了年積日查詢與pH自動氣象臺站數據讀取功能。由于年積日與日期之間是一一對應的,所以通過預先制作的年積日-日期轉換表格 (為2列365行的表格,可以為EXCEL或TXT形式),在回調函數中規定讀取此轉換表格的訪問路徑,通過用戶所輸入的需要轉換的數值,與表格中的數值進行比較、定位,再將表格中與此數據同行不同列的數據返回并輸出顯示即可實現年積日-日期之間的轉換。而PH自動臺站產生的氣象數據與圖4(a)中所顯示的氣象數據只是在文本格式上有所不同,只要在程序的文件讀取語句中將文件后綴名作更改即可,在此不再贅述。
圖 5(a)、(b)分別表示經本系統計算得出的 2008年 1月6日當日GPS數據PWV變化曲線和本周內探空數據PWV變化曲線。與其他計算水汽總量的手段相比,本系統既保證了計算結果的準確度,又提供了簡便易行的水汽數據分析方法。
基于MATLAB軟件在圖形繪制,數值計算及可視化界面開發等方面的優勢,在利用高精度GPS數據解算軟件GAMIT得出對流層總延遲ZTD的基礎上,結合地面及探空氣象數據,通過MATLAB GUI設計完成的水汽自動處理系統可以實現氣象數據查詢、利用GPS及探空數據計算水汽總量、并對計算得出的結果進行分析,顯示其變化曲線等功能。本系統為水汽總量的計算提供了簡便易行的方法,提高了氣象數據的利用度,并具有性能可靠,便于操作等特點。同時,本系統在氣象業務及數值天氣預報方面具有一定的數據參考價值。

圖5 水汽總量變化曲線Fig.5 Precipitable water vapor changing curves
[1]李國平.地基GPS氣象學[M].北京:科學出版社,2010.
[2]谷小平.GPS反演及降雨預報方法研究[D].北京:中國農業大學,2004.
[3]李成才,毛節泰.GPS地基遙感大氣水汽總量分析[J].應用氣象學報,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]李成才,毛節泰,李建國,等.全球定位系統遙感水汽總量[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]李國平,黃丁發.GPS遙感區域大氣水汽總量研究回顧與展望[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].北京:電子工業出版社,2005.
[7]姚秀芳,崔松菲.基于MATLAB GUIDE的程序設計[J].電腦知識與技術,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解算成都地區的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設計學習手記[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
內蒙古自治區應用技術研究與開發資金項目(20080508;20100905)
烏麗雅蘇(1985—),女,蒙古族,內蒙古自治區赤峰人,碩士研究生。研究方向:實時控制與信息處理。