APP下载

用于空间态势表达的海量空间目标可视化

2014-03-17施群山蓝朝桢

图学学报 2014年6期
关键词:海量态势可视化

施群山, 吕 亮, 蓝朝桢, 梁 静, 徐 青

(1. 信息工程大学地理空间信息学院,河南 郑州 450052;2. 郑州测绘学校,河南 郑州 450015)

用于空间态势表达的海量空间目标可视化

施群山1, 吕 亮1, 蓝朝桢1, 梁 静2, 徐 青1

(1. 信息工程大学地理空间信息学院,河南 郑州 450052;2. 郑州测绘学校,河南 郑州 450015)

目前空间目标的可视化方式不能很好地满足海量空间目标实时态势表达的需求,考虑到各空间目标位置计算的独立性以及GPU并行处理的优势,将目标模拟中计算量较大的位置解算工作交由GPU并行处理,采用顶点着色器进行空间目标的位置解算,采用片元着色器进行空间目标显示效果的设置,最后采用实际数据和模拟数据相结合的方式验证了该文的方法性能和效果。实验结果表明:提出的空间目标可视化表达方法即使在目标接近50万颗时,可视化模拟消耗的时间也只有50 ms左右,完全能满足实时性的要求,同时片元着色器的设置也使空间目标可视化效果更加逼真。

空间态势感知;海量空间目标;可视化;图形处理器

随着空间探测技术的发展以及人类对空间利用的高度重视和日益依赖,空间已成为维护国家安全和国家利益所必须占据的战略制高点。为确保空间安全,维护空间利益,世界强国纷纷着手建立各自的空间态势感知系统[1-5],以便及时准确地获取空间态势信息。空间态势信息,是实施空间任务、保护空间资产安全和发挥空间装备效能的重要保障,是应对空间突发事件的决策依据。

空间目标作为空间态势信息的主要组成部分,对其认知与表达已经成为空间态势感知的重要研究内容,空间目标可视化技术是指采用图像图形处理技术对空间目标进行各种方式的可视化表达,其是认知和表达空间目标信息的重要手段,可以为空间态势的安全评估与规划提供直观、有效的方法。

自从人类发射第一颗人造卫星以来,地球轨道上的空间目标日益增多,据文献[6]统计,目前近地空间中直径超过 10 cm的空间目标大概有22000颗,包括可以被美国空间监视网(space surveillance network, SSN)观察到的活动卫星,废弃卫星和人造碎片。据美国国家航空航天局(national aeronautics and space administration, NASA)估计,直径在1~10 cm之间(无法被现有SSN监测到)的物体数量超过500000个,直径在1 cm以下的物体数量更是数以千万计[7]。对如此海量的空间目标进行实时可视化模拟是一个巨大的挑战,这不仅是因为目标的数量庞大,而是由于时间维的存在,目标每时每刻的位置都在发生变化,本身的计算量同样非常巨大。

对空间目标的模拟,一种方式是:将所有空间目标一次载入内存后,进行相应的仿真建模,如美国 Analytical Graphics公司(AGI)开发的卫星工具包(satellite tool kit, STK)[8]、NASA 开发的WorldWind[9]等,虽然它们能对各种各样的天文和地理数据进行融合显示,但是其显示的空间目标数目受到内存的限制;另一种方式是:将海量的空间目标数据存储在外存储器中,内存中只负责处理一小部分数据,处理的数据按照一定的算法从外存储器调入,该方法由于受到内外存之间的输入/输出(input/output, I/O)瓶颈的影响,对算法要求较高,如文献[10]利用八叉树对空间目标进行组织管理,结合视锥体裁剪和细节层次(level of detail, LOD)技术实现了海量空间目标的可视化模拟,但该方法实现起来较为复杂,而且空间八叉树本身的动态构建将耗费很多的计算资源。近年来发展起来的图形处理器(graphic processing unit, GPU),相较于中央处理器(central processing unit, CPU),其具有强大的并行处理能力和极高的存储器带宽,非常适合于科学运算、数据分析、线性代数、流体模拟等需要大量重复的数据集运算和密集的内存存取的应用程序,这为大规模复杂问题求解提供了一种廉价高效的计算平台。

