APP下载

自适应屏幕分辨率的海底地形建模研究

2022-05-14徐建华曾艳阳李晓明

计算机仿真 2022年4期
关键词:海图插值水深

徐建华,顾 浩,曾艳阳,李晓明

(1. 三江学院,江苏 南京 210012;2. 西北工业大学,陕西 西安 710072;3. 河南理工大学,河南 焦作 454000)

1 引言

海底地形三维可视化建模具有较高的应用价值,可以为无人航行器水下作业呈现、海底隧道建设论证、海洋作战演练等提供基础平台。由于水声测量方法的局限性,海底和陆地地形在数据获取方面相比,具有难度大、成本高、精度低和稀疏性等特点。为此,海底地形在建模时有必要对现有水深数据进行插值。Lv C等[1]为使海底地形模型具有更好的精度,提出了一种改进的分数布朗运动(fBm)和改进的迭代函数系统(IFS)的复合分形插值算法;Chen P等[2]利用分形布朗运动模型提取局部水下地形的分形特征,并用分形理论补偿了克里金法的可能误差,提出了一种基于这种分形补偿的改进的克里格插值方法;Liu L等[3]采用移动面思想,利用海床地形的局部自相似性,利用分形插值法将由中心插值单元周围的单元组成的矩形子场映射到插值单元;成毅[4]基于逆距离权重插值方法,获得网格交点的高程值,在此基础上,在OpenGL中建立DEM模型;刘锋等[5]利用ISO8211类库,提取S-57电子海图原始文件的矢量水深数据,依据这一组水深数据进行Biharmonic曲面样条插值,计算出一组曲面上的网格点处的坐标数据,从而实现对该海区内海底地形的可视化仿真;潘竹炉[6]基于二维电子海图中离散水深数据通过分形曲面插值算法构建数字高程模型,并通过三维地形建模最终实现海底地形的三维可视化的解决方案。以上国内外海底地形建模研究中,在对水深数据插值时,插值点的数量缺乏定量化计算方法,网格数需要人工反复调试才能与设备的显示能力相匹配,建模效率不高。为了解决该问题,提出一种自适应屏幕分辨率的海底地形三维可视化建模方法。

2 自适应屏幕分辨率的海底地形建模方法

2.1 海底地形三维可视化建模流程设计

自适应屏幕分辨率的海底地形三维可视化建模流程图如图1所示。首先从电子海图中提取水深数据,利用三角形内插法得到网格顶点高度值,然后将海底地形水平面均匀划为初始二维网格,最后使用函数获取显示设备的屏幕分辨率,根据设计的定量化计算公式计算出插值点数,采用多项式拟合法对初始网格顶点高度值进一步内插,生成海底地形细分三维网格。

图1 自适应屏幕分辨率的海底地形建模流程

2.2 海底地形水深数据提取

电子海图是公开发行的资料,内含海流、水系、港口设施、水深等多种信息,其中第10层信息为水深数据。从电子海图中获取水深数据的步骤:第一步是读取电子海图头文件。电子海图头文件包含了整个电子海图的基本信息,从电子海图头文件中读取出水深数据层信息。第二步是将水深数据层中的位置信息从直角坐标转换成地理坐标。第三步是将转换后的地理坐标和水深数据存储在文本文件中,从而得到离散的水深数据点。以上方法得到的水深数据是离散的采样点,缺乏有规律的分布。为此采用文献[1]中的三角形内插法对水深数据进行内插,将内插后得到的分布规律的水深数据值作为初始二维均匀网格顶点的高度值。

2.3 基于屏幕分辨率的定量化插值

屏幕分辨率是指显示设备屏幕水平和垂直方向上的像素点数,单位为px。屏幕分辨率确定显示设备屏幕上显示信息的多少[7]。显示设备的展示效果随着分辨率的提高而变得更加精细[8]。因此屏幕分辨率成为人们直观地观察仿真模型一个重要的约束条件[9-10]。

为构建与屏幕分辨率相适应的可视化仿真模型,有必要对初始二维均匀网格进一步细分。为此引入单元网格像素值来定量化计算插值点数,具体求解方法如式(1)所示

(1)

式中:Qint er表示插值点数;PHscrRes表示屏幕水平方向的分辨率;PVscrRes表示屏幕垂直方向的分辨率;Ninitial表示初始二维均匀网格在与Max(PHscrRes,PVscrRes)取值方向一致的方向上的网格数;通过函数Max(PHscrRes,PVscrRes)取屏幕分辨率中较大像素值代入公式计算,目的在于能够获得更加精准的海底地形;α表示初始二维均匀网格的单元网格直角边的像素值。单元网格是构建海底地形的基本三角形,如图2所示,单元网格直角边像素值α由建模开发人员根据经验事先确定。

