一种基于高程数据的全球地形高度检测方法

2022-08-23 06:49孙韶杰
网络安全与数据管理 2022年7期
关键词:经纬度分块高程

吴 琼,孙韶杰,于 澜,苏 迪

(1.空军研究院特种勤务研究所,北京 100195;2.空军石家庄飞行学院 飞行模拟训练中心,北京 100195)

0 引言

在飞行模拟器训练领域,无论是模拟器飞行控制系统、航路规划系统,还是三维态势显示系统,都需要实时获得实体(飞机、武器、碰撞等)当前位置的地形高度,从而计算出实体相对地面的高度(简称无线电高度[1-3])。在飞行模拟器训练[4-6]中,视景系统需要实时返回无线电高度给飞行控制系统,用于判断飞机的碰撞状态等,同时在飞行电子仪表中显示该高度。弹丸航路点规划时需要知道航路点沿路的制高点,从而设定弹丸的发射高度。在三维态势显示系统中,地形高度有如下作用:(1)用于放置雷达阵地、地导阵地,由于导演部在下达作战任务时只给出阵地的放置经纬度,不明确给出高度,因此态势系统中需要通过阵地的经纬度来得到当前位置的地形高度,然后将阵地准确地放置在地面上;(2)在显示碰撞效果时,如果是对地攻击或撞地,需要根据给出的碰撞点的经纬度获取该点的地形高度,如果爆炸点位于地面附近,则在地面叠加爆炸凹陷特效。因此,实时、高效、准确地获取实体当前位置的地形高度十分重要。

飞行实体的地形高度获取方法通常有两种,一种是由虚拟三维场景图形工作站实时对地作碰撞检测得到地形高度,该方法耗费主视景渲染时间,如Mantis、Equipe图形工作站,偶尔会出现返回无效值;另一种是基于卫星影像的高程数据来得到地形高度。基于高程数据的地形高度检测方法相对于图形工作站返回地形高度,其优点是不耗费主视景渲染进程时间,且不会造成视景卡滞;缺点是目前基于高程数据的地形高度检测方法都是使用局部范围的高程数据,但应对大范围、长时间的飞行需求,单个高程文件的数据量会比较大,加载时间长,所以有的跨区域飞行还需要更换高程文件,而且每一套飞行系统需要重新提供该区域的高程数据,该高程数据仅包括主机场和备降机场在内的飞行范围。因此地形高度获取技术迫切需要改进。

基于此,本文旨在研究基于全球的高程数据,在确保实时性和准确性的前提下,提出一种全球范围内的地形高度检测方法。

1 全球地形高度检测算法

本文提出的基于高程数据的全球地形高度检测算法和全球卫星影像的高程数据可装载在一台服务器计算机中,用于实时接收客户端待查询的经纬度,然后将查询结果分发到各个客户端,如图1所示。其中客户端可包括三维态势系统[7-12]、飞行控制系统[13-14]、碰撞检测系统[15-16]、导调系统[17-19]、航路规划系统[20-23],以及所有其他需要获取给定经纬度位置的地形高度、相对地面高度的系统。

图1 全球地形高度检测的应用

全球地形高度检测算法总体流程分为两步,下面将分别从全球高程数据准备、地形高度检测算法两方面进行详细阐述,如图2所示。

图2 全球地形高度检测总体流程

1.1 全球高程数据准备

全球的卫星影像高程数据如果存储在一个文件中,则文件的打开速度会非常慢,因此从卫星影像数据中输出高程数据时,需要按度进行区域划分和规范化命名。

本文采用的卫星影像数据为世界范围内90 m分辨率的图像,文件格式为tif。输出的高程数据文件受采样间距和分块大小两个因素所制约,采样间距设置为400 m,200 m,90 m,分块大小有10°×10°,5°×5°,2°×2°,1°×1°。

全球经度范围定义为[-180,180],纬度范围定义为[-90,90],假设经纬度块的大小设置为m×n,则:

其中,Numlon是经度块的总块数,Numlat为纬度块的总块数。

高程文件需要进行规范化的命名,这样通过文件名称就可以快速地计算出该文件的经纬度范围,反之给定任意一个经纬度也可以快速得到所属文件名称。本文规定高程文件命名格式为World_xxx_yyy,其中xxx为三位表示的经度块编号,取值范围为[0,Numlon-1],yyy为三位表示的纬度块编号,取值范围为[0,Numlat-1]。给定某一高程文件名称为World_A_B,有:

则该文件的经度范围为[LonLL,LonRR),纬度范围为[LatLL,LatRR)。 反之亦然,假设给定某一经纬度为Longiven,Latgiven,有:

其中,floor()为向下取整操作,ceil()为向上取整操作,则该经纬度的高程数据属于文件World_C_D。

1.2 地形高度检测算法

快速、准确地检测给定位置的地形高度是检测算法的核心。