空间目标实时可视化模拟的难点在于目标位置的实时解算及绘制需要耗费大量的计算资源,考虑到各空间目标位置计算的独立性以及GPU并行处理的优势,本文提出了一种用于空间态势感知的海量空间目标实时模拟方法,将目标模拟中计算量较大的位置解算工作交由GPU并行处理,大大加速了目标的可视化模拟速度,最后运用OpenGL三维图形开发包和 OpenGL着色语言(OpenGL shading language, GLSL),编程实现空间目标的实时可视化表达。

1 算法原理

1.1 实时目标位置解算

在不影响空间目标整体态势表达的基础上,本文忽略摄动力的影响,将空间目标围绕中心天体的运动简化为二体问题。对于空间目标实时位置的描述通常采用轨道椭圆半长轴、偏心率、轨道倾角、升交点赤经、近地点角距和真近点角 6个参数,如图1所示,其中半长轴a和偏心率e可以确定轨道的大小和形状,真近点角 f可以确定卫星在轨道上的瞬时位置,轨道倾角i、升交点赤经Ω和近地点角距ω则用来确定轨道面的姿态。传统的对于姿态方位的描述多采用欧拉角,这种方法会导致答解方程中出现复杂繁琐的三角函数和附加的奇异点,因此本文使用四元数作为描述轨道姿态的参数,可以避开这些缺点[11]。

图1 轨道6根数示意图

假定描述轨道姿态的四元数为λ0, λ1, λ2, λ3,轨道定向四元数与轨道角元素的关系模型如式(1)所示:

式(1)中,Ω为升交点赤经,i为轨道倾角,σ=ω+f为升交点角距。

目前,GPU仅仅可以处理顶点位置、法向量、纹理坐标等图元信息,因此将其应用于通用科学计算的前提是:将参与运算的相关参数作为内置属性传入顶点缓冲区等待调用。因此,本文将参与计算的轨道根数与内置属性变量进行了关联,其对应关系如表1~2所示。

表1 轨道根数与内置属性关联关系

表2 姿态四元数与内置属性关联关系

通过关联,可以利用标准的OpenGL顶点数据接口将轨道根数数据从应用程序发送到顶点着色器中。

利用轨道根数解算目标的天球坐标系坐标的步骤如下:

(1) 由历元平近点角M0、平均角速度 n和当前历元时刻time计算平近点角:

(2) 依据开普勒方程 M=E- esinE迭代求解偏近点角E,其中e为偏心率。

(3) 根据半长轴a计算目标在轨道平面直角坐标系的坐标:

(4) 利用轨道姿态四元数计算目标在天球坐标系中的坐标:

为过渡矩阵, qx,qy,qz,qw为轨道姿态四元数的分量,z值为0。

上述过程需要通过GLSL将其翻译为着色器可以识别的“语言”,然后交由GPU进行高速并行运算。对应以上步骤的GLSL关键代码如下所示:

// 半长轴

float sma=gl_Vertex.x;

// 偏心率

float ecc=gl_Vertex.y; /

/ 历元平近点角

float M0=gl_Vertex.z;

// 平均角速度

float nu=gl_Normal.x; /

/

计算平近点角

float M=M0+time*nu;

float E=M;

// 迭代循环4次求偏近点角

for (int i = 0; i < 4; i+=1)

E = M + ecc*sin(E);

// 计算卫星在轨道平面直角坐标系的坐标

vec3 position=vec3(sma*(cos(E)-ecc), sma* (sin(E)*sqrt(1.0-ecc*ecc)), 0.0);

// 利用姿态四元数计算卫星在天球坐标系中的坐标

vec4 q=vec4(gl_Normal.z, gl_MultiTexCoord0.x, gl_MultiTexCoord0.y, gl_Normal.y);

vec3 a=cross(q.xyz, position)+q.w*position;

position=cross(a,-q.xyz)+dot(q.xyz,position)* q.xyz+q.w * a;

// 模型视图投影变换后输出坐标

