PDF下载
激光雷达探测资料监控平台设计与实现

宋秀瑜1 王洪祥2 周龙1 刘亚男1 袁宁乐3 宋钰敏4

1大连市装备保障中心,2大连市气象信息中心,3,沈阳市气象局,4大连市气象局,辽宁大连,116001

摘要: 近年来,能见度的恶化问题日益受到人们的关注。能见度的好坏标志着大气质量的优劣,是空气质量的重要指标。LB201-D200偏振激光雷达是装备保障中心2018年11月引入的新型设备,在探测气溶胶的垂直分布特征方面具有优势,但目前所有的采集数据都直接上传国家局和省局,并未实现本地化应用。因此建立激光雷达本地化数据库,实现激光雷达数据的运行监控及故障警报,为后续激光雷达产品研发、应用奠定基础。对业务运行具有重要意义。
关键词: 激光雷达;监控平台;设计与实现
DOI:10.12721/ccn.2023.160432
基金资助:
文章地址:

引言

当前大连局正在进行气象现代化工作,装备保障中心的硬件也在不停的更新,相应的软件平台也继续优化和改进,借此之际,利用局内课题申报的契机,自主研发重要装备激光雷达的数据监控平台恰逢其时,本着“业务优化、提高效率、服务优先”的原则,积极对激光雷达数据进行研究,研发监控平台,及时存储雷达数据,同时做好数据解析和展示工作也是部门紧急需求。目前平台已经研发完毕,投入业务运行。

1平台系统简介

1.1主要内容

激光雷达探测资料监控平台的主要内容:首先基于Python脚本编写激光雷达数据解报程序,整理并获取激光雷达的观测质量数据,基于数据搭建大连装备中心的激光雷达本地化数据库,设计符合逻辑的表结构,通过Python Flask开发包含对激光雷达数据查询、统计、导出等功能的业务平台,同时实现激光雷达数据到报系统的实时运行监控,对业务运行出现数据采集传输等故障时能及时发出声音警报,让业务人员及时发现并处理报警情况。

技术难点和关键问题:

1) 整理激光雷达数据,编写激光雷达数据解报程序;

2)设计科学的激光雷达数据库关系表,建立激光雷达本地化数据库;

3)基于Python Flask技术搭建成果共享查询平台,实现网站建设;

4)实现激光雷达数据的运行监控及故障警报,为数据的及时上传提供保障;

5)开发激光雷达数据查询、统计、导出等功能;

6)利用相关解析算法,得出激光雷达产品后向散射系数,并实时显示。

1.2技术框架

整个平台为B/S架构,基于Python的Flask框架设计完成,设计分为前台和后台。前台主要利用LayUI进行界面设计搭建,后台利用Ajax提交请求来完成对数据的采集和查询工作。平台的数据主要是激光雷达的FTP传输实现数据搜集工作。平台利用Anaconda3的虚拟环境(base) D:\web_flask\songxiuyu>conda activate base来发布服务。前台主要分为标题栏,操作栏和显示栏,监控平台的系统框架如图1所示,本地MySQL数据库和Flask框架部署在内网服务器,通过Ajax网页显示模块分为历史展示、实时监控和系统配置三个模块进行分类显示。

8.png图1  监控平台框架结构图

2 数据处理

2.1 激光雷达数据解析

根据数据格式对数据进行读取,再对数据进行方位标定和背景去噪后,接着利用Fernald反演方法来解析激光雷达数据。

根据激光雷达方程,

7.png这里的激光雷达比和参考高度是未知量,此处取经验值50和12km。

2.2 平台数据库表设计

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,基本功能都能准确无误的给予数据支持。根据激光雷达解析值建立激光雷达监控表和后向反射系数表,通过合理的设计表字段和表关系,以便建立最优查询SQL语句。

(1)激光雷达到报监控表设计,建立jgradar配置表,该配置表包含激光雷达到报时间、应到数据个数、实到数据个数、数据缺测明细、监控入库时间等字段。实际情况是激光雷达会在整点01分至整点30分到报29个数据文件,每分钟1个数据文件,针对此情况设计监控表。

(2)激光雷达后向反射系数表设计,建立jgradarhxfs配置表,该配置表包含3个字段,主要是时间,距离和值。主要不同距离对应的值之间的关系表。

