气象数据测试现场快速处理方法
2013-04-29霍健陈晨
霍健,陈晨
(北京鉴衡认证中心,北京 100013)
0 引言
在测试现场,很多时候需要对气象数据进行简单分析,如风况统计、计算分钟平均、图表显示等。通过对气象数据的分析,初步判断气象数据是否满足测试标准[1-2]中的数据量要求。如果采用数据库、Matlab等数据处理软件,未免“大材小用”。且对于win7操作系统的笔记本来讲,安装数据库等软件略显麻烦,实际应用也要看笔记本的性能。
1 技术途径
通常的方法是用LoggerNet软件自带View工具直接打开气象文件,此工具只能查看原始数据记录及简单的曲线图,要想对指定区间内的数据进行查看、统计等工作就“无能为力”了。而且打开几百兆以上的文件需要时间很长,且含有不在需要分析时间段的数据。此工具对数据导出的支持也不理想,在数据处理过程中,既浪费时间又容易出错。其实,只用Office自带的Excel就能满足这些需求。本文主要论述Excel中VBA[3]处理气象数据方法。
以Excel2007为例,每个工作表最大行数是1048576,最大列数是16384,与数据处理相关的主要是行数,以1Hz气象数据采样为例,一个工作表至多能储存12天的数据。
2 气象数据测试现场处理
在气象数据处理中,主要工作分原始数据导入及数据处理两部分。
2.1 原始数据导入
在工作目录中新建一个Excel,如“气象数据.xlsx”,打开Excel,点击菜单中的“视图”→“宏”→“查看宏”,在弹出的窗口中输入宏名,点击“创建”。
2.2 数据统计分析处理
当原始数据导入后,接着就可以做数据分析处理。如计算平均,有两种方式,一种是应用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 实时风速平均曲线图
3 结论
利用Excel中的VBA还可以实现很多既直观又实用的功能,其小巧灵便的特点对快速处理气象数据非常适用。把VBA程序模块化、功能化、集成化后,就可以完全实现利用程序自动处理分析气象数据。
[1] GB/T 18451.2—2003, 风力发电机组功率特性试验[S]. 北京:中国标准出版社,2003.
[2] GB/T22516—2008,风力发电机组噪声测量方法[S]. 北京:中国标准出版社,2009.
[3] Excel Home. Excel 应用大全[M]. 北京:人民邮电出版社, 2008.