gl_Position=gl_ModelViewProjectionMatrix* vec4(position, 1.0);

此外,程序利用自定义的uniform变量将目标大小“传入”顶点着色器程序,通过对gl_PointSize赋值完成对目标大小的设置。

1.2 点目标片元设置

经过顶点着色器处理以后,与各个顶点相关联的全部属性就会完全得以确定,再经过图元装配和光栅化,图元将被分解为更小的片元,这些片元对应于目标帧缓冲区的像素。而片元着色器是一个处理片元值及相关联数据的可编程单元,可以用来执行传统的图形操作。由于OpenGL固定管线绘制的点目标成正方形状,而中心对称的圆形分布更符合点状空间目标的可视化效果,因此本文通过片元着色器实现对点目标的颜色及色度分布的设置。

如图2(a)所示,栅格化后的图元形成的片元分布成方形,点状空间目标的成像模型符合中心对称的圆形分布,由内及外颜色渐浅,为此可以采用式(5)为片元分配不同的透明度来实现:

式(5)中,( x , y)为片元坐标,x和y的范围为0到1之间,opacity为其对应的透明度值,( xc,yc)为图元中心坐标,d为片元 (x , y)到图元中心的距离,D是水平或垂直方向上图元的边缘到图元的中心的距离,如图 2(b)所示。由式(5)可知图元整体由内及外透明度逐渐降低,颜色渐浅。由于 x和 y的范围为0到1之间,因此D的值为0.5,式(5)可以具体为式(6):

图2 目标片元透明度修改前后对比图

上述过程翻译为着色器“语言”如下所示:/

/

接收颜色参数

uniform vec4 pointColor;

vec2 v = gl_PointCoord-vec2(0.5, 0.5);

/

/ 透明度设置

float opacity=1.0-dot(v, v)*4.0;

// 设置目标颜色

gl_FragColor=vec4(pointColor.rgb, opacity*pointColor.a);

程序利用自定义的 uniform变量将目标颜色“传入”片元着色器程序,结合透明度变化通过对gl_FragColor赋值完成对目标颜色的设置。

经过目标位置解算及属性设置后,对于图元装配、光栅化、深度测试等操作仍然由固定功能的管线来完成。因此,还需要根据视点位置完成场景的裁剪,最终将目标投影到高性能的显示器上,完成空间目标可视化模拟。

2 总体流程

本文设计了一对着色器,利用它的顶点着色器进行空间目标位置解算,利用片元着色器进行空间点目标成像时的成像效果设置,实现了海量空间目标的可视化表达,整个模拟过程如图3所示。

图3 空间目标模拟流程图

(1) 数据准备,通过建立轨道定向四元数与轨道角元素之间的关系,完成空间目标轨道姿态的四元数描述;

(2) 数据关联,将轨道根数与顶点位置、表面法线、纹理坐标等内置属性变量相关联;

(3) 利用GLSL对顶点着色器进行编程,实现对目标位置的解算,并设置其大小;

(4) 利用GLSL对片元着色器进行编程,通过处理栅格化后的片元完成目标的颜色设置;

(5) 创建、编译、链接着色器,启动着色器程序完成运算;

(6) 结合视点位置、用户裁剪等信息,最终渲染生成目标相应方向的空间态势。

3 实验结果与分析

为了验证本文方法的优越性,在普通 PC机(CPU:Intel(R) Core(TM) i5-3317U CPU @ 1.70 GHz;内存:4 G;显卡:Geforce GT 620 M(1 G内存))上,基于Windows平台,在Qt开发环境中,利用OpenGL图形开发包和GLSL着色语言编程实现了本文提出的方法。

3.1 实验数据

考虑到实验所需数据量较大,而观测能力有限的情况,本文采用真实与模拟相结合的方法来准备实验数据。真实数据采用SSN公布的两行轨道根数(two line elements, TLE)数据,其每天通过SPACE-TRACK网站(www.space-track.org)更新一万多条,数据全面,质量相对稳定。TLE具体格式如图4所示,主要包含星历和平均开普勒根数等参数,图中对用于一般轨道计算的6个关键参数进行了注释,其中半长轴并没有显式的给出,可以通过式(7),由平均角速度计算获得,其中a为半长轴,n为平均角速度,u是关乎地球质量的常数。

