福建省气象数据收发策略可视化问题研究

2022-05-25 09:53魏夏潞余永城郑玉兰
中阿科技论坛(中英文) 2022年5期
关键词:绘图福建省气象

魏夏潞 余永城 郑玉兰 王 笑

(福建省气象信息中心,福建 福州 350000)

气象数据是描述大气状态和特征的气象科学数据,是与气象相关学科的研究基础。气象数据共14大类,分别为地面、高空、辐射、海洋、大气成分、卫星、雷达、数值预报产品、农业气象和生态气象、气象灾害、历代气候数据、科学试验和考察、气象服务产品以及其他资料。这些大类又可细分出约500个子类,并随着气象探测技术的发展,还在不断增加。

气象数据通过CTS通信系统进行传输。在通信系统中,传输配置是传输控制的基础,其定义了资料的来源、目的以及分发方式。主要包括收发策略、分发用户、分发主机、分发用户组等多种数据表。伴随着气象数据类型的增多,通信系统传输配置的内容不断增加,虽然增删修改都有记录可查,但在收发策略的配置中,需要展开目录树查找数据名称。不同的数据在不同的二级目录下,随着时间的推移,即使是业务管理员也无法完整描述业务的全貌和每类资料的流程,数据在系统中可能出现二次配置现象,这给业务管理和业务调整工作带来了难度。

为了解决传输流程不够直观这一问题,薛蕾等[1]于2014年通过分析每一项资料的收集分发配置,利用NetMiner可视化工具,将新一代国内气象通信系统的配置文件更换为可视化的网状结构图,描述了主机间的传输关系。乔文文等[4]在薛蕾的基础上进行改进,将新一代国内气象通信系统与CTS2.0新旧两版通信系统传输配置进行统一管理,利用Graphviz绘图软件完成适合广东省的数据传输流程的可视化。

目前,福建省气象数据传输流程的查看方式主要有数据库查询和网页查看。数据库查询需要链接数据库并熟悉SQL语言,查询结果并不直观。网页查看则需要打开多个页面,分别找到该数据的收发策略,分发主机是否启用,分发用户是否启用等,流程较多。对于分发主机,接收数据的种类也多种多样,这些设置都存在不同的收发策略中,查看一台主机接收了哪些数据同样十分烦琐。针对以上问题,本文利用Graphviz绘图软件包和Numpy等函数包对福建省气象数据传输流程进行可视化研究。

1 气象通信系统传输配置

气象通信系统实现文件传输需要经过收集初试数据、分发配置、分发到相应目的地这三个步骤。福建省的数据架构较为明确,图1为福建省气象通信传输架构图,图中数据来源主要有本省收集的各地市数据,省际共享数据,CMACast广播下发数据,国家局数据订阅下载和例如水利厅共享、海洋局预报等其他数据。这些数据收集后经过CTS2.0通信系统重复性校验、快速质控、文件名匹配等步骤,分发到相应的服务器。

图1 福建省气象通信传输架构图

这些配置依赖于气象通信系统的收发策略。CTS2.0通信系统的收发策略文件保存在MySQL 数据库:TS_FILE_SEND,TS_DIR_COL,TS_FILE_COL,TS_SEND_USER等表中。从这些表中可知数据从通信系统中分发的位置(SOURCE_DIR),通过文件名匹配策略(TEMPLATE_GROUP),经FTP、SFTP、HTTP等多种协议分发时需要用到用户名(USER)、密码 (PASSWORD),以及分发的目的地(ACCESS_URL)等多种信息。具体信息如表1所示。

表1 收发策略信息

2 传输流程可视化实现

2.1 工具

Graphviz (Graph Visualization Software) 绘图工具,由贝尔实验室开发,支持多种语言dot脚本绘制图形,并执行布局引擎来完成自动布局[6]。本研究采用Python语言进行编译,加载Graphviz 的 API 包PyGraphviz。

Numpy (Numerical Python) 矩阵工具,将所需数据以二维矩阵的形式展示。

Streamlit网页架构工具,可用于快速搭建Web应用。Streamlit是一款2019年完成的开源库,API友好,基于tornado框架,封装了大量互动组件,无须学习前端知识,同时支持markdown和html文本的渲染。

2.2 可视化实现

2.2.1 图片绘制

绘图数据需要连接数据库获取,使用pymysql函数包连接数据库,并用SQL搜索语句将不同表关联,相同要素匹配,最后导出所需数据。