图2 单元网格

根据求解得到的插值点数Qint er,就可以对海底地形初始二维网格进行细分,构建出与屏幕分辨率相适应的细分的二维网格。为获得细分后的网格顶点的高度值,采用二次三项式拟合法对水深值进一步内插。二次三项式如式(2)所示

z=ax2+bx+c

(2)

式中:z表示海底地形网格顶点的高度值;x表示初始网格顶点在与Max(PHscrRes,PVscrRes)取值方向一致的方向上的坐标值;a、b、c分别为二次三项式系数。

将原有水深数据每三个数据划分为一组,例如选用紧邻的水深数据点n1(x1,z1)、n2(x2,z2)、n3(x3,z3)、代入式(2)得到式(3)

(3)

例如n1(10,66.2)、n2(20,59.5)、n1(30,63.8)代入式(3),可以求得a=0.055,b=-2.32,c=83.9,拟合得到的二次三项式如式(4)所示

z=0.055x2-2.32x+83.9

(4)

根据式(4)就可以计算这一组水深点之间的内插点,如图3所示,图中实心点为插值点,空心点为初始点。内插点的数量可以通过式(1)计算得到。在水深点分组过程中采用递推法,将网格顶点nk、nk+1、nk+2作为一组,下一组网格顶点选用nk+3,同时删除掉nk,即建立新的一组网格顶点数据nk+1、nk+2、nk+3,如此循环,建立多组网格顶点数据;其中,nk表示第k个网格顶点,nk+1表示第k+1个网格顶点,nk+2表示第k+2个网格顶点,nk+3表示第k+3个网格顶点。

图3 水深数据插值点

将插值得到的水深值作为细分后的海底地形网格点的高度值,即可生成海底地形三维可视化网格。

3 仿真分析

图4 海底地形初始二维网格

将海底地形的水平面均匀划分为如图4所示的4×4的初始二维网格,该网格模型由32个三角形,25个顶点构成。提取电子海图上黄海局部海域的水深数据,经过三角形内插法得到如表1所示的水深值。这些水深数据作为初始二维网格顶点的高度值。

表1 黄海局部海域的水深数据(单位:m)

使用检测函数window.innerWidth()和window.innerHeight()自动获取当前显示设备的水平分辨率为800px和垂直分辨率为600px。设定单元网格直角边像素值α为40px,根据式(1)就可以直接计算得到海底地形初始网格插值点数为3。在此基础上采用二次三项式拟合法进行内插,得到如表2所示的水深值。

表2 插值得到的水深数据(单位:m)

根据插值点水深值生成如图5所示的海底地形细分三维网格,该网格模型由450个三角形,256个顶点构成。

图5 分辨率为800×600时海底地形三维网格

为进一步验证本方法的可行性,还分别在在显示设备屏幕分辨率为1024×768和1600×900的情况下进行是实验,得到如表3所示的屏幕分辨率及海底地形主要参数。

表3 屏幕分辨率及海底地形主要参数

仿真结果表明本文方法能够根据显示设备的屏幕分辨率定量化求解海底地形水深数据插值点的数量,屏幕分辨率越高海底地形的定点数和三角形数越多,使得建模精度随着屏幕分辨率的提高而增加。

4 结论

本文提出了一种自适应屏幕分辨率的海底地形三维可视化建模方法。将海底地形的水平面均匀划为初始二维网格,提取电子海图中的水深数据,经初步内插得到的水深值作为网格顶点的高度值,根据屏幕分辨率求解细分网格的插值点数,进一步内插得到插值点的水深值,构建出海底地形细分三维网格。减少了建模人员调试工作量,使得海底地形建模精度与屏幕分辨率相适应,提高了海底地形建模效率和准确度。

猜你喜欢

海图插值水深
基于嵌入式技术的电子海图系统硬件设计
无定河流域降水量空间插值方法比较研究
纸海图AI小改正制作模式探讨
福州市PM2.5浓度分布的空间插值方法比较
趣图
不同空间特征下插值精度及变化规律研究
民用海图编绘中数据一致性分析和改进
关于电子海图单元叠盖拼接问题的探讨
水缸的宽度,要不要?
基于混合并行的Kriging插值算法研究