图4 TLE轨道报格式

为了验证本文方法对海量数据的支撑性能,需要海量的空间目标数据,而真实观测数据有限,因此本文在最新收集的14884条TLE数据的基础上,利用高斯分布函数来对开普勒轨道根数进行模拟,数据模拟的具体方法是:在收集的TLE数据中随机抽取一条该数据,并以此数据为基础,采用高斯分布函数模拟一定数量的TLE数据(各轨道根数对应的高斯分布函数的参数σ值如图 4所示),如此多次抽取观测的 TLE数据,多次模拟TLE数据,最终生成的实验所需的TLE数据,本实验生产的 TLE数据条数分别为 3721,7442,14884,29768,59536,119072,238144,476288。

3.2 性能比较

首先,对本文的海量空间目标可视化方法从理论上与以往的基于CPU的方法进行对比分析。传统基于CPU的方法要实现所有空间目标的可视化,必须采用循环遍历的方法依次对所有空间目标进行位置解算,空间目标可视化性能受空间目标数量影响较大,当出现海量的空间目标时,这种循环计算会消耗大量地计算时间,本文的海量空间目标可视化方法利用了GPU的并行特性,将所有空间目标的位置计算任务分配给众多的GPU单元同时进行解算,无需进行循环计算,这样所有空间目标的位置解算可一次性同时完成,所以理论上本文的海量空间目标可视化方法优于传统的基于CPU的方法。

以上是对本文海量空间目标可视化性能的理论分析,为了进一步验证本文方法的性能,将本文的方法和采用CPU的空间目标模拟方法进行对比实验,完成目标的实时模拟均需要经过位置计算后进行渲染输出。因此,实验的统计量包括位置计算耗时和渲染耗时两部分,具体结果如表3。

为了更好地对实验结果进行分析,本文将实验的结果绘制成折线图,如图5所示。

表3 CPU和GPU用时对比(s)

图5 CPU和GPU用时对比折线图

对比表中的实验结果可以发现,当目标数据量在7442~14884之间时,基于GPU模拟的计算速度反而不如利用CPU进行计算的速度,只有当数据量大于14884的时候,才能提高模拟的速度。原因在于GPU计算的主要优点在处理器的数量,而其单个处理器的计算能力则远逊于CPU,少量的数据必定造成GPU处理资源的浪费。随着目标数量的增多,采用CPU的模拟方式所需的时间快速增长,而基于GPU的方式所消耗的时间则没有明显增加,当目标增加到476288时,GPU与CPU的提速比达到31.03。

3.3 可视化效果比较

图6为采用本文方法绘制的3721颗、14884颗、59536颗、238144颗空间目标的效果图。

图7为采用普通OpenGL绘制方式和采用基于GPU的片元设置后绘制方式的效果对比图。

图6 空间目标实时模拟结果

图7 空间目标片段设置前后对比图

从实验结果可知,本文方法可以非常形象地绘制出当前空间中目标的运行态势,效果逼真,很好地满足了实时性要求。将目标片元色度的分布依距离中心远近进行调整后,模拟生成的点目标更接近于空间目标的认知效果。基于GPU的模拟方法充分利用了图形硬件的并行计算特性,速度快、可靠性强、效果逼真,尤其适合海量空间点目标的实时展示,可以为空间态势的安全评估与规划提供技术支持,为空间态势感知和表达奠定基础。

4 结 束 语

随着人类对空间利用的日益频繁,空间目标不断增长,空间目标可视化成为空间态势安全评估与规划的直观手段受到业界的重视,但是目前空间目标的可视化方式不能很好地完成实时空间态势表达的需求,为此本文开展了海量空间目标可视化研究,本文的主要创新点是采用基于 GPU的方式,对海量空间目标进行可视化表达,采用顶点着色器进行空间目标的位置解算,采用片元着色器进行空间目标显示效果的设置,最后采用实际数据和模拟数据相结合的方式验证了本文方法性能和效果。实验结果表明:本文的空间目标可视化表达方法即使在目标接近50万颗时,可视化模拟消耗的时间也只有50 ms左右,完全能满足实时性的要求,同时片元着色器的设置也使空间目标可视化效果更加逼真。

