本站小编为你精心准备了气象站实时数据采集论文参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
1VantagePro气象站
VantagePro电子气象站是美国戴维斯公司(DavisInstrumentsCorp.)面向气象服务、面向移动服务的小型气象站[5]。体积小,重量轻,功耗小,集成度高,安装简单,长期工作稳定可靠。气象站由传感器单元(ISS)、显示控制器(CONSOLE)和记录器软件(WeatherLink)组成[6,7]。有线站传感器(ISS)上的信号由有线传送到显示控制器上,电缆线长度30米;无线站传感器(ISS)上的信号由无线传送到显示控制器上,距离大约200-300米。VantagePro也是目前国内外天文领域应用得较广的全自动气象站之一,在远程自主观测等方面应用较广。VantagePro可以测量空气温度、空气相对湿度、风向、风速、雨量、气压、太阳辐射和紫外辐射,组成8要素电子气象站。还可扩展对土壤温度、土壤湿度及叶面湿度等气象要素进行观测。与一般的气象站不同,VantagePro采用了所谓的一体化传感器单元(ISS),通过ISS接口板接收数据并转发至CONSOLE(显示控制器)或连接的计算机中,其中温湿度传感器在白色百叶式防辐射罩内,翻斗式雨量计的翻斗在雨量筒内。各传感器信号线均接入到ISS接口板中。ISS通过其外部所带太阳能板供电,盒内装有一块3伏锂电池,用于夜间及无日照时的供电[8]。CONSOLE显示控制器,用来在未连接计算机单独显示气象信息时的状态。但由于当前MUSER采用计算机实时采集,因此CONSOLE并不需要配置。
1.1通信协议VantagePro中数据传输和命令控制使用串行通信协议,即RS232C串口通讯协议标准。RS232C串口通信协议的包含,8个数据位,1个起始位,1个停止位,无奇偶校验位。通信协议中的波特率设置为4800比特。用RS232C串口通信协议中的DB9(9针D型串口)。VantagePro的串行端口的命令格式可以表示为下面的格式:<参数名称—十进制数字><参数名称—十六进制数字><参数名称—二进制数字>这三种格式。十进制和十六进制数字可以用ASCII替换。二进制数字发送字符值。每个命令之后都要紧跟着一个换行符(\n)。
1.2数据格式VantagePro通过串口获取气象数据,实际传送的气象数据为99个字节的数据包,如表1所示,从1-99对数据包编号,提取的数据用括号给出了注释,括号中逗号之前的内容表示字段含义,逗号之后的内容表示测量值的单位。数据包的具体格式如表1所示。
2实时气象数据拆分与归档
在MUSER的应用中,将各个ISS采集的气象因子数据直接通过RS232C串口通信协议将采集的数据传到操作系统为LINUX的计算机,通过该接收机器上的数据请求与拆分程序将RS232C传送的气象因子数据包实时拆分出需要的气象因子并归档到MySQL数据库和Redis高速缓存中。同时数据合并程序自动合并同价值的数据,将最新的数据存到Redis中。系统整体结构如图1所示。
2.1初始化串口数据的接收和归档以驻留程序方式运行在服务器上,图2显示了实时气象数据拆分与处理的初始化流程。气象因子的记录器对象主要暂时存储拆分处理后的气象数据,气象因子读取器对象负责读取数据包中记录的特定气象因子的测量值。由于VantagePro气象站测量的气象因子的值与要归档值的单位不一致,因此也需要气象因子的修正器对象来对测量的原始值进行修正。
2.2数据的拆分与处理系统的初始化后,采集程序定时从串口接收数据,首先获得采集时间并转换为1970年到现在的秒数,并向VantagePro请求一个数据包,接着就是处理收到的气象数据包。PC上实时气象数据的拆分与处理的流程如图3所示。图3中的时间秒数的定义为从1970年1月1日0时0分0秒到此时的秒数。相邻的两个时间秒数之间相差60秒,即1分钟。数据的采样周期也是1分钟。时间秒数用来唯一表示气象因子的采集时间或采样时间,同时也作为Redis存储中可分类的集合中Score的值。
2.3气象数据的存储将采集的气象数据保存到MySQL数据库中,同时为了提高查询速度,使用Redis作为高速缓存。MySQL数据库中数据表的定义如表2所示。Redis是一个Key-Value存储系统[10]。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。Redis的功能可以理解为一个Key-Value的数据结构操作,数据都保存在内存中定期刷新到磁盘,以及提高的读写效率。Redis数据库通过两种方式可以实现数据持久化:使用快照的方式将内存中的数据不断写入磁盘和将操作记录记录在磁盘文件中。因为需要在Redis执行范围查询,我们使用有序集合SortedSets存储气象数据,集合结构中使用时间秒数作为score,气象数据的实际值为其value值。而Key的值为气象的统计因子,如温度(temperature)、湿度(humidity)等。比如将2015年1月29日16时26分05秒采集的温度的值17℃存储到Redis的命令为:redis127.0.0.1:6379>zaddiss.temperature142252110017。
2.4拆分存储实例在如下的气象数据拆分与归档的例子中,以测量室外温度的传感器iss.temperature为例。其它气象因子数据的拆分与归档和气象因子(室外温度)的处理情况类似。步骤如下:1)开始采样时间为2015年1月29日16时26分05秒,将该时间转换成1970年以来的时间秒数,为1422521100。2)向VantagePro发送命令‖LOOP1‖命令,请求一个99字节的数据包。接收端到气象站响应的数据包,数据包的内容如图5所示。3)传感器iss.temperature的读取器从数据包中偏移量为12的位置读取2个字节,其十六进制值为001d。读取器对象将001d转换成十进制的29。4)传感器iss.temperature的修正器将传感器的29F修正为2.900000F,然后再将2.900000F转换成-16.166667℃。(温度传感器记录的测量值是实际测量值的10倍,其它值的倍数详见表1)5)传感器iss.temperature的记录器将-16.166667℃更新到记录器对象中。6)将传感器的值归档到MySQL和Redis中。7)更新下一次采用时间,循环步骤1-7。
3气象数据合并与快速检索
3.1气象数据的合并一般情况下将采集到的气象数据处理成特定格式后直接追加到数据库中,然而随着时间的积累,数据库中的记录数会急剧增加。相应地检索某一个时间段的天气状态所需的时间也会增加,不能满足MUSER的高效数据处理的要求。由于连续时间段的天气状态可能相同。例如在2014-6-610:00:00到2014-6-610:00:59这一分钟采集到的天气状态为晴天,而在接下来的59分钟的时间内采集到的天气状态都为晴天。通常情况下是将这60条记录全部存储到数据库中,然而改进的归档方法是合并这60条记录为一条记录。当检索落在这一合并后的时间段天气状态时,仍然可以检索到要检索时间段的天气状态为晴天,这样做和从60条记录中检索到的天气状态一样都是晴天,保证了合并后的数据仍然是有效的。如果一天要归档的所有采集到的天气状态都一样,那么采用合并方法,数据库中存储一条记录就可以记录这一天的天气状态。但是如果采用传统的数据归档方式,记录一天的天气状态就需要24*60条记录,这样不仅浪费了存储空间,同时影响到检索效率。
3.2快速检索数据合并一定程度上可以加快检索速度,但对于具体值的气象采集因子,如需要在每个UVFITS文件中存储的温度,湿度值,是无法采用数据合并的,数据量仍非常大。为了进一步提高查询速度,使用Redis作为高速缓存。数据查询时首先访问Redis,只有当Redis访问失败时或者在Redis中找不到数据时才访问MySQL,并将从MySQL获得的数据更新到Redis中。MUSER中最常用的气象数据查询模式是根据观察时间查询气象数据,因此使用有序集合SortedSet,SortedSet是Set的一个升级版本,它在Set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的MySQL表,一列存储具体的值,一列存顺序,也就是气象数据的时间。操作中key理解为zset的名字。查询时根据观察时间和气象因子可以获得该时刻的具体气象数据。比如查询时间2015年1月29日16时26分05秒的温度的值,首先将该时间转换成1970年以来的时间秒数,为1422521100,在Redis上执行如下查询命令:redis127.0.0.1:6379>zrangebyscoretemperature1422521100+infLIMIT01这条命令的意思是在键值为temperature的SortedSets中查找大于时间点1422521100的第一个值。+inf在Redis中表示正无穷大。
4结论
本文首先介绍了MUSER项目的基本情况,并对MUSER项目中气象条件的可能应用场景和气象条件对观测数据有效性可能造成的影响进行了论述;简要地介绍了VantagePro气象站的基本工作原理,数据交换格式以及串行通信协议。设计并实现了气象数据的实时采集数据归档,合并和快速索引方法。本文介绍的VantagePro气象站的气象数据采集,存储及快速查询的优化方法对MUSER观测数据的处理有重要的支撑作用,同时也可应用于望远镜选址中的气象条件的自动监测。本文虽然提到了气象数据的合并方法,但是具体的气象条件状态值的确定是需要统计分析气象数据对MUSER观测数据的影响后得出。因此未来我们将进行大量统计分析以评估气象数据对MUSER观测数据的可能影响,并完善归并方法。
作者:卫守林 石聪明高姣姣王锋邓辉季凯帆单位:中国科学院云南天文台昆明理工大学云南省计算机技术应用重点实验室