霍健,陳晨
(北京鑒衡認(rèn)證中心,北京 100013)
在測(cè)試現(xiàn)場(chǎng),很多時(shí)候需要對(duì)氣象數(shù)據(jù)進(jìn)行簡(jiǎn)單分析,如風(fēng)況統(tǒng)計(jì)、計(jì)算分鐘平均、圖表顯示等。通過(guò)對(duì)氣象數(shù)據(jù)的分析,初步判斷氣象數(shù)據(jù)是否滿(mǎn)足測(cè)試標(biāo)準(zhǔn)[1-2]中的數(shù)據(jù)量要求。如果采用數(shù)據(jù)庫(kù)、Matlab等數(shù)據(jù)處理軟件,未免“大材小用”。且對(duì)于win7操作系統(tǒng)的筆記本來(lái)講,安裝數(shù)據(jù)庫(kù)等軟件略顯麻煩,實(shí)際應(yīng)用也要看筆記本的性能。
通常的方法是用LoggerNet軟件自帶View工具直接打開(kāi)氣象文件,此工具只能查看原始數(shù)據(jù)記錄及簡(jiǎn)單的曲線圖,要想對(duì)指定區(qū)間內(nèi)的數(shù)據(jù)進(jìn)行查看、統(tǒng)計(jì)等工作就“無(wú)能為力”了。而且打開(kāi)幾百兆以上的文件需要時(shí)間很長(zhǎng),且含有不在需要分析時(shí)間段的數(shù)據(jù)。此工具對(duì)數(shù)據(jù)導(dǎo)出的支持也不理想,在數(shù)據(jù)處理過(guò)程中,既浪費(fèi)時(shí)間又容易出錯(cuò)。其實(shí),只用Office自帶的Excel就能滿(mǎn)足這些需求。本文主要論述Excel中VBA[3]處理氣象數(shù)據(jù)方法。
以Excel2007為例,每個(gè)工作表最大行數(shù)是1048576,最大列數(shù)是16384,與數(shù)據(jù)處理相關(guān)的主要是行數(shù),以1Hz氣象數(shù)據(jù)采樣為例,一個(gè)工作表至多能儲(chǔ)存12天的數(shù)據(jù)。
在氣象數(shù)據(jù)處理中,主要工作分原始數(shù)據(jù)導(dǎo)入及數(shù)據(jù)處理兩部分。
在工作目錄中新建一個(gè)Excel,如“氣象數(shù)據(jù).xlsx”,打開(kāi)Excel,點(diǎn)擊菜單中的“視圖”→“宏”→“查看宏”,在彈出的窗口中輸入宏名,點(diǎn)擊“創(chuàng)建”。
當(dāng)原始數(shù)據(jù)導(dǎo)入后,接著就可以做數(shù)據(jù)分析處理。如計(jì)算平均,有兩種方式,一種是應(yīng)用VBA自帶公式,另一種是用VBA程序運(yùn)算。
VBA自帶公式:
通過(guò)VBA處理后的數(shù)據(jù)直觀整潔,如表1所示。
表1 一分鐘風(fēng)速平均
VBA還可以實(shí)現(xiàn)自動(dòng)生成曲線圖,主要代碼如下:
ActiveChart.Axes(xlCategory).TickMarkSpacing = 60
ActiveChart.Axes(xlCategory).TickLabelSpacing = 1
ActiveChart.Axes(xlCategory).TickLabelSpacing = 60
ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "2012-03-31日一分鐘平均曲線圖"
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "風(fēng) 速 m/s"
…
生成的曲線圖型如圖1所示。
圖1 實(shí)時(shí)風(fēng)速平均曲線圖
利用Excel中的VBA還可以實(shí)現(xiàn)很多既直觀又實(shí)用的功能,其小巧靈便的特點(diǎn)對(duì)快速處理氣象數(shù)據(jù)非常適用。把VBA程序模塊化、功能化、集成化后,就可以完全實(shí)現(xiàn)利用程序自動(dòng)處理分析氣象數(shù)據(jù)。
[1] GB/T 18451.2—2003, 風(fēng)力發(fā)電機(jī)組功率特性試驗(yàn)[S]. 北京:中國(guó)標(biāo)準(zhǔn)出版社,2003.
[2] GB/T22516—2008,風(fēng)力發(fā)電機(jī)組噪聲測(cè)量方法[S]. 北京:中國(guó)標(biāo)準(zhǔn)出版社,2009.
[3] Excel Home. Excel 應(yīng)用大全[M]. 北京:人民郵電出版社, 2008.