[1] Abbot R I, Wallace T P. Decision support in space situational awareness [J]. Lincoln Laboratory Journal, 2007, 16(2): 297-335.

[2] 尤 政, 赵岳生. 国外太空态势感知系统发展与展望[J].中国航天, 2009, 31(9): 40-44.

[3] 夏 禹. 国外空间态势感知系统的发展(上)[J]. 空间碎片研究与应用, 2010, 10(3): 1-9.

[4] 夏 禹. 国外空间态势感知系统的发展(下)[J]. 空间碎片研究与应用, 2011, 11(1): 1-8.

[5] 陈 杰, 潘 峰, 苏同领. 美国天基太空监视系统[J].国防科技, 2011, 32(1): 67-70.

[6] Air Force Space Command. JSpOC increases tracking capabilities [EB/OL]. [2014-03-15]. http://www.afspc.af.mil/ news/ story.asp?id=123165722.

[7] NASA Orbital Debris Program Office. Orbital debris frequently asked questions [EB/OL]. [2009-07-10]. http://www.orbitaldebris.jsc.nasa.gov/faqs.html.

[8] 杨 颖, 王 琦. STK在计算机仿真中的应用[M]. 北京: 国防工业出版社, 2005: 47-53.

[9] 周 玲, 高延铭, 王海红, 曲 鹏. World Wind Java三维地理信息系统开发技术指南[M]. 北京: 机械工业出版社, 2013: 5-6.

[10] Jiang Ming, Andereck M, Pertica A J, Olivier S S. A scalable visualization system for improving space situational awareness [C]//Advance Maui Optical and Space Surveillance Technologies Conferencemaui, America, 2010: 603-612.

[11] 范奎武. 描述人造地球卫星轨道的四元数法[J]. 航天控制, 2011, 29(6): 14-16.

Visualization of Massive Space Objects for Space Situational Awareness

Shi Qunshan1, Lv Liang1, Lan Chaozhen1, Liang Jing2, Xu Qing1
(1. Institute of Surveying & Mapping, Information Engineering University, Zhengzhou Henan 450052, China; 2. Zhengzhou School for Surveying and Mapping, Zhengzhou Henan 450015, China)

Current method of visualization cannot meet the needs of expression of the massive space objects real-time situation. To solve this problem, this paper proposes an improved method. Taking into account the independence of each space object on the position calculation and the advantages of GPU parallel processing, the position calculation is to be conducted by GPU parallel processing, vertex shaders are to be used for spatial location of the objects, the fragment shaders are to be used for space objects display settings, and the performance and effectiveness of this method are to be finally verified by actual data and analog data. The experimental results show that,by using the proposed visualization method of space objects, when the number of the objects is close to 500,000, simulation time is only about 50 milliseconds, thus it can well meet real-time requirements, while the fragment shaders settings also make the space objects visual effects more realistic.

space situational awareness; massive space objects; visualization; graphics processing unit

TP 391.9

A

2095-302X(2014)06-0828-07

2014-05-29;定稿日期:2014-07-02

施群山(1985-),男,江苏盐城人,博士研究生。主要研究方向为摄影测量与遥感、空间态势认知与表达。E-mail:hills1@163.com

徐 青(1964-),男,浙江磐安人,教授,博士生导师。主要研究方向为摄影测量与遥感、虚拟现实。E-mail:xq@szdcec.com

猜你喜欢

海量态势可视化
一种傅里叶域海量数据高速谱聚类方法
基于CiteSpace的足三里穴研究可视化分析
思维可视化
基于CGAL和OpenGL的海底地形三维可视化
2019年12月与11月相比汽车产销延续了增长态势
汇市延续小幅震荡态势
海量快递垃圾正在“围城”——“绿色快递”势在必行
“融评”:党媒评论的可视化创新
我国天然气供需呈现紧平衡态势
一个图形所蕴含的“海量”巧题