基于OpenGL和GDAL的发落点精确绘制技术

2017-07-01 10:27钟权沈静波路伟欣
科技视界 2017年6期

钟权++沈静波++路伟欣

【摘 要】为了能够更好的在雷达的显示软件中展示弹道目标的发落点信息。提出一种在Qt平台下开发的基于OpenGL和GDAL的发落点精确绘制技术。该技术可以直观的展示导弹发落点的地理信息,其精度可达1km。在某型雷达的显示软件中,使用该技术来实现弹道目标的发落点现实。结果表明,该技术可以清晰流畅且直观的显示弹道导弹的发落点变化情况。

【关键词】发落点绘制;GDAL;OpenGL;雷达显示

Plotting Technique of Impact and Launch Points based on OpenGL and GDAL

ZHONG Quan1,2,3 SHEN Jing-bo1,2,3 LU Wei-xin1

(1.No.38 Research Institute,China Electronics Technology Group Corporation,Hefei Anhui 230088,China;

2.Key Laboratory of Aperture Array and Space Detection,Hefei Anhui 230088,China;

3.Key Laboratory of Intelligent Information Processing,Hefei Anhui 230088,China)

【Abstract】In order to display and plotting the information of ballistic missiles launch and impact points detected by radar more intuitionistic.A method of impact and launch points plotting based on OpenGL and GDAL working on the Qt platform was proposed.It can display the geographic information as precise as 1 kilometer.The method had been used for displaying the information in some kind of radar.It indicated that the technique can display the change of impact and launch points clearly and fluently.

【Key words】Plotting technique of Impact and Launch points;GDAL;OpenGL;Display of radar

为了在防空预警雷达系统的显示软件中更好地展示弹道导弹目标的发落点信息,本文展示了一种在Qt平台下开发的发落点窗的精确绘制技术。该技术可以将从网络接收到的预测的发点和落点信息分别显示在两个不同的窗体中。在实际的雷达系统中,随着探测信息的积累,预测发落点信息处在不断精确的过程中,为了直观展示这个进程,同时为了方便操作员掌握发落点信息以提前预警,在雷达的显示软件中加入发落点绘制显示模块。本文所阐述的发落点精确绘制技术正是在这个模块上的应用。

在实际应用中,操作人员可以通过设置经纬度来设定要观测显示区域的中心位置,通过选定距离来设置观测发落点的区域范围,通过设置刻度信息来判断发落点相对观测中心的距离。基于GDAL的发落点绘制技术可以精确的在界面上显示观测区域的行政区划信息和经纬度信息,方便操作人员直观的观测弹道导弹的发落点变化情况,从而做出更加精准的判断。该方法配置简单、使用方便,并且具有跨平台属性,可以很迅速的配置在其他类似的雷达系统中。

1 相关技术简介

OpenGL(Open Graphics Library)是有一种开放的、独立于硬件接口的和具有高度可移植性的软件接口。它是由七百多个由C语言实现的函数接口所组成的函数库。借助这些函数,技术人员可以在软件中构造场景、创建虚拟环境。目前,由于OpenGL在三维绘制方面的优异表现,它已经被广泛应用于3D游戏、医学、地理信息等方面软件的开发[1-2]。

与OpenGL 类似,GDAL(Geospatial Data Abstraction Library)也是一个开源的用于处理栅格数据的类库。其开源、跨平台、易扩展、功能强大的特性使得它在图像处理领域和地理信息系统领域有着较为广泛的应用[3-4]。在GDAL库中,包含一个重要的OGR的库,它支持对矢量数据进行操作和处理。本文正是使用该库来读取弹道发落点的精确地理信息。

2 发落点窗绘制及显示技术的实现

2.1 发落点窗数据处理流程

基于OpenGL和GDAL的发落点绘制模块主要包括数据接收、本地数据读取、数据管理、人机交互和显示绘制等模块,其结构组成如图1所示。数据接收模块从网络中接收发落点的经纬度信息;本地数据读取是指使用GDAL来读取事先存储在本地的矢量行政地图信息;数据管理模块主要是指对所有接收到的发落点进行管理和对地理信息数据进行管理;人机交互模块负责选择需要关注的区域范围,观测范围的大小和观测的刻度;显示绘制模塊是指在Qt平台下,使用OpenGL来绘制由数据管理模块所管理的数据,并将绘制结果显示出来。

