孫永順,吳有恒
(1.貴州省三穗縣氣象局,貴州 三穗 556500;2.貴州省貴陽市氣象局,貴州 貴陽 550001)
基于VBA的兩要素自動(dòng)氣象站數(shù)據(jù)查詢系統(tǒng)
孫永順1,吳有恒2
(1.貴州省三穗縣氣象局,貴州 三穗 556500;2.貴州省貴陽市氣象局,貴州 貴陽 550001)
兩要素氣象站原始數(shù)據(jù)的文本文件記錄了各站點(diǎn)氣溫、降水量數(shù)據(jù),文本文件數(shù)據(jù)復(fù)雜繁多。利用VBA面向?qū)ο蟮恼Z法結(jié)構(gòu)進(jìn)行應(yīng)用程序開發(fā),該系統(tǒng)從原始數(shù)據(jù)文件中提取各站點(diǎn)氣溫、降水量數(shù)據(jù),并實(shí)現(xiàn)了氣溫、降水量的日數(shù)據(jù)、日合計(jì)、月平均、年平均以及極值條件查詢功能,極大地提高了兩要素資料查詢和統(tǒng)計(jì)工作效率。
VBA;兩要素氣象數(shù)據(jù);查詢系統(tǒng)
隨著氣象衛(wèi)星、多普勒雷達(dá)、多要素自動(dòng)氣象站的廣泛使用,氣象科學(xué)研究的課題已向中小尺度的方向發(fā)展,同時(shí)提出了地面自動(dòng)氣象觀測點(diǎn)密度要向以網(wǎng)格狀間隔5 km方向發(fā)展。兩要素自動(dòng)站作為區(qū)域自動(dòng)站正在發(fā)揮著人工無法代替的重要作用,大量的兩要素自動(dòng)氣象觀測站投入業(yè)務(wù)觀測運(yùn)行,為中小尺度的氣象預(yù)報(bào)提供了及時(shí)準(zhǔn)確的氣象要素,提高了中小尺度天氣的監(jiān)測預(yù)警能力。所以對(duì)兩要素自動(dòng)站收集提供的數(shù)據(jù)資料提取后進(jìn)行研究是氣象科學(xué)研究工作的重要組成部分。本文介紹了利用Excel內(nèi)置的VBA開發(fā)程序提取兩要素氣象數(shù)據(jù)并實(shí)現(xiàn)有查詢功能的系統(tǒng)開發(fā)。
選取Office中的Excel作為開發(fā)平臺(tái)。Excel有著強(qiáng)大的數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)功能,而且內(nèi)置了大量函數(shù),可連接到多種數(shù)據(jù)庫,對(duì)數(shù)據(jù)處理進(jìn)行了最強(qiáng)有力的支持,Excel已經(jīng)不能看成是一個(gè)簡單的應(yīng)用程序了,它是一個(gè)強(qiáng)大的開發(fā)平臺(tái)。利用其內(nèi)嵌的VBA進(jìn)行應(yīng)用軟件開發(fā),具有運(yùn)行速度快,使用方便,開發(fā)高效等特點(diǎn)。
兩要素氣象數(shù)據(jù)文件每天有4個(gè)文件(即4個(gè)后綴名為*.02 、*.08、*.14、*.20 的文件),這 4個(gè)文件里面包括了各站點(diǎn)名、前6h的氣溫、前6h的降水量。功能設(shè)計(jì)及思路如下:
圖1 系統(tǒng)組成模塊圖
①從每天4個(gè)數(shù)據(jù)文件里面按站點(diǎn)提取數(shù)據(jù)后形成新的基礎(chǔ)數(shù)據(jù)表文件。
②由于每年會(huì)增加新的兩要素站點(diǎn),要求系統(tǒng)對(duì)新出現(xiàn)的站點(diǎn)要能自動(dòng)識(shí)別并添加維護(hù)數(shù)據(jù)。
③根據(jù)站點(diǎn)、日期的選擇進(jìn)行每天的數(shù)據(jù)查詢。
④降水量條件查詢實(shí)現(xiàn)對(duì)某年降水量日合計(jì)值大于等于"xxx"mm的站點(diǎn)及具體時(shí)間的查詢。
⑤溫度條件查詢實(shí)現(xiàn)對(duì)某年某日某時(shí)溫度值大于等于"xxx"℃的站點(diǎn)及具體時(shí)間查詢。
⑥實(shí)現(xiàn)對(duì)某年某月某站點(diǎn)的月、年平均溫度或月、年平均降水量的查詢。
⑦能夠打印所查詢的數(shù)據(jù)。
結(jié)合功能設(shè)計(jì)的需求,可將該系統(tǒng)分為維護(hù)站點(diǎn)數(shù)據(jù)、生成基礎(chǔ)數(shù)據(jù)表等模塊。模塊如圖1所示:
由每天的4個(gè)數(shù)據(jù)文件里提取數(shù)據(jù)后可按年維護(hù)站點(diǎn)并形成一個(gè)基礎(chǔ)數(shù)據(jù)Excel文件。部分核心代碼如下:
以新形成的基礎(chǔ)數(shù)據(jù)文件為核心,根據(jù)需要設(shè)計(jì)查詢功能。這里以日數(shù)據(jù)查詢?yōu)槔?/p>
2.5.1 日數(shù)據(jù)查詢的窗體界面設(shè)計(jì) 打開Microsoft Office Excel 2003中文版,點(diǎn)擊“工具”→“宏”→“Visual Basic編輯器”,執(zhí)行其中“插入”菜單下的“用戶窗體”命令,插入一個(gè)窗體,并設(shè)置好窗體的Name屬性,根據(jù)需要添加一些控件即可(圖2)。
2.5.2 日數(shù)據(jù)查詢功能程序代碼 在已建好的窗體里面添加一些代碼,源碼如下:
圖2 日數(shù)據(jù)查詢窗體
該系統(tǒng)利用了VB的子集VBA作為開發(fā)工具,不需要安裝程序,只要將其拷貝到安裝有Excel環(huán)境的計(jì)算機(jī)上就可以直接運(yùn)行,而且軟件占用內(nèi)存空間小,運(yùn)行速度快,真正意義實(shí)現(xiàn)了安全可靠、方便、快捷。該系統(tǒng)提高了在實(shí)際工作中需要提取查詢、保存兩要素自動(dòng)氣象站數(shù)據(jù)工作人員的工作效率,減輕了日常工作負(fù)擔(dān),同時(shí)為完善氣象災(zāi)害監(jiān)測預(yù)警系統(tǒng)及氣象災(zāi)害數(shù)據(jù)庫起到了重要作用。
[1] 韓小良,韓舒婷.Excel VBA高效辦公實(shí)用寶典[M].北京:中國鐵道出版社,2008.
[2] 李政,李瑩,等.Excel高級(jí)應(yīng)用案例教程[M].北京:清華大學(xué)出版社,2010.
P413
B
1003-6598(2011)03-0040-03
2011-03-13
孫永順(1981-),男,助工,主要從事地面氣象測報(bào)工作。