如图3所示,地形高度检测算法步骤如下:

图3 地形高度检测算法流程图

(1)输入待查询的经纬度。

(2)计算查询经纬度的高程所在文件:已知高程文件的分块大小,根据式(1)、(2)、(7)、(8)计算得到文件名称,如果文件不存在,则查询失败,直接返回。

(3)遍历高程数据存储数组demCache,判断该高程文件是否需要重新读取:如果文件以前打开过,读取过数据,则直接进入步骤(4);如果文件没有打开过,则重新打开,并且将新数据存入demCache,demCache设置存储上限,超出阈值则清空一半过期数据。使用demCache的目的是避免高程文件的重复打开,有效提高检测效率。

(4)基于数字高程模型(Digital Elevation Model,DEM)数据查询高度,输出检测结果:如果检测到,则返回检测点的地形高度;如果没有检测到,则返回无效值-9999。

基于DEM数据文件查询和计算地形高度的基本思想如图4所示,物体的海拔高度不同于地形高度,海拔高度是指某个位置高出海平面的垂直距离,而地形高度是指某个位置地面的高度[24]。仿真应用中武器和飞机目标都存在撞地的问题,本文按目标的平面坐标查询对应的地形高度,与目标实际当前高度进行比较,作为目标是否撞地的判断。

图4 地形高度检测的基本思想

将全球高程数据当作一个大矩形E,由查询经纬度 点P0(Longiven,Latgiven,10 000)、点P1(Longiven,Latgiven,0)的连线与矩形E求相交点Inter_p,具体描述如下:

(1)根据某个高程文件的头部可得到如下基本信息:行数nrows,列数ncols,最西经度xllcorner,最南纬度yllcorner,采样率cellsize(单位弧度)。

(2)定位待查询经纬度所在矩形F的范围:

(3)分别计算点P0到F的距离矢量d0,点P1到F的距离矢量d1,只有d0×d1≤0,才会存在交点Inter_p,即表明P0在地面上,P1在地面以下,P0、P1的连线与地形有交点。

(4)计算点P0到F面的相交点Inter_p,如果交点在矩形面内,则采用该交点值的高度作为待查询经纬度的地形高度检测结果;如果交点不在矩形面内,则说明交点处所需要读取的高程数据不在打开的高程文件范围内,需要遍历读取其他高程文件再重新计算。

2 实验结果及比较

采样间距、分块大小决定高程文件的读取速度,进而决定检测算法的执行效率。本文针对不同采样间距、不同分块大小情况,对高程文件的第一次读取数据、检测平均所耗时间进行了比较分析,如表1第3列所示。从表中可以看出,采样间距越大、分块越小,检测算法的执行效率越高。在文件已打开状态下,算法的检测耗时如表1第4列所示,从表中可以看出所耗时间相差不大,并且检测速度很快,这充分说明采用存储数组来保存若干高程数据的必要性,它能避免文件的重复读取,有效提高检测算法的执行效果。相比三维场景图形工作站实时获取地形高度方法,本算法由于不受主视景渲染时间影响,检测效率更加高效。

表1 检测算法的耗时对比表

综合考虑检测耗时和文件数量两个因素,本文采用200 m的采样间距,2°×2°的分块大小作为检测算法的高程数据参数设置,该设置能够较好地满足实时性要求。

检测时间是评价检测算法实时性能的一个重要指标,同样检测地形高度的准确性是评价检测算法的另一个重要指标。表2列出了200 m的采样间距,2°×2°的分块大小条件下,检测算法一系列的实验结果,其中第2列是在卫星影像中该经纬度的地形高度值,第3列是本文提出的检测算法计算出的地形高度值。从表2中可以看出,在采样间距的整数倍地理位置处的高程数据是完全和卫星影像中一致的,在其他地理位置处检测算法得出的高度值是插值的结果,最大误差率为0.34%,最小误差率为0。

表2 检测算法得出的地形高度值

3 结论

本文基于卫星影像高程数据,提出了一个全球地形高度检测方法,相比小范围检测,该方法具有三大特点:(1)高程数据不是存储在一个文件中,而是按度划分按需取用;(2)高程数据的读取速度快,满足体系对抗模拟训练实时获取地形高度要求;(3)地形高度的查询结果误差率低。下一步将把提出的地形高度检测方法应用到体系对抗模拟训练中,并且进一步完善。

猜你喜欢
经纬度分块高程
面向量化分块压缩感知的区域层次化预测编码
场景高程对任意构型双基SAR成像的影响
钢结构工程分块滑移安装施工方法探讨
海南省北门江中下游流域面积高程积分的应用
8848.86m珠峰新高程
一种面向不等尺寸分块海量数据集的并行体绘制算法
分块矩阵初等变换的妙用
基于经纬度范围的多点任务打包算法
基于二次曲面函数的高程拟合研究
自制中学实验操作型经纬测量仪