基于AntV-G6插件的航天算法流程化任务执行系统

(整期优先)网络出版时间:2023-11-29
/ 2

基于AntV-G6插件的航天算法流程化任务执行系统

霍凯1 ,陈征征1,邹元杰2,柳翠翠2

(1.   广东航宇卫星科技有限公司;2.中国空间技术研究院总体设计部)

摘要:针对航天领域需要通过人为传递和调用多个算法计算执行的任务,特开发此系统以实现算法自动化参数传递和调用最终实现一组输入直接获取最终输出结果,从而节省人力,降低人为原因带来的误差和失误,同时实现算法的管理和维护。本系统主要包括以下模块:算法注册、算法流程绘制、算法-场景-模型数据绑定、场景中三维模型数据驱动。本系统采用微服务架构,各个系统的算法以单独服务运行,通过提供RESTFUL风格接口给主服务系统调用。最终,实现从页面输入参数值传递到算法流程中,算法流程自动执行,并将计算结果用于驱动三维场景,从而实现三维可视化的功能。

关键词:AntV-G6插件、流程化任务、三维可视化

  1. 概述

航天领域里在设计阶段涉及大量计算,各种算法都是单独封装,单独计算,过程中分析处理各个算法数据,最后汇总需要的使用数据使用相关软件进行数据的准确性、可靠性等验证,为实际工作提供理论支持。这一系列操作中需要人工将各个算法的数据进行分析、处理、再调用其他算法以及使用其他相管软件进行可视化。整个流程人工化成度较高,在人力、物力、财力方面都有较大的浪费,同时也会带来较高的出错率;因需要使用不同的软件进行数据的计算、分析、处理,使此项工作更加繁琐。

理论计算涉及到大量算法,这些算法由不同部门编写,没有统一的标准;使用单位也没有进行统一的管理,不利于算法后续的更新维护以及重复使用。

随着科技的发展,数字化和三维可视化在各个领域逐渐大放异彩。作为典型传统行业的航天领域接入数字化和三维可视化也成为了发展的趋势。针对上述提出的问题,我们提出以下几点设计来解决:

(1)针对算法无统一标准,我们设计提出了算法的统一标准,主要对算法的输入输出做了统一格式、数据结构规定;针对算法无统一管理,我们提出将算法按照来源封装为微服务,封装为RESTFUL风格接口,按照标准的XML格式进行统一注册;

(2)针对各个算法单独调用,需要由工作人员去串接算法结果使用不同软件进行数据分析、处理、再调用和可视化的繁琐流程我们设计了使用优化后的G6插件在网页上直接实现算法流程的绘制,算法内部参数传递关系绑定,实现自动的算法执行和参数传递;

(3)基于使用的便利和可扩展性,设计了模型、算法流程、场景的三者数据关联处理;

(4)以上三步都完成后,就可以进行任务的创建(页面输入参数填写),运行,结果可视化展示;任务的管理等。

  1. 模块设计说明
    1. 算法注册模块

根据标准制定的输入参数类型和输出结构体将C++编写的dll动态库算法封装为Java微服务,对外提供RESTFUL接口以便调用,同时将算法相关信息编写成XML文件在系统中进行算法注册。系统根据XML解析出算法的相关信息,主要包含算法调用地址、调用方式、输入输出参数等。将算法相关信息存入数据库中,提供算法的查询编辑删除等管理功能。

算法中规定的数据结构如下:

表2-1 算法数据结构示例表

数据结构类型

XML标签名

数据示例

SINGLE

Param

"a":6378001

ARRAY

ArrayParam

"a":[6378000,6389100,986233]

MULTIPLE

ArrayList

"a":[

{

"impV_x":"10.0",

"impV_y":"0.0",

"impV_z":"0.0",

"impT":"100.0"

}

  ]

2.2算法流程绘制

根据需求,前端选择使用优化后的G6插件实现在页面进行流程图的绘制。流程图绘制时,通过拖拽已有算法列表中的算法实现算法信息的查询,通过流程关系体现参数传递关系,在每个流程节点上进行参数传递的绑定,从而实现算法内部参数之间的传递及传递关系绑定,并实现对算法流程的管理。

图2-1 流程图流程节点参数绑定示意图

2.3算法-场景-模型数据绑定

基于对模型、算法流程的管理,以及定制化的三维场景页面,此处需要将三者进行关联,并对三个部分的数据信息进行关联处理。从而实现从输入数据到输出结果,输出结果驱动模型在三维场景中展示以及部分输出结果的统计分析结果展示等。

详细数据绑定如下:首先,选择好场景,再选择对应的模型,对应的算法流程将三者关联。其次,将场景中的页面输入参数和算法流程中未绑定的参数进行关联,将算法流程计算出来的数据绑定给对应的模型、场景中的图表对应的参数,为三维可视化提供数据。

2.4三维模型数据驱动

数据关联中确定了所有的数据关联关系,此模块只需要在场景页面中输入对应参数,按照算流程执行算法,将算法输出结果根据数据关联关系进行显示。此模块中最为重要的是算法流程的执行。算法流程计算按照一层一层的逻辑来执行。具体执行方案如下:

获取第一轮执行节点数组作为当前执行节点数组;

多线程执行当前执行节点数组中的节点;将节点执行结果进行封装;获取执行完节点的下一个节点加入下一轮执行节点数组中;将已执行节点从当前轮执行节点数组移除;

当前执行节点数组中的节点全部执行完毕后,将不可执行节点数组中的节点全部移到下一轮执行节点数组中;遍历下一轮执行节点数组将可执行节点移入当前轮执行节点数组中,不可执行节点移入不可执行节点数组中;

如果当前轮执行节点数组不为空则从第2步重复执行,为空则算法流程执行结束;

算法流程的执行逻辑流程图如下:


图2-2 算法流程计算逻辑图

2.5基于图可视化的流程图绘制工具AntV-G6

将图数据通过计算机图形学和图像处理技术,转化成图形或图像,完成信息展示,交互等功能。其具有如下优势:我们的大脑非常善于处理图像信息,可视化会非常直观;将图刻画成节点与边的链接结构,能帮助用户发现网络中更多的价值[1]

AntV-G6作为可视化图形引擎,其应用领域非常广泛。AntV-G6是AntV数据可视化项目下的图可视化与图分析引擎,G来自于Graphic、Graph,意味着我们要基于图分析技术做图可视化;6来自于《六度分割理论》,表达了我们对关系数据、关系网络的敬畏和着迷。
本系统基于AntV-G6进行了二次开发,实现在线绘制流程图的功能。对于不同的场景任务,其对应的任务算法流程不尽相同,需要任务算法流程进行管理和规划。任务流程规划工具旨在对任务中算法流程进行可编辑、可操控的规划设计,通过列表化、流程化对任务流程进行管理和规划,达到对任务流程的更清晰、更便捷、更直观的解读。列表化,即采用列表的形式管理任务流程的基本信息。流程化,即采用流程图绘制工具来绘制算法流程,直观展示任务算法流程的具体细节,并将流程图信息与任务流程基本信息进行关联。

  1. 结论

在对模型、算法的单独管理维护以及定制特定的场景页面的基础上,实现三者的动态组合关联。最终实现,页面输入参数,自动执行算法流程,输出结果驱动三维场景运行,达到数据三维可视化的效果。该系统灵活的配置可以为用户提供更好的可扩展性,同时提高了系统的适用性。

参考文献

[1] 陈为, 张嵩, 鲁爱东. 数据可视化的基本原理与方法[M]. 科学出版社, 2013