因为一个数据传向一个用户就是一条信息,而一个数据会传向多个用户,所以需要将数据库中得到的关联表再处理,统计每类数据及其下属数据之间的对应关系,将分发目的主机作为最小单位,将收集目录和收集文件等相关信息冗余存储,形成关系型的一对一的数据表格[7]。以AGME资料为例,AGME其下包含产量预报产品、其他要素、农业干旱预报产品、农业气象情报业务产品、农业气象旬月报、农作物实景观测、农气年度数据、农田小气候观测、林果观测、生态与农业气象观测资料、秋收秋种预报产品(上传)和自动站土壤水分资料共12种数据,发往Yun、Cimiss_DPC、CMADAAS_DPC、DBLIB_A_BK、BABJ、DBLIB_A等用户,共57条配置信息,仅产量预报产品就拥有6条配置策略。将这些信息梳理分类,就得到源节点和目的节点之间的指向信息,表2为产量预报产品数据指向信息。

表2 产量预报产品数据指向信息

Graphviz画图构建组件为图、节点、边,用不同的属性例如形状、颜色、字体、大小等对其进行描述。通过加载梳理完成的数据指向信息,自上而下构建传输流程图。首先,定义一个图形。其次,将绘图框架定为三层结构,第一层数据源信息,包含源主机一级目录名、源主机二级文件名、文件名匹配模板和源主机文件地址。第二层为目标主机接收地址。第三层为分发用户和对应的密码。各层级之间使用线段连接,利用是否停止服务(IS_STOP_SERVER)和启用标志(RUN_FLAG)判断该资料是否传输,黑色实线表示正常传输,红色虚线表示传输未启用。最后,设置每一层的字体、颜色、形状等属性信息,添加图片说明。绘制完成后,导出图片。

2.2.2 表格绘制

为了解分发目的主机接收数据种类,本研究取出目的主机接收的文件种类,使用numpy包将其转换为n行5列的二维数组,方便用户查看。

2.2.3 可视化制作

网页版客户端具有扩展性好,使用方便,不需要安装的优势,无论是开发还是维护都只要更新服务器端的软件即可同步更新。

本研究利用开源API的Python库Streamlit构建可视化页面。网页侧边栏放置一级目录名和下属资料名,选取需要的资料后,绘图区域自动生成数据流程图。相比于目录树查找,本研究增加了搜索框,采用模糊匹配的方式搜索想要查找的资料名,能够列出所有包含搜索字段的资料名,操作人员可根据需要选取。

绘图区域下方放置目的主机接收资料查询框,该查询框也采用模糊查询的方式,只需输入部分主机IP,程序就会自动匹配完整IP,并列出该主机接收资料名称的表格。

整体程序设定一周重新读取数据库一次,避免出现更新不及时,信息滞后的情况,同时清空图片缓存,等下一次选择该数据时再重新出图,避免占用过多存储空间。

图片选取福建省产量预报产品数据为例,搜索“产量预报”,选取后生成的传输流程如图2所示。图2中,圆角矩形表示数据的源信息,即数据名称、文件名模板、出发点;椭圆形表示目的主机节点,包含目的主机IP、接收地址;便条包含的信息为分发目的主机用户名和密码,可以方便操作者了解一类资料的配置信息。从图中可以看出,产量预报产品共分发给6个用户,清晰展示了此资料传输脉络,且绘制时间短。

图2中隐去IP第2、3段,隐去分发目的主机密码。表格选取IP为10.*.*.14的目的主机,这台主机主要负责分发邻省数据到各台服务器,从图3中可以看出,10.*.*.14主机共接收了7种数据。

图2 利用Graphviz绘制的福建省产量预报产品传输流程示意图

图3 10.*.*.14主机接收数据种类示意图

目前,绘制传输流程图和显示主机接收数据种类表格功能已集成到CTS2.0综合运维系统。

3 结论

为了简单快速地查看福建省气象数据传输流程,直观方便地了解主机接收的数据,本研究将福建省省级气象通信业务的收发策略配置信息进行处理,利用Graphviz软件对气象流程绘图,Numpy对目的主机接收的文件种类建表,Streamlit完成网页可视化。结果表明,该设计可以有效得到数据传输流程图,对解决日益增长的数据管理需求,数据流程模糊不清等问题有重要帮助。并且,流程可视化后,运维人员也能精准地描述各类数据的业务流程,有助于准确分析和调整业务需求。

猜你喜欢
绘图福建省气象
来自河流的你
“禾下乘凉图”绘图人
气象树
《内蒙古气象》征稿简则
福建省“两会”上的“她”声音
第四届福建省启明儿童文学双年榜揭榜
垂涎三尺
大国气象
第三届福建省启明儿童文学双年榜揭榜
美丽的气象奇观