哈尔滨工程大学 刘佳 丛建伟 李泽锋
将海量的枯燥数据通过技术手段以人眼易于识别的图像、图形和图表形式呈现出来并动态更新,更直观地帮助人们理解数据中隐藏的信息,是数据可视化的重要研究和发展方向。文章首先介绍了数据可视化的相关知识和工具,然后以哈尔滨工程大学为例,对建立学校数据可视化环境、建设“疫情防控”数据驾驶舱以及支持学校开展科学精准疫情防控工作的做法和经验进行了介绍和总结,以期为其他高校提供有意义的参考。
如今,大数据和人工智能蓬勃发展,已成为各行各业的热门话题。海量的数据及复杂的数据关系为数据分析和利用带来了巨大的挑战,如何将海量的枯燥数据通过技术手段以人眼易于识别的图像、图形和图表形式呈现出来并动态更新,更直观地帮助人们理解数据中隐藏的信息,成为重要的研究方向[1]。
数据可视化是运用和谐的色彩、平衡的视觉元素和一些集中注意力的特性,以图像、图形和图表的形式多纬度地呈现数据细节的、趋势的信息。数据可视化,一半是艺术一半是科学,把握艺术性的同时要有科学性,保证科学性的同时也不能缺乏艺术性。数据可视化最首要的任务是准确地传递数据的信息,不能误导和歪曲数据本来的含义;另外,数据可视化应当是美观的,能够强化数据信息的表达[2]。
三维医学数据可视化已经成为数字医学领域的重要研究方向之一[3]。三维数字医学模型可以展示人体器官更加清晰的三维形态以及复杂的空间组织结构,可以帮助医生做出更加准确的判断,目前已被广泛应用于医学影像诊断和分析、手术规划与导航、CT 仿真、PET 诊断、放射医学诊断和虚拟内窥镜成像技术等方面。
气象数据可视化在气象科学研究领域和天气预报业务中发挥着重要的支撑作用[4]。巨型台风、龙卷风、大范围的干旱和洪涝、水循环等的观测和预报预警已成为现实,而且,更深、更广、更专业的气象知识如地形雨、冷暖锋、厄尔尼诺、下击暴流等,也正在走进公众的视线,对气象数据可视化提出了更高的要求。
数据可视化正在强力推动工程建设技术和管理的重大变革。数据可视化应用于海上风电工程,可监测风机的状态和进行设备远程巡检,能够很好地解决施工难度大、运维成本高的问题[5];应用于流体力学工程,通过实时模拟三维管网内的流体运动,可有效地帮助人们监测管网内的物质运输状态,以及在防灾避险时(如巷道、轨道突水)指导人们及时规避风险[6]。
目前市面上的数据可视化工具众多,根据不同的标准可以划分为不同的类别,从软件和编程工具两方面可以进行如下划分[1,7]。
3.1.1 三维图像类
三维图像类可视化软件侧重于利用计算机图形学将复杂的科学概念或结果以三维视觉图像的形式呈现出来,如医学图像领域的3D Slicer、地理信息领域的ArcGIS 等。
3.1.2 图形图表类
图形图表类可视化软件侧重于利用二维图形、图表的形式呈现数据的统计分析结果、规律和变化趋势,如办公软件Microsoft Excel、商业智能软件PandaBI 等。
3.2.1 JavaScript 语言
JavaScript 是一种基于对象、事件驱动的客户端脚本语言,在Web 开发中广泛使用。Chart.js、D3.js 和Chartist.js 都是比较好用的JavaScript 图形图表库,用户在项目中导入后即可根据需要创建各种样式的图形图表。
3.2.2 Python 语言
Python 是近年来比较流行的面向对象脚本语言,广泛应用于可视化编程、人工智能等计算机科学领域。进行数据分析必要的Python 类库主要有Pandas、Geopandas、SQLite3、Numpy 和Matplotlib 等[8],支持数据库访问、数据处理和图像处理。
为快速落实国家疫情防控政策、实现科学精准疫情防控[9],最大化降低疫情对学校教学和科研等活动的影响,学校信息化部门基于数据可视化平台建设上线了“疫情防控”数据驾驶舱,为学校疫情防控工作的有序有效开展和资源精准投入提供了重要的依据和保障。
疫情防控-数据分析预警情况页面如图1 所示。
我校的疫情防控数据可视化工作,实际上是综合考虑学校的疫情防控需求、信息系统和数据资源情况、技术支撑能力以及本地疫情形势等多方面的因素,采取了分两步走的策略:第一步,先进行疫情相关原始数据的治理,通过SQL 程序查询提供所需的结果数据,确保能够实现应急响应疫情防控;第二步,以第一步治理后规范的疫情相关数据为基础进行多纬度统计分析,通过数据可视化平台以图形、图表的形式呈现,实现常态化疫情防控。
疫情防控数据可视化技术架构如图2 所示。
图2 疫情防控数据可视化技术架构Fig.2 Data visualization technology architecture for epidemic prevention and control
4.2.1 选择合适的数据可视化工具
数据可视化工具承担对学校各类数据的可视化呈现任务,基于数据可视化工具开发的数据图形图表和组合而成的数据大屏对于发掘数据价值、发现潜在问题、优化管理流程、快速响应决策等学校业务的开展具有重要的意义。我校对于数据可视化工具(以下称“平台”)的需求主要包括以下几个方面:
(1)支持多种类型的数据源;
(2)自动化程度高,操作便捷;
(3)可根据需要任意添加多种类型的图形图表组件和数据大屏;
(4)支持配置多表关联进行数据分析和呈现;
(5)支持图表数据下载为Excel 文件;
(6)支持自定义图形图表,如开源的EChart 图表代码;
(6)可将数据大屏发布为公开超链接;
(7)可根据用户自身的角色和权限,配置不同的图形图表和数据大屏的查看和下载权限;
(8)支持单点身份认证登录;
(9)达到性能要求,访问流畅;
(10)符合安全标准,保障数据的安全。
4.2.2 确保平台与其他系统的畅通
根据前期建设规划,平台需对接以下系统:
(1)与单点身份认证系统对接,师生通过单点身份认证即可登录平台;
(2)与学校中心数据库、校园卡系统数据库、数据交换平台均连接畅通,数据工作人员可通过数据交换平台将中心数据库、校园卡系统数据库的数据推送至平台数据库;
(3)与数据库管理平台连接畅通,数据工作人员可通过数据库管理平台对数据流转的各个环节进行灵活管理,保障数据从源端到目标端准确、快速地呈现。
4.3.1 设计“疫情防控”数据驾驶舱页面
“疫情防控”数据驾驶舱页面的设计主要有以下4 个步骤:
(1)围绕学校疫情防控工作,调研学校相关各方对“疫情防控”数据驾驶舱的需求,拟定各单位关心的内容和数据来源;
(2)根据“疫情防控”数据驾驶舱页面显示的容量,将拟定的内容进行分类,分别在不同的页面上显示,并为各个页面拟定名称;
(3)规划“疫情防控”数据驾驶舱的主体色调,再根据每个页面的内容分别设计布局和图形图表样式,并为每个图形图表拟定名称;
(4)与学校相关各方多次沟通确认,完成“疫情防控”数据驾驶舱页面的设计,形成最终效果图,切图后即可在平台绘制出初步的有背景效果的数据呈现页面。
4.3.2 准备图形图表数据
在“疫情防控”数据驾驶舱页面显示的每个图形或图表,与平台的数据库表或视图[10]并不一定是一对一的关系,而可以是一对多、多对一的关系。下面以学生预警数据为例来介绍。
根据建设需求,要在数据分析预警情况页面显示5项学生预警数据,分别为:
(1)昨日学生最后进出校数据;
(2)昨日在校园学生24 点前未归寝数据;
(3)当前在校园学生48 小时未出寝数据;
(4)当前在校园学生72 小时无校内轨迹数据;
(5)当前学生已出校但有校内轨迹数据。
每项学生预警数据各对应1 个明细数据图表和1 个统计数据图表,一共是10 个图表。
在实际开发中,并非一定要在源端对应建立10 个数据库表或视图,而是应该根据这5 项学生预警数据的特点,尽可能地整合成1 个数据表后推送至平台数据库。通过这样整合处理,不仅可以在数据处理时保持数据的一致性,同时还可以减少数据交换接口的使用,最大化降低平台应用的复杂性和运维开销。
实际操作步骤如下:
(1)在学校中心数据库,先把5 项学生预警数据用一个视图“学生预警数据”整合处理出来,如图3 所示;
图3 “学生预警数据”视图Fig.3 "Student Alert Data" view
(2)在数据交换平台建立数据交换接口,将中心数据库的“学生预警数据”视图数据推送至平台数据库表“XSYJSJ”中,数据交换接口如图4 所示;
图4 学生预警数据交换接口Fig.4 Student alert data exchange interface
(3)平台数据库表“XSYJSJ”的数据如图5 所示,“XSYJSJ”表字段与“学生预警数据”视图字段是一一映射关系。其中,“预警类别”字段有5 个值,据此可分别筛选出所需的5 项学生预警数据,并可分别进行统计,然后通过图形图表在数据大屏上呈现。
图5 “XSYJSJ”表数据Fig.5 "XSYJSJ" table data
4.3.3 开发数据呈现页面
在平台中,新建图形图表,连接平台的数据库表“XSYJSJ”,选择合适的图形图表样式,提取相关字段、配置相关参数后,即可绘制出所需的图形图表。通过不断地调整图形图表大小、配色以及内容的字体、间距等,呈现最优效果[11]。
在图1 数据分析预警情况页面中,单击“昨日在校园学生24 点前未归寝人数”超链接,即可打开“昨日在校园学生24 点未归寝”明细数据页面,如图6 所示。
图6 学生预警明细数据页面Fig.6 Student alert details page
同理,在图1 数据分析预警情况页面中,单击另外4个超链接,即可打开对应的另外4 项学生预警数据。
在明细数据页面,通过判断访问者不同的辅导员、副书记和学工处管理人员角色权限,仅对应显示其管理的学生的预警数据和提供Excel 数据下载。
对平台的功能、性能、访问者角色权限配置和浏览器适应情况等方面进行全面测试,确保满足要求后即可上线使用,上线后持续进行运维保障。
特别需要重视以下几个方面:
(1)“疫情防控”数据驾驶舱呈现的数据最终来源于近30 个信息系统,这些信息系统各有数据量不等的前端设备,例如校园卡系统就有2000 多台前端设备。各信息系统的管理员时常会根据需要新增、修改或撤销设备以及对信息系统进行配置变更,这些操作都会引起信息系统数据的变化。因此,平台运维人员一定要加强与各信息系统管理员、建设厂商的沟通协调,并针对每个信息系统做好数据规范化和建立“先确认再操作”的机制,在相关各方都确认接下来的操作引起的数据变化能被正常处理后再开始操作,并监控数据正常流转。
(2)“疫情防控”数据驾驶舱不仅呈现统计数据,还呈现部分个人行动轨迹相关的明细数据,因此,平台运维人员要特别注意访问者的角色权限控制,最小化配置数据查看和下载权限,避免发生数据安全问题。
(3)随着疫情防控工作需求的变化,将会有更多的数据需要可视化呈现。在这种情况下,为减轻平台面对高访问量和大数据量的压力,需保持先在中心数据库和校园卡系统数据库等源端数据库中整合处理出数据结果,再通过数据交换平台对接至平台数据库相应数据表中的数据流转方式。源端数据库负责初始数据的整合处理,平台只进行简单的数据统计分析,主要负责可视化呈现。
“疫情防控”数据驾驶舱通过50 余个图表全面展示疫情防控总览概况、数据分析预警、人车进出校门、校内场所人流、健康信息填报和人员出差离哈等几个方面情况,面向学校疫情防控相关人员授权访问,为学校制定和调整精准的疫情防控策略,以及各单位合理安排本单位疫情防控工作和检查工作执行情况提供数据支撑。文章首先介绍了数据可视化的相关知识和工具,然后以哈尔滨工程大学为例,对建立学校数据可视化环境、建设“疫情防控”数据驾驶舱以及支持学校开展科学精准疫情防控工作的做法和经验进行了介绍和总结,以期为其他高校提供有意义的参考。