1、为满足我国综合气象观测系统运行监控和技术保障需求,2008 年中国气象局气象探测中心搭建了综合气象观测系统运行监控平台(ASOM)1。为实现综合观测业务集约化发展及建成信息化的装备保障业务需求,2021年 1月 1日综合气象观测业务运行信息化平台(也称为“天元”系统)在全国正式业务运行。装备维护维修模块是“天元”系统的重要子系统,虽然该子系统解决了全国范围的气象设备的日常维护、故障维修、年度巡检等信息的实时收集和快速处理问题,但缺乏在设备发生故障后提醒业务人员及时填报维修单的功能。根据省质量管理体系要求,各市县所属常规气象观测站设备发生故障后,应在规定时限内完成故障信息填报和修复故障。因此,以
2、“天元”系统为基础,加强对自动气象站实时监控以及维修实效性告警,是省级探测中心急需解决的问题。周青等对 20072008 年全国 2 400 多套国家级自动站故障信息和维修数据进行统计分析,提出了评估自动气象站保障能力的自动化与标准化方法2。李建宇等对湖南省 20082015年国家级自动气象站故障实例进行统计分析,总结出自动站故障现象与原因之间的规DOI:10.16652/j.issn.1004373x.2023.18.025引用格式:吕善行,景坤.基于Python+PyEcharts的“天元”平台维修单可视化系统J.现代电子技术,2023,46(18):147151.基于Python+PyE
3、charts的“天元”平台维修单可视化系统吕善行,景 坤(广西壮族自治区气象技术装备中心,广西 南宁 530022)摘 要:为加强“天元”平台各类设备维修信息填报实效性监督,掌握常规气象观测站故障分布及发生规律,设计一种维修单监控和可视化系统。系统后端借助Python强大的数据获取处理技术,实现“天元”平台常规气象观测站维修单接口数据的自动采集、清洗、整理及分析工作;前端运用HTML、CSS、JavaScript,并结合PyEcharts数据可视化组件,实现数据的可视化及展示。系统监控功能实现故障站点维修单是否填报及维修时效监控,能够进一步提高气象装备保障自动化能力;可视化功能实现维修数据的统
4、计分析和可视化展示,为省级业务员制定科学的维修、选型和采购方案提供决策辅助。关键词:天元系统;维修单;Python;PyEcharts;数据可视化;气象观测站中图分类号:TN931+.334;TP311.5 文献标识码:A 文章编号:1004373X(2023)18014705Tianyuan platform repair order visualization system based on Python+PyEchartsL Shanxing,JING Kun(Guangxi Meteorological Technical Equipment Center,Nanning 530022
5、,China)Abstract:In order to strengthen the monitoring of the effectiveness of filling in maintenance information for various equipment on the Tianyuan platform,and grasp the distribution and occurrence patterns of faults at conventional meteorological observation stations in the province,a repair or
6、der monitoring and visualization system is designed.In the backend of the system,the powerful data acquisition and processing technology of Python is used to realize the automatic collection,cleaning,organization,and analysis of interface data of repair order for conventional meteorological observat
7、ion stations on the Tianyuan platform.In the frontend of the system,HTML,CSS and JavaScript are used to realize the data visualization and display by combing with PyEcharts data visualization component.The system monitoring function realizes whether to fill out maintenance orders for faulty sites an
8、d monitor maintenance efficiency,further improving the automation capability of meteorological equipment support.The visualization function can realize the statistical analysis and visual display of maintenance data,which provides decisionmaking assistance for provinciallevel business personnel to d
9、evelop scientific maintenance,selection,and procurement plans.Keywords:Tianyuan system;repair order;Python;PyEcharts;data visualization;meteorological observation station收稿日期:20230609 修回日期:20230723147147现代电子技术2023年第46卷律3。“天元”系统在本地化应用过程中,为了解本省常规气象观测站故障发生原因及规律,省级业务员需要统计常规气象观测站各分系统故障分布情况,以及不同地市保障水平4,现有
10、装备维护维修子系统的统计功能只能以表格和柱状图形式呈现,如果增加数据的表现形式,则业务员更容易发现故障发生的原因和规律,提前做好维护维修。目前,数据可视化作为大数据分析最后且最重要的一环,所谓“一图胜千言”,当数据以生动的可视化图表形式展示出来时,分析人员往往能够便捷地洞察到隐藏在数据背后的有效信息,并据此做出相应决策5。Python 语言因具有免费、开源、可扩展性强及带有丰富的计算库等优势,逐步成为市场主流的计算机编程语言之一6。PyEcharts是用于生成 Echarts图表的 JS类库7,Echarts最初是百度公司开发的一种基于JS的数据可视化库,具有良好的交互性以及精巧的图表设计等优
11、势8。基于此,本文设计一种基于 Python+PyEcharts 的维修单监控及数据可视化系统。系统应用 Python语言访问运行监控及维护维修接口,获取设备运行状态及维修单信息,实现自动化维修单填报监控功能及本地化统计功能;再结合 PyEcharts模块,实现维修单统计数据的图表展示,从而提高省级探测中心对自动气象站设备维修及时监控的能力,帮助了解设备故障分布情况及发生规律,提升自动化保障水平。1 总体设计基于Python+PyEcharts的维修单监控及数据可视化系统从功能上可分为维修单监控模块和维修单可视化模块。系统借助 Python强大的数据采集功能和分析处理技术9,实现从“天元”平台
12、接口获取常规气象观测站运行时序图状态信息、停机单、维修单数据。数据经过采集、清洗、整理后存入Excel表,前端采用CSS+HTML+JavaScript 的开发框架10,应用 PyEcharts 库将数据转化为丰富的可视化图表后展示在网页上,实现数据交互。1.1 维修单监控模块维修单监控模块由维修单和停机单接口数据读取、故障站点筛选、维修日志与监控日志对比三个程序组成,如图1所示。1)程序repairlist.py访问维修单、停机单接口,接口为 JSON格式数据,每条数据均包含“天元”系统内所有维修活动信息,从接口中读取站号、站名、市、县、维修开始时间、维修结束时间、停机开始时间数据,并存入“
13、维修单.xlsx”和“停机单.xlsx”两个 Excel 表格中;程序monitorlog.py访问常规气象观测站运行时序图接口,计算并筛选出过去 3天曾出现过连续 3 h数据缺测站点,将故障站点按站号、站名、故障开始时间、故障结束时间顺序存入“监控日志.xlsx”表中。图1 维修单监控模块2)根据中国气象局综合观测司要求,常规气象观测站维修时限应为36 h。因此,程序repairlist.py通过计算维修结束时间与开始时间差值,将维修持续时间大于12 h 且小于 24 h 的站点信息标记为蓝色,大于(等于)24 h 小于 36 h 标记为黄色,大于(等于)36 h 标记为红色,并生成“维修单
14、(标记).xlsx”表,如图2所示。图2 维修单(标记)3)程序 repair_list_monitor.py首先将每天故障站点表进行两两对比,筛选出重复站点,从而统计出“今天故障站点”“连续2天故障站点”“连续3天故障站点”“昨天故障今天正常站点”4张表格,如图 3所示(灰色框);接着将4张表格分别与“维修单”进行重复项比较,从而筛选出发生故障并且已经在“天元”系统填报和未填报维修单、停机单的站点,再对已填报维修单站点进行标记,最终生成“监控日志(标记).xlsx”,如图3所示。1.2 维修单可视化模块维修单可视化模块由维修单接口数据读取、数据可视化两个程序组成,如图4所示。1)repair
15、list.py 通过访问维修单接口,获取业务人员所选任意时间段内所有常规气象观测站或国家级地148第18期面气象观测站维修单信息,信息包含站名、站号、市、县、维修开始时间、维修结束时间、设备型号、分系统等,并存入“维修单.xlsx”。由于维修单接口规定一次访问只能读取200条数据,因此程序采用按月存取的方式进行读取,即假设业务员选取统计时段为 1 月 1 日2 月15日,程序在第1次访问接口时首先读取1月1日31日数据,并存入“维修单.xlsx”中的“sheet1”表中;接着第2 次访问接口读取2月1日15日数据,并存入“sheet2”表中;最后将“shee1”与“sheet2”表合并,生成一
16、张总表。图3 监控日志(标记)图4 维修单可视化模块2)Visualization.py 主要由数据整理和数据可视化两个函数组成。Pandas是基于 Python的第三方数据分析库,它提供了许多高性能的数据处理函数与方法,比如常见的分组、排序、计数、汇总、方差、合并以及自定义函数等,用于数据挖掘和分析1112。数据整理函数通过调用 Pandas 库对维修单表格数据进行统计和分类,并将数据处理成可视化函数所需格式。Echarts 是一个用 JavaScript所编写的可视化工具,它能够将编写的图表运行在 PC端,并且兼容目前绝大部 分 浏 览 器,比 如 Chrome、Edge 等。PyEcha
17、rts 是 将Python 和 Echarts 结合在一起的第三方库,通过使用Python 语言将 Echarts 各类图表如柱状图、饼图、折线图、热力图、玫瑰图等进行封装,再通过渲染机制生成一个包含 JS代码的 HTML文件13。Visualization.py内的数据可视化函数通过调用 PyEcharts 库,对经过处理后的维修单数据进行可视化展示。调用 PyEcharts库内的Line()、bar()、Pie()函数绘制折线图、柱状图和饼图;调用Timeline()函数,以时间作为唯一变量,一个时间点绘制一张可视化图表,把全部的可视化图表逐帧连接起来,形成时间线轮播图;调用Tab()函数
18、,每张tab选项卡控制多个图表,实现图表之间的切换功能。最后,通过调用PyEcharts库内的render()函数,将各类图表渲染到html网页上。2 系统应用2.1 维修单监控模块维修单监控模块实现了对故障站点是否及时填报维修单以及台站维修时限的监控,省级业务员通过表格内容和提示,能够及时发现并通知台站即将超过维修时限的站点,从而保证设备稳定运行率。2022 年 8 月 23 日26 日,广西处于重大气象灾害(台风)应急响应工作状态时期,本文选取了8月25日27日台风“马鞍”登陆广西前后时间段内维修单数据来检验系统监控效果。监控模块自动生成监控日志(标记),如图 5所示,统计内容有今天故障站
19、点(27日)、连续 2 天故障站点(26 日27 日)、连续 3 天故障站点(25 日27 日)、昨日故障今天正常站点(26 日故障,27 日正常)。根据质量管理体系作业指导书要求,台站应在故障发生后 3 h 内填报维修单,从图中可见,系统监控到 26 日27 日连续 2 天都出现数据缺测的站点,以及对应站点是否在“天元”系统内填报维修单或停机单,若填报,则监控模块会将该站点进行可视化标记。同时,图中只有 1 个台站对故障站点进行了维修单填报,其余站点均未按规范要求进行填报。图5 2022年8月25日27日监控日志(标记)图 6 为 8 月 25 日27 日维修持续时间监控表(标记),可见监控
20、模块对于维修持续时间超过 24 h的活动会标记黄色,超过 36 h的会标记红色,达到提醒省级业务员即将超过维修时限或已超过维修时限的站点,尽快通知台站进行维护维修的目的。吕善行,等:基于Python+PyEcharts的“天元”平台维修单可视化系统149现代电子技术2023年第46卷图6 2022年8月25日27日维修单(标记)2.2 维修单可视化模块维修单可视化模块能够统计任意时刻的维修单数据,并将数据通过曲线图、柱状图、饼图的形式展示在html网页上,可通过交互方式了解不同时段的维修统计情况。本文设置2022010120230101时间段可视化模块访问维修单接口并统计出该时段内数据,形成的
21、维修单表格见图 7,生成的维修单可视化网页见图 8。图7 2022年1月1日2023年1月1日维修单统计表(部分截图)图8 2022年维修单可视化页面1)每月故障数量。根据维修单表中维修开始时间,统计出每个月故障数量,并通过折线图方式展示数据的变化趋势,如图 9 所示。根据广西 2022 年气候总结,在1月末至2月出现2009年以来同期最严重低温雨雪冰冻天气,5 月 21 日至 6 月 21 日遭遇 1951 年以来最强(龙舟水)。由图可见,曲线分别在灾害发生对应月份1月和5月都出现了峰值点,可见暴雨、低温雨雪天气容易导致自动站出现故障;7月下旬至 8月初出现历史第三强高温过程,此时曲线在对应
22、月份呈现低谷值,说明高温晴热天气时,太阳能供电充足,天气稳定,自动站运行相对稳定。2)各类设备每月故障数量。根据维修开始时间和设备型号数据,可以统计出各类型设备每月故障数量,图10所示为柱形图展示。通过对比可了解不同设备的故 障 率。广 西 现 有 常 规 气 象 观 测 站 主 要 由 DZZ5、DZZ4、HYAM、DSD14、CAWS100 这 5 类型号构成,由图 10 可见,DZZ5 和 DSD14 型号的自动站故障率较高,而DZZ4型号的自动站运行较稳定。图9 每月故障数量注:每月为一组,柱形图型号由左至右依次为 DZZ5、DZZ4、CAWS100、HYAM、DSD14。图10 各类
23、设备每月故障数量3)故障系统和故障持续时间分布情况。根据分系统、故障开始时间和结束时间数据,可以统计出故障系统分布情况以及故障持续时间,并通过饼图方式展示,分别如图 11、图 12 所示。由图 11 可见,自动站故障主要以供电系统故障、传感器故障和通信系统故障为主;由图 12可见,6 h内故障修复率达 63.43%,有 89.52%的维修活动满足观测司对于36 h的维修时限要求。图11 故障系统分布4)每月故障系统分布情况。通过分系统和维修开始时间数据,可以统计出每月分系统故障情况,并通过时间轮播图功能实现每月数据的展示,如图13所示。由图13a)中1月故障系统分布可见,1月份由于寒冷阴雨天居
24、多,太阳能电池板难以获取太阳能,无法持续为系统供电,因此该月故障多为供电系统故障。6月故障系统分布如图 13b)所示,由于持续性暴雨天气居多,强对流天气容易造成传感器出现损坏或短路现象,因此该150第18期月故障多为传感器故障。图12 故障持续时间分布图13 每月故障系统分布5)不同年份维修单可视化。可视化模块设置2021010120230101 时间段获取两年维修单数据,分别形成 2021、2022年维修单可视化网页,并通过选项卡功能实现每年数据在同一网页之间切换。如图 14所示,通过点击网页上方年份选项卡“2021”,可查看 2021 年的维修单统计情况。图14 2021年维修单可视化页面
25、3 结 论基于Python+PyEcharts的维修单监控和可视化系统利用 Python强大的数据处理能力及 PyEcharts丰富的数据可视化图表功能,实现了“天元”平台维修单数据的自动获取、整理及展示,直观、清晰、有效地展示了维修单数据背后的信息;结合 CSS+HTML+JavaScript的开发框架,使系统具有可交互性,根据业务需求,可实现图表增加、删除、扩展和实时变化等功能。对2022年维修单数据进行可视化分析,便于业务员了解不同设备的稳定性、故障系统与天气系统之间的关系、全省维修能力情况等,为新设备的选型、采购提供依据。为严格规范维护维修活动,后续研究还需加强对故障站点上报实效性的监
26、控,提高省级自动化监控水平,缩短设备的维修时间,提高综合气象观测系统的效益。参考文献1 裴翀,宋连春,吴可军,等.我国综合气象观测运行监控系统的设计与实践J.气象,2011,37(2):213218.2 周青,梁海河,李雁,等.自动气象站维修保障能力评估J.气象科技,2012,40(3):349353.3 李建宇,常硕,王建波,等.湖南省自动气象站故障统计分析J.气象水文海洋仪器,2020,37(4):111114.4 郑炜潭.2019年金华市区域自动气象站的故障统计与分析J.南方农机,2020,51(7):239.5 孙睿阳,方信昀.基于 PyEcharts的计量测试数据可视化初探J.中国计
27、量,2021(3):111115.6 CAO S J,ZENG Y H,YANG S R,et al.Research on Python data visualization technology J.Journal of physics:conference series,2021(1):2425.7 贾利娟,刘娟,王健,等.基于 PyEcharts的全球玉米贸易数据可视化系统建设及应用展望J.农业展望,2019,15(3):4654.8 王竟俨,侯彦东.基于 PyEcharts的第三次农业普查数据可视化分析J.河南科学,2021,39(4):517523.9 胡前防,连鹏伟,陈乾坤.Py
28、thon在统计数据处理中的应用J.市场研究,2019(8):3335.10 刘伟锋,程光,李沛霖,等.基于PyEcharts的尾气排放数据可视化监控平台构建及应用分析J.现代制造工程,2021(6):4650.11 吴圭亮,曾俊,刘玥.基于 Python的高校课表转换方法J.信息与电脑(理论版),2021,33(20):5457.12 丁宇,李瑞祥.利用 Pandas的数据清洗功能来提取宽带用户的相关信息J.网络安全和信息化,2021(9):9496.13 刘艳玲,姚建盛.Python在数据可视化中的应用J.福建电脑,2020,36(3):6870.作者简介:吕善行(1994),男,壮族,广西崇左人,硕士研究生,助理工程师,研究方向为气象装备保障。景 坤(1993),男,四川乐山人,助理工程师,研究方向为气象数据分析与处理。吕善行,等:基于Python+PyEcharts的“天元”平台维修单可视化系统151