霍健,陳晨
(北京鑒衡認證中心,北京 100013)
在測試現場,很多時候需要對氣象數據進行簡單分析,如風況統計、計算分鐘平均、圖表顯示等。通過對氣象數據的分析,初步判斷氣象數據是否滿足測試標準[1-2]中的數據量要求。如果采用數據庫、Matlab等數據處理軟件,未免“大材小用”。且對于win7操作系統的筆記本來講,安裝數據庫等軟件略顯麻煩,實際應用也要看筆記本的性能。
通常的方法是用LoggerNet軟件自帶View工具直接打開氣象文件,此工具只能查看原始數據記錄及簡單的曲線圖,要想對指定區間內的數據進行查看、統計等工作就“無能為力”了。而且打開幾百兆以上的文件需要時間很長,且含有不在需要分析時間段的數據。此工具對數據導出的支持也不理想,在數據處理過程中,既浪費時間又容易出錯。其實,只用Office自帶的Excel就能滿足這些需求。本文主要論述Excel中VBA[3]處理氣象數據方法。
以Excel2007為例,每個工作表最大行數是1048576,最大列數是16384,與數據處理相關的主要是行數,以1Hz氣象數據采樣為例,一個工作表至多能儲存12天的數據。
在氣象數據處理中,主要工作分原始數據導入及數據處理兩部分。
在工作目錄中新建一個Excel,如“氣象數據.xlsx”,打開Excel,點擊菜單中的“視圖”→“宏”→“查看宏”,在彈出的窗口中輸入宏名,點擊“創建”。




當原始數據導入后,接著就可以做數據分析處理。如計算平均,有兩種方式,一種是應用VBA自帶公式,另一種是用VBA程序運算。
VBA自帶公式:

通過VBA處理后的數據直觀整潔,如表1所示。

表1 一分鐘風速平均
VBA還可以實現自動生成曲線圖,主要代碼如下:

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 = "風 速 m/s"
…
生成的曲線圖型如圖1所示。

圖1 實時風速平均曲線圖
利用Excel中的VBA還可以實現很多既直觀又實用的功能,其小巧靈便的特點對快速處理氣象數據非常適用。把VBA程序模塊化、功能化、集成化后,就可以完全實現利用程序自動處理分析氣象數據。
[1] GB/T 18451.2—2003, 風力發電機組功率特性試驗[S]. 北京:中國標準出版社,2003.
[2] GB/T22516—2008,風力發電機組噪聲測量方法[S]. 北京:中國標準出版社,2009.
[3] Excel Home. Excel 應用大全[M]. 北京:人民郵電出版社, 2008.