基于WebGL的航道数据组织与三维可视化方法 | ![]() |
2. 山东理工大学建筑工程学院,山东 淄博,255000;
3. 天津大学海洋科学与技术学院,天津,300072
2. School of Civil and Architectural Engineering, Shandong University of Technology, Zibo 255000, China;
3. School of Marine Science and Technology, Tianjin University, Tianjin 300072, China
伴随着航道养护工作的持续进行,各港口积累了大量的水深数据。在发展趋势上,航道应用正向Web端迁移[1],然而航道水深数据量大、密集度高、可视性差,同时受限于网络传输、浏览器性能、兼容性等因素,在Web端进行航道三维可视化仍有提升空间。Web图形库(Web graphics library,WebGL)技术的出现为Web端的三维可视化提供了新的解决方案,尽管WebGL有诸多技术优势[2-4],但仍缺少一种行之有效的数据组织与可视化方法来直观展现海量水深数据的分布与变化。
国内多名学者对三维航道快速构建与可视化方法开展了研究。杨东远等[5]应用GIS与三维可视化技术建立了天津港三维港区与航道系统,对大型场景的动态组织与可视化技术进行了研究。也有学者对海底地形模型的构建与可视化中的关键技术和方法进行了系统化研究[6-8]。范瑞杰[9]对海底地形建模方法的适用性进行了研究,应用OpenGL三维图形库对海底地形真实感技术进行研究。毕金强等[10]根据航道实体要素地理位置分布的层次性与关联性,运用时空GIS建模、地形场景构建、离散数据插值等技术,实现了空间和时间维度的可视化表达。
可见,国内对水下测量数据的组织方法和水下地形构建技术开展了大量研究,但是对Web端数据一体化管理和WebGL三维可视化方法研究较少,体现在如下方面:①多以单时刻的数据为研究对象,缺少对长时间序列的管理和可视化;②可视化依赖复杂的数据模型构建过程,预处理时间比较长,需要人工参与;③开发方式多为单机版,Web端的三维显示系统较少,不利于数据的共享。
在Web显示方面,一般通过三维数据建模[11, 12]或者预处理生成地形模型文件[13, 14],然后借助可视化插件实现地形可视化,需要长时间的数据处理过程,难以满足水深数据的即时显示要求,而且处理后的模型文件占用空间大、可读性差、解析难度大,难以满足Web端轻量级数据交换的要求。此外,Web端的显示效率和显示效果受网络传输、浏览器性能、兼容性等影响较大。由此可见,常规方法在Web端并不适用。
本文以某沿海港口多年积累的航道水深测量数据为基础,对海量航道水深数据的组织方法和水下地形的实时可视化技术展开研究,提出了一种多维度数据索引构建方法,实现了海量数据的快速增量入库和高效检索。在此基础上,研究了基于WebGL的三维航道可视化方法,实现了三维地形模型构建和可视化渲染。
1 多维度数据索引构建方法 1.1 航道水深数据特征分析水深数据具有海量、多源、异构、多尺度、时空性的特点。区别于一般水深测量数据,航道水深测量数据受航道养护工作的影响,在深度分布和变化上具有显著特征。在Web端的应用中经常遇到数据来源不统一、数据格式不规范、空间参考不一致、测量尺度不匹配、数据范围重叠等问题。
这些问题产生的主要原因是水深数据具有多维特性,仅从单维度无法准确表达其特征。要实现水深数据的高效组织与管理,需要分析数据维度及数据内容,建立面向多维度的数据索引。通过梳理与归纳,航道水深数据具有时间、空间和工程3个主要维度,各数据维度的具体内容见表 1。
表 1 航道水深数据维度 Tab.1 Dimensions of Channel Water Depth Data |
![]() |
1.2 多维度数据索引构建方法
多要素数据索引的快速构建既要基于航道水深数据维度,又要兼顾航道应用的需求。在时间、空间、工程3个维度基础上,面向空间查询、浅点分析、疏浚分析、冲淤分析等航道特有的数据查询和分析需求,将空间分布特征和关联关系索引到数据中。多维度数据索引的构建内容如图 1所示
![]() |
图 1 多维度数据索引构建 Fig.1 Construction of Multi-dimension Data Index |
1)基于航道特征的多层次网格索引构建。网格层次的划分影响数据过渡的平滑程度,层级越多,过渡越平滑,数据索引效率越低。建立起航道、航段、位置的多层次网格拓扑关系,对网格和水深点构建空间索引。对于已构建的网格,通过叠加分析求出其与上级网格的拓扑关系,并应用R树算法构建空间索引;对于水深点,通过与多层次网格进行叠加分析,建立其与网格的关联。多层次网格索引构建示意图见图 2。
![]() |
图 2 多层次网格索引构建 Fig.2 Construction of Multi‐level Grid Index |
2)基于测量工程的时空数据关联。以测量工程为基础既符合数据自身特征,又契合航道管理的需求。针对工程范围重叠和测量时间相近现象普遍存在的情况,建立水深点与时间和工程的双向关联,增加水深点测量时间,并构建多尺度的时间索引。这样既能根据测量工程正向查询水深的分布数据,又能根据水深点反向查询测量工程信息,同时也支持按时间序列对水深数据和测量工程进行回溯。
1.3 多维度数据索引的检索方法基于多维度数据索引,通过多维度组合的方式提供不同应用场景下的数据检索。
时空高效检索是航道数据管理和可视化的基础,基于多维度数据索引,可以按照时间范围、空间范围和多层次网格快速筛选包含数据的网格,然后结合稀疏化算法检索出所需的水深点。
航道浅点分析为通航和疏浚提供重要参考,常规的做法是数据遍历,但查询效率低。基于多维度数据索引可将分析单元由水深点转为航段或网格,并发挥数据库嵌套查询的优势,提高查询效率。
疏浚分析为航道养护工程提供决策支撑,计算复杂且耗时长。基于多维度数据索引结合空间分析和多层次网格可将疏浚前后的水深分布及疏浚深度存储到网格中,然后运用R树空间索引快速筛选工程数据。
1.4 索引构建效率分析海量数据入库是实现水深数据统一管理的前提,常规方法是不经任何处理,将原始水深数据直接存储入库。这种方式具有结构简单、存取方便、入库效率高等优点,但是查询效率低。基于多维度数据的索引构建包含大量预处理运算,为了获得高效查询,牺牲了一定的数据入库效率。为了分析索引构建对数据入库效率的影响,本文选取多组测量数据进行分析,对比常规方法与本文方法的耗时,具体信息如表 2所示。
表 2 索引构建对入库效率的影响 Tab.2 Influences of Index Construction on Storage Efficiency |
![]() |
实验结果表明,索引的构建对数据入库效率有一定的影响,考虑到在实际应用中数据入库以工程为单位进行,总体耗时少,且入库频率低,与查询分析效率的显著提升相比,该影响可忽略不计。
2 基于WebGL的三维航道可视化本文从两方面开展基于WebGL的三维航道可视化研究:①研究高效的三维地形模型构建方法,能够快速构建航道三维地形模型;②基于三维地形模型完成离散水深数据到水下地形曲面的转换,实现数据即时渲染。
2.1 三维地形模型构建1)航道地形模型构建流程分析。由于航道的几何形态曲折、河道宽窄不一、水深分布复杂,基于规则格网和基于等高线的方法无法准确表达航道特征,不适用于三维地形模型的构建。基于不规则三角网的方法因其高效的存储效率、简单的数据结构和对特征地形的准确表达,成为航道地形模型构建的常用方法。
构建地形模型的流程为:按照空间特征或航行尺度将航道划分为若干区块,采用逐点插入法分别对每个区块构建不规则三角网[15, 16],再将相邻区块接边整合到一起。为了得到高精度的地形模型,可采用网格点内插技术对各区块的三角网进行细化。区别于宽阔水域,航道的形态狭长且曲折,水深测量数据多呈条带状分布,直接对其构建Delaunay三角网会在边缘外产生冗余三角形,如图 3(a)所示。
![]() |
图 3 基于边界约束的三角网优化 Fig.3 Optimized Triangle Network Based on Boundary Constraints |
出现这个问题的原因是,Delaunay三角网的构建依据是任意三角形的外接圆,最外层的边界形成一个凸多边形的外壳,外壳内的三角形都被作为目标三角形提取出来。为了准确表达航道特征,需要识别并滤除冗余多边形。本文设计了基于边界约束的三角网优化方法,通过生成边界的凹包多边形,并滤除掉边界以外的冗余数据,得到符合航道特征的水下地形模型。
2)基于边界约束的冗余三角形滤除。从图 3(a)可以看出,冗余三角形多为狭长的钝角三角形,根据这个特点,可限定边界长度和内角角度来识别冗余三角形。从三角网的最外层边开始遍历,不断删除超过长度限值的边,最终得到所求的边界。该方法过程简单,但需要对所有三角形进行判断,效率不高,而且在边界处的准确度不高。
本文从三角形与边界的拓扑关系出发,使用质心求交的方法实现冗余三角形的过滤。存储三角网的顶点与三角形的对应关系,结合质心求解公式建立三角形与质心的映射关系,得到顶点、三角网与质心三者的关联关系,通过对凹多边形与质心求交运算检索出冗余多边形。该方法将分析对象由边线转变为质心,减少了运算次数,并能利用空间查询的优势,提升了计算效率。
3)基于alpha-shape算法优化的自适应边界提取方法。alpha-shape是一种经典的点集轮廓提取算法,它在对无序点集构建凸包的基础上扩展了一个可设定参数α,用于控制轮廓信息的精确程度[17-19],其构建过程可想象为一个半径为α的球在点集上不停滚动,掠过的点集建立连接关系形成面,类似于为多边形的边给出一个长度限制,如图 4所示。α越大,边界越接近凸包;α越小,边界越倾向于在一定位置凹陷进去。
![]() |
图 4 利用alpha‐shape提取轮廓 Fig.4 Boundary Extraction by alpha‐shape |
α的动态确定是准确提取边界的关键,α过大则会影响提取边界的精度,过小则无法保证边界的完整性。由于水深测量精度不尽相同,需要根据数据情况动态确定α的取值,因此,研究水深数据与α的对应关系,制定自适应的动态α调整策略对自动化处理至关重要。
根据相关研究,α值取平均点间距的1~2倍时,得到的点集形状相对完整又不会太破碎[20]。考虑到水深点密度与测量所采用的测图比例尺有直接的关系,可以估算出不同比例尺对应的邻近点距离的取值范围。《水运工程测量规范》中规定了不同测图比例尺对应的定位点点位中误差限值,比例尺精度表示地形图上一段距离所表示的实地水平距离,因此,通过求出不同测图比例尺对应的点位实地距离限值,即点间距的最大值,进一步得出α值的参考范围。经计算,不同测图比例尺对应的α值的参考范围如表 3所示。α值确定后即可利用alpha-shape算法生成凹包多边形。
表 3 不同测图比例尺对应的α值参考范围 Tab.3 Reference Ranges of α Values at Different Mapping Scales |
![]() |
2.2 真实感可视化渲染
Web环境下的可视化渲染有两种实现方式:①通过网格剖分构建多边形集合来拟合逼近地形曲面,对地形数据进行内插、剖分等处理[9],计算方法简单,但是数据冗余大,显示效果受采样密度影响较大;②构建曲面拟合算法,通过数据预处理生成精细的栅格化数据,这种方式运行在中央处理器(cen- tral processing unit,CPU)上,对运算效率和数据存储的要求较高,不适用于大场景的显示渲染。
本文应用WebGL的可编程管线进行三维航道的可视化,充分发挥图形处理器(graphics processing unit,GPU)的数据处理和图形渲染能力。可编程渲染管线是将三维顶点加工转换为离散像素点的一系列处理流程,相比固定渲染管线,它将顶点着色器和片段着色器由可配置改为可编程,可根据具体需要来编写顶点渲染和像素渲染中的处理逻辑,实现场景定制化显示。
图 5为应用可编程渲染管线进行三维航道显示的流程,可编程渲染管线包括数据输入、顶点着色器、图片装配、光栅化、片元着色器、片元测试与融合、图形输出等环节。
![]() |
图 5 基于可编程渲染管线的显示流程 Fig.5 Display Process Based on Programmable Rendering Pipeline |
应用上述流程和方法,实现了基于光照的明暗处理显示和基于深度的分级设色显示,能够表现地形的起伏变化,如图 6所示。经测试,实验区域约有3万个水深点,在处理器Intel i7 -4790@3.6 GHz 4核、显卡NVIDA Quadro K620、分辨率1 024×768像素的环境下,每秒传输帧数保持在40以上,显示流畅,能够满足实际要求。
![]() |
图 6 三维航道显示效果图 Fig.6 Display Results of 3D Channel |
3 结束语
本文在分析航道水深数据特征的基础上,对Web环境下的航道数据组织和三维可视化方法进行研究,提出了一种基于多维度数据索引构建方法和边界约束的航道地形模型构建方法,基于WebGL技术实现了三维航道地形显示。
该方法在实验港区取得了成功应用,验证了其可行性和正确性,能够满足航道养护管理部门的实际需求。下一步将验证方法的普适性,并从真实感和效率上进行提升和优化。
[1] |
梅文胜, 李天骄, 于安斌. 海量地铁隧道点云数据管理与Web快速可视化方法[J]. 测绘地理信息, 2021, 46(2): 1-6. |
[2] |
牛艺博. 基于WebGL的地理信息三维可视化技术研究[D]. 兰州: 兰州交通大学, 2015
|
[3] |
王成雷, 连懿, 曾晓明, 等. 基于WebGL的三维点云可视化研究[J]. 科技创新与应用, 2017(35): 41. |
[4] |
陈育才, 叶美芬. 基于WebGL的三维模型组织与发布关键技术[J]. 测绘地理信息, 2020, 45(1): 84-86. |
[5] |
杨东远, 牛桂芝, 杨凯, 等. 三维航道GIS中大型场景的动态组织与可视化技术研究[J]. 水道港口, 2008, 29(2): 143-147. DOI:10.3969/j.issn.1005-8443.2008.02.013 |
[6] |
贾俊涛, 翟京生, 孟婵媛, 等. 基于海量多波束数据的海底地形模型的构建与可视化[J]. 测绘科学技术学报, 2008, 25(4): 255-259. |
[7] |
贾俊涛, 孟婵媛, 谭冀川, 等. 基于海量海底地形数据的存储和可视化研究[J]. 海洋测绘, 2009, 29(1): 31-34. DOI:10.3969/j.issn.1671-3044.2009.01.010 |
[8] |
贾俊涛, 谭冀川, 陈长林, 等. 海底地形水深三角网重采样技术研究[J]. 海洋测绘, 2017, 37(3): 63-65. DOI:10.3969/j.issn.1671-3044.2017.03.015 |
[9] |
范瑞杰. 真实感海底地形三维可视化实现技术[D]. 郑州: 信息工程大学, 2013
|
[10] |
毕金强, 辛全波, 许家帅, 等. 航道通航时空数据组织与可视化表达研究[J]. 山东科学, 2018, 31(4): 110-117. |
[11] |
伍莉, 彭文. 长江航道水下地形三维可视化研究[J]. 海洋测绘, 2008, 28(4): 27-29. |
[12] |
眭海刚, 张安民, 万大斌, 等. 三峡航道三维可视化与分析系统的设计与实现[J]. 人民长江, 2005, 36(11): 8-11. |
[13] |
邱秋香. 三维海底地形仿真技术的研究与实现[D]. 哈尔滨: 哈尔滨工程大学, 2011
|
[14] |
张建春. 长江航道三维可视化系统设计与实现[J]. 海洋测绘, 2017, 37(3): 66-69. |
[15] |
闫循鹏, 马丹, 于宗泽, 等. 基于CGAL和OpenGL的海底地形三维可视化[J]. 海洋信息, 2020, 35(1): 35-39. |
[16] |
陈士杰, 张森林, 刘妹琴, 等. 基于改进Delaunay三角剖分的水下地形三维重建算法[J]. 计算机科学, 2020, 47(11): 137-141. |
[17] |
廖中平, 陈立, 白慧鹏, 等. 自适应α-shapes平面点云边界提取方法[J]. 长沙理工大学学报(自然科学版), 2019, 16(2): 15-21. |
[18] |
Gardiner J D, Behnsen J, Brassey C A. Alpha Shapes: Determining 3D Shape Complexity across Morphologically Diverse Structures[J]. BMC Evolu- tionary Biology, 2018, 18(1): 184. |
[19] |
伍阳, 王丽妍, 胡春霞, 等. 可变半径Alpha Shapes提取机载LiDAR点云建筑物轮廓[J]. 中国图象图形学报, 2021, 26(4): 910-923. |
[20] |
沈蔚, 李京, 陈云浩, 等. 基于LiDAR数据的建筑轮廓线提取及规则化算法研究[J]. 遥感学报, 2008, 12(5): 692-698. |