图1 发落点窗软件结构组成

2.2 地理信息数据管理设计

地理信息主要包括省界、县界、高速公路和地点名称等信息。对于地点名称,将其存储在字符串列表中。其他的地理信息都可以看成由多个点形成的特殊多边形,存储在以文件名为索引的映射表中,其中,OGRDataSource类由GDAL提供的存储接口。地理信息数据的具体结构如下:

Q其中,m_maps 中保存了所有的地理信息,但是这些地理信息并不是都需要显示,mapList保存了需要显示的地图数据信息。

2.3 发落点数据管理设计

发落点窗的数据管理结构是一致的,使用落点来说明发落点数据的管理方式。在落区中,有多个批次的落点信息,使用QList列表结构来管理;其中,IMPACT_POINT_BATCH结构用来管理同一个批次所有的落点集合;IMPACT_POINTS结构具体定义了单个落点的地理坐标信息。具体数据结构如下:

2.4 地理信息数据绘制和显示技术

2.4.1 地理信息数据的加载

为了使用GDAL库,必须使用OGRRegisterAll()函数来注册驱动。地理信息的读取和加载由函数OGRSFDriverRegistrar::Open(char*, bool)完成,其中,第一参数指定地理信息存储的路径。如2.2节所示,如果读取成功,则读取后的信息存储在字典QMap中,否则Open函数返回空值。

存储在OGRDataSource结构中的数据是分层管理的,层次结构由数据本身决定。可以通过OGRDataSource::GetLayer()函数来遍历每个数据层,获得的数据层保存在OGRLayer结构中。对于OGRLayer结构中的数据,使用函数OGRLayer::GetNextFeature()来遍历每个特征数据,返回值保存在OGRFeature结构中。接着,使用OGRFeature::GetGeometryRef()函数,来获得具体的几何信息。对于这些几何信息,使用OpenGL即可绘制在主界面中。

2.4.2 地理信息数据的删除

通过对字典QMap中的存储数据进行删除即可以实现对地理信息的删除。

3 应用实例

在某项目中采用Qt4.8.0为平台进行发落点窗绘制和显示的开发设计,显示效果如图2所示。图中,不同位置的点形成的点集即是不同批的目标所形成的落点信息,相同批发落点的颜色相同,这些发落点集是某一批目标在不同时刻通过前端网络预测得到的,点迹的亮度会随着时间的流逝不断衰减,直至消失。点集旁边的数字標明了不同批的批号标牌。圆环状的实线是根据区域中心和量程绘制的刻度线,这些刻度线可以让操作者更容易的查看发落点的相对位置。左上角的曲线是由GDAL库读取、由OpenGL绘制的行政地图信息,通过鼠标滚轮的操作,可以放大或者缩小显示范围;通过鼠标左键在主界面进行拖动,可以达到漫游的效果。垂直和水平的虚线是经纬度信息。实际应用结果表明,该发落点窗可以很好的满足项目的实际需要,并且能够方便的移植到新的项目中去,在不同的平台上表现一致。

4 结论

本文提出一种在Qt平台下开发的基于OpenGL和GDAL的曲线绘制和显示技术。该技术可以方便灵活地在雷达显示软件中显示弹道导弹的落点和发点信息,丰富了雷达显示软件对弹道目标的显示效果。其中,GDAL库的使用不仅降低了绘制窗体模块中地理信息的难度,而且提高了绘制和显示的精度。该技术已经在多款雷达显示软件中得到应用。应用结果表明,该技术可以清晰流畅且直观地显示落发点的变化情况。从而,让操作员更好、更直观的观察到弹道导弹的落发点变化趋势,以此辅助操作员对目标类型和目标的危险等级做出更加精准的判断。

【参考文献】

[1]陈星雨.基于OPENGL和GDAL的卫星遥感图像处理系统的研究[D].广州:华南理工大学,2013.

[2]Dave Shreiner.OpenGL Programming Guide.[M].Seventh Edition.机械工业出版社,2010.

[3]郜风国,冯峥,唐亮,等.基于 GDAL 框架的多源遥感数据的解析[J].计算机工程与设计,2012,33(2):760-765.

[4]Open Source Geospatial Foundation.GDAL-Geospatial Data Abstraction Library [EB/OL].(2010-04)[2010-06].http://www.gdal.org/.

[责任编辑:田吉捷]