童艳 陶鹤丹 王万金
摘 要: 为满足测控系统对高频增量数据跨平台实时显示与分析能力需求,采用空间换时间的思想,通过态势显示与细节展示相结合的方式,减轻大数据量条件下的图形渲染时间压力。设计前端显示频率动态调整与数据量自动优化算法二者结合,实现高频增量信息实时动态显示与交互的流暢性。通过Echarts工具组件的使用和面向地理信息系统的二次开发,提高了测控信息实时可视化数据分析能力。测试结果表明,通过设定合适的优化系数能够保证可视化软件长时间运行流畅不卡顿,可满足高频增量测控数据实时可视化交互需求。
关键词: 实时; 动态显示; 可视化交互; 优化算法; 地理信息
中图分类号:TP319 文献标识码:A 文章编号:1006-8228(2023)04-127-03
Abstract: In order to meet the requirements of the measurement and control system for real-time cross-platform display and analysis capability of high-frequency incremental data, the idea of space for time is used to reduce the time pressure of graphics rendering under the condition of large data volume through the combination of situation display and detail display. The combination of front-end display frequency dynamic adjustment and data volume automatic optimization algorithm is designed to realize the smoothness of real-time dynamic display and interaction of high-frequency incremental data. Through the use of Echarts tools and the secondary development of geographic information system, the ability of visual data interaction and analysis is enhanced. The test results show that this method can ensure the smooth running of the visualization software for a long time by setting appropriate optimization coefficients. It meets the requirements of real-time visual interaction of high-frequency incremental data.
Key words: real-time; dynamic display; visual interaction; optimization algorithm; geographic information
0 引言
在飞行器测控任务中,中心机系统实时处理飞行目标的跟踪测量数据、目标解算轨迹等测控信息,这些信息需要实时显示供指挥决策者分析测控任务完成情况,并作为安控决策依据[1]。由于这类数据具有实时性强、更新频率高、数据积累量大等特点,对这类数据的可视化显示分析要考虑在大数据量条件下的实时性和交互性,防止显示界面出现丢点、卡顿、信息监视不及时而导致测控失利。同时,随着测控综合保障平台的建设发展,搭载可视化分析软件的平台存在多样性特点,这就要求显示分析软件能够不受软硬件平台的限制。因此需要设计出可跨平台运行的高频增量测控数据实时可视化交互软件。
本文提出了一种空间换时间的思想,通过Echarts提供的多种数据图表可视化解决方案,实现了不受软硬件平台约束的测控数据动态显示与交互。应用过程中针对显示需求作了必要的二次开发和算法设计,满足了高频增量测控信息的实时可视化交互需求。
1 跨平台软件构架
用于显示分析测控信息的软件运行在工作站或终端节点[2],这些平台通常基于Windows或Linux操作系统搭建。考虑多种平台适应性,Qt+Web是不错的选择。Qt是一个跨平台的C++应用程序开发框架,它提供的Web引擎能够实现浏览器功能。因此本文选择Qt+Web作为软件开发平台,满足软件的跨平台运行需求。
为保证实时性,软件采用C-S架构。用C++完成后端开发,实时接收测控网络的组播数据[3],按照信息流程解包,将显示信息加工成json格式,采取主动推送模式驱动前端界面进行实时更新显示。Web前端采用HTML5+CSS+Echarts技术,其中HTML5和CSS用于控制网页布局和样式,Echarts用于创建动态图表。Echarts是目前流行的商业级数据图表库,提供了包括地理坐标、直方图、曲线图等多种数据图表可视化解决方案。作为一个JS插件,其底层依赖轻量级的Canvas封装类库ZRender,兼容当前绝大部分浏览器[4],无软硬件平台限制,是构建跨平台测控信息可视化交互软件的理想选择。
基于Echarts的实时测控信息跨平台可视化交互软件设计流程如图1所示。软件采用多线程设计,主线程创建Web窗口负责前端图表显示和人机交互分析,子线程负责实时接收、解析网络数据,当有新数据到来时以4Hz频率向Web窗口发送消息。窗口根据数据优化算法控制显示刷新,为用户提供显示分析服务。
2 关键技术
2.1 优化算法设计
为了保证高频增量数据的实时更新动态显示,这里提出一种空间换时间的思想进行前端图表原型设计,采用态势显示与细节展示相结合的方式展示数据。其中态势显示主要展示目标飞行全程时间段的测控信息,大部分时间刷新频率较低,对大数据量条件下的图形渲染时间没有压力,不会因为数据量大更新频率高导致系统卡顿和丢点。细节展示是给用户提供一个滑动窗口,展示最近T(如40秒)时刻内的数据,刷新频率固定为4Hz。由于受时间窗口约束,细节窗口显示的数据量小,高频刷新也不会造成渲染不及时而卡顿的现象。态势显示与细节展示相结合是解决大数据量条件下实时显示测控信息的有效方案。
在态势显示图上,需要对数据进行筛选以防止资源耗尽或产生不必要的浪费,从而完成有效显示[5]。如在视图可见范围较大时,有可能在一个像素点附近高频刷新大量数据,而这样做却并不会引起太大的视觉反应,反而浪费了资源。
这里设计一种数据优化算法,使显示刷新频率根据数据质量和视图缩放系数动态地调整。该算法的原理为:当实时更新的测控信息前后数据差异相对态势底图窗口比例较小时,配合细节显示窗口以4Hz频率实时更新显示数据,态势显示刷新频率需求则大大降低,此时态势显示呈现“低功耗待机”模式,惰性刷新可达3-5秒一次;当数据出现干扰,跳点较大时,超过了惰性刷新门限,显示界面能够立即启动“积极响应”模式。两种模式动态切换既不会使异常点数据延迟更新,又可以达到实时高效监视的目的。与此同时为了防止大数据量条件下图形渲染对资源产生的压力,态势图显示的数据量可根据目标数量和飞行时长选择性优化。根据底图窗口大小动态调整显示刷新步长门限,对比前后数据差异与步长的关系决定数据取舍,从而可以大大降低每周期内显示刷新的数据数量。
以上给出的显示刷新频率动态调整和数据量自动优化算法二者结合能够保证高频增量数据实时可视化交互的流畅性。
2.2 交互功能设计
测控信息可视化是实时掌握测控目标飞行动态的方法手段,其目的是分析目标特性和状态,因此可供人机交互的数据实时分析功能必不可少。为了能更好的实现交互分析,可利用Echarts提供的提示框组件tooltip获取每个数据点的详细信息。以地理坐标数据为例,设计地图系列数据的name和value组成。根据地理信息数据特点将name设计为飞行时,在value结构中除了确定地理坐标的二维数据外,可在value的三维以上数据中设计需要提供给用户的信息,如目标号、测量方案等。设计提示框浮层内容格式为“数据名:数据值”,此时用户可通过鼠标拾取地图上任意数据点的信息,包括时间、经纬度、目标号和测量方案等,便于实时分析目标测控和飞行情况。在多目标飞行任务中,还可以利用Echarts提供的visualMap组件实现目标的视觉映射,直观区分多目标信息,在同一地图上完成多目标的实时数据显示。
除了常规的地图缩放、点选、提示信息等,对于地图数据还有一个重要且常用的功能就是地图量尺。Echarts提供的鼠标响应函数和像素坐标转换API使得我们在地图上做二次开发成为可能。在鼠标单击响应事件中,通过Echarts的API接口convertFromPixel可以轻松拾取大地坐标,采用公式⑴计算两点之间的距离[6],从而实现快速分析功能。
其中,Lat1、Lat2、Lon1、Lon2分别为两点的经度和纬度,a代表两点的经度差,R为地球半径。
3 应用效果测试
3.1 测试环境搭建
以地图数据为例创建Web页面,运用Ajax技术从json文件异步读取数据文件[7],如站址数据、理论轨迹数据、安全管道数据,选用特效散点图、普通散点图、线图绘制以上三种数据结合地图作为地理信息显示底图。设计散点图显示增量地理信息数据,设计带目标标识的线图表示目标实时飞行状态。采用跨平台开发框架QT搭建C-S架构应用环境,主窗口通过QWebEngineView类加载Web页面,同时创建多线程完成数据汇集,抽取飞行时、经度、纬度、目标号、方案号等信息加工成json数据,实时推送给Web页面采用本文提出的优化方法进行显示处理。设计目标轨迹散点图数据格式为:{name:"时间",value:[经度,纬度,方案号]},tooltip的格式为:'{b}:{c}',将visualMap组件作用于不同目标的散点图系列完成视觉映射,实现区分多目标信息的同时显示。
3.2 应用效果
本软件在保证实时交互流畅不卡顿的前提下作增量数据显示分析测试。以中国地图为底图,仿真模拟多弧段理论轨迹,每个弧段理论轨迹前后点步长0.08-0.12公里,采用分弧段由西向东大跨步跳跃模仿异常点响应测试,实时数据更新频率20Hz。细节窗口初始化地图缩放系数50,刷新频率4Hz,时间窗口40s。态势图初始化地图缩放系数zoom=12.5,步长d=4公里,最大数据量设置为3000。测试结果显示态势图跳点刷新时间间隔为250ms,连续弧段点刷新时间间隔随地图缩放变化为1-5s,细节窗口數据保持最近40秒,显示效果如图2所示。进行大数据量压力测试,运行时长大于10000秒后,态势图过滤数据量大于40000条,图2中的态势图交互流畅,细节窗口仍然保持4Hz刷新,不丢点不卡顿。
试验结果表明,采用本文提出的设计优化方法,通过设定合适的优化系数能够保证可视化软件长时间运行流畅不卡顿,满足高频增量测控数据实时显示分析需求。
4 结束语
本研究提供了一种用于飞行器测控中心机系统跨平台可视化建设的方法,可确保高频增量测控信息得到实时有效的显示并提供一定的人机交互分析能力,更好的辅助决策指挥。此方法首先通过态势显示与细节显示结合的方式减轻大数据量条件下的图形渲染时间压力;其次,设计前端显示频率动态调整与数据量自动优化算法二者结合,实现高频增量信息实时动态可视化交互的流畅性;最后,通过Echarts工具组件的使用和面向地理信息系统的二次开发,提高了测控信息实时可视化数据分析能力。
参考文献(References):
[1] 刘德龙,楼顺天,崔建国.指控系统的实时数据处理软件设计[D].硕士,西安电子科技大学,2014
[2] 蒋充剑,夏绍志,等.靶场试验指挥控制中心系统及其应用[J].舰船电子工程,2009,29(2):43-46
[3] 程委,李兵,吴增强,等.航天器飞行及测控过程可视化系统设计与实现[J].计算机仿真,2010,27(8):22-27
[4] 洪敏,吴红亚,杨保华,等.基于HTML的ECharts的动态数据显示前端设计[J].计算机时代,2018(8):27-32
[5] 宋刚.大数据时代背景下的数据可视化概念研究[J].无线互联科技,2021,17(9):25-26
[6] 刘军伟.地球表面上两点之间距离的几种求算方法[J].许昌学院学报,2007,26(5):126-129
[7] 赵海国.Ajax支持下的ECharts图形报表技术的应用[J].电子技术,2018(4):66-69
作者简介:童艳(1982-),女,陕西西安人,硕士,工程师,主要研究方向:实时测控软件系统研究。