jgradar表主要字段如表1所示。

6.png2.3 Python监控脚本开发

    (1)监控脚本开发

    通过jiankong.py读取监控文件夹里激光雷达的个数并完成监控信息入库工作。脚本里主要依据激光雷达文件名来处理数据的,激光雷达的文件命名形如“RM2141300.023899”格式,RM是名头,“2141300”对应2021年4月13日00时,其中10月对应A,11月对应B,12月对应C。监控信息入库主要依靠一下代码实现:

ms = MSSQL(host='ip,user='root',pwd='password',db='dbname')

sql="select count(*) from jgradar where datetime = '" +instime.strftime("%Y-%m-%d %H:00:00") + "'"

aresult = ms.ExecQuery(sql)

if(aresult[0][0] == 0):

sqlin = "insert into jgradar (datetime,ydao,sdao,deil,intime) values('" + instime.strftime("%Y-%m-%d %H:00:00") + "','29','" + str(n) + "','" + qcf_list + "','" + instime.strftime("%Y-%m-%d %H:%M:%S") + "')"

ms.ExecNonQuery(sqlin)

else:

sqlup = "update jgradar set sdao = '" +  str(n)  + "',deil = '" + qcf_list + "' where datetime = '" + instime.strftime("%Y-%m-%d %H:00:00") + "'"

ms.ExecNonQuery(sqlup)

(2)入库脚本开发

通过以上Python脚本获取的数据监控信息通过SQL语句实时的入库到对应的数据表保存即可。入库之前需要及时判断数据库表中是否存在当前监控记录,若存在则更新,不存在插入即可。该操作利用Windows计划任务定时每日间隔5分钟启动对应Python脚本任务即可实现不间断数据监控任务,计划定时任务设置如图2所示。

5.png图2  Python脚本计划任务设置

3数据显示

基于Flask框架的网页显示结果主要通过Ajax技术获取数据以Json数据格式在前台绑定 bootstrapTable.js和Echarts.js分别显示,bootstrapTable主要以表格形式展示,echarts主要以图形形式展示。主要获取代码如下:

    $.ajax({

  <a href="url:\" {:u('home="" system="" "="">url:"{:U('Home/System/funtion')}",   //url对应后台操作函数

  type: "POST",

  cache: false,  

  success :function(data){

            //此处根据获取获取成功的data数据绑定相应的js控件显示即可

            …

}

3.1 激光雷达监控显示

激光雷达监控模块主要展示一天24小时激光雷达到报率情况,不同的到报率显示不同的颜色来展示提醒功能,同时配置了声音报警功能,如果确保情况及时通知值班业务人员。激光雷达实时缺报明细以表格形式展示,界面简单明了,能及时显示时次缺报情况,界面如图3所示。

4.png图3 激光雷达监控平台

3.2 激光雷达数据和图形显示

激光雷达的数据主要显示时间、时间对应的高度、高度观测值三个要素。由于激光雷达高度值多达1000个,导致界面显示加载速度慢,代码及时调整策略,根据日期来加载个例时间提高查询效率。图形分为日查询和个例查询,主要界面如图4、图5所示。

3.png4 结论

大连市激光雷达资料监控平台由装备中心业务人员自主研发,根据日常监控业务量身定做,为业务人员保障激光雷达数据提供保障,优化了工作流程,提高了工作效率。目前该监控平台已经业务值班中发挥了作用,后续会在此平台基础上增加大气成分产品的监控,为装备保障监控业务提供技术支撑。在功能增加基础上,继续完善代码和界面美化工作,为后续开发打下基础。

参考文献

[1]江崟,谭明艳,吴迪.深圳市气象监测综合业务平台的设计 与实现[J].广东气象,2010,32(3):57-59.

[2]李源鸿,敖振浪,李建勇,等.广东省地面气象综合探测全网 实时监控系统[J].广东气象,2007,29( 4):5-7.

[3]梁慎青,石小英,梁苑苑,等. 广东省气象信息实时监视系统 的开发及应用[J]. 广东气象,2009,31(1):57-59.

作者姓名:宋秀瑜(1992.04),女,汉族,辽宁省大连市人,硕士研究生,工程师,主要从事装备保障维护,气象观测等工作。