杨 凯,沈小明,杨东远,牛桂芝
(交通部天津水运工程科学研究所,天津 300456)
目前,国内海岸河口数学模型研究理论和方法已经非常成熟,如交通运输部天津水运工程科学研究院在海岸河口数学模型研究领域起步较早,先后完成多项大型河口、海岸工程二维潮流数学模拟。其经过多年研究开发的TK-2D海岸河口多功能数学模型软件包,解决了海岸河口科学研究中涉及“五场”的很多实际工程问题,得到广泛的工程应用[1]。
在数学模型的可视化研究方面,20世纪90年代已有学者在DOS平台下利用FORTRAN语言实现了二维流场的动态实时模拟[2]。近年来又有学者利用GDI+实现了在WINDOWS平台上运行的二维动态流场实时模拟[3]。尽管在海岸河口潮流数学模型的三维表现方面已经有一些研究成果,如长江口三维数值模拟可视化系统[4],但三维可视化效果并不好,无法满足工程应用。目前国内用GIS地形建模与数值模拟关键算法相结合,能够真正实现潮流动态模拟与三维地形场景无缝融合的三维可视化系统还不多见。
而河口与海岸环境中的流动具有明显的空间三维特性,随着计算机软硬件的更新换代、空间数据库和图形图像处理技术的不断发展,用GIS技术、三维虚拟仿真技术和潮流数值模拟关键算法来构建动态可视化演示,成为海岸河口数学模型研究的发展方向之一。
本文研究的潮流三维动态可视化模拟系统定位为海岸河口数学模型计算结果的科学可视化,系统以多种成熟的水动力数模计算软件的计算结果为基础数据,实现数据可视化动态模拟,强调潮流实时动态模拟效果及与三维地形场景的无缝融合,并重点关注系统提供的多角度、多维度、多层次的表现方法和视觉效果。
系统将应用于海岸河口数学模型计算研究后期对计算结果的可视化表现,通常应用环境为模型成果演示、会议讲解、验收汇报等,具有直观明了、科学严谨、通俗易懂等优点。
系统借鉴了主流架构和设计模式,以保证目标的实现。采用分层的模式对系统功能进行了分解(图1)。
第一层为三维数据显示引擎。系统采用国际标准的OpenGL图形引擎库作为系统数据显示部分的核心支撑,并采用在OpenGL之上进行高级分装的OSG图形开发包作为与三维引擎的接口。第二层为数据管理层。负责处理各种格式数据的组织和管理,实现各种数据处理的算法分装对第一层和第三层操作接口。第三层为具体应用层。创建实际应用程序的界面和根据具体的业务逻辑实现相应的业务功能。
以上3层抽象出系统中复杂的数据、显示和控制的逻辑关系,为系统的可定制、可扩展和可维护3个主要目标打好基础。
系统涉及到的基础数据包括潮流数学模拟数据文件和模型网格节点关系文件。潮流数学模拟数据文件为二进制格式文件,存储了每个网格节点的坐标、流速分量和潮位;模型网格节点关系文件为文本格式文件,每一行存储一个网节点的数据,分别是水深值、x坐标、y坐标、该节点周围三角形个数及该网节点周围按逆时针方向的网节点号。
模型网格节点关系文件并不是可以直接用来建模的GIS标准数据,因此要对其进行相关的处理。
(1)由自主开发的程序,读取模型网格节点关系文件中的水深数据,将其转化成bmp格式的位图文件(图 2-a)。
(2)在Photoshop软件平台下,借助多边形套索工具将图2-a有数据的地方框起来,在陆域范围填充黑色,在水域范围填充白色,形成如图2-b的水陆分界图,并保存成bmp格式位图文件。
(3)在WorldMachine软件平台下,通过调整地形范围、加入地表特征等操作,形成具有高低起伏的等高图片,并保存为JPG格式文件。然后通过程序将其转化为标准的地理信息数据格式ASC文件。
(4)在地形建模软件Terrain Builder中加载ASC格式文件,经过设置地图投影和LOD层数后,以最优采样方式导出地形数字高程数据,显示效果如图3-a所示。
(5)最后将上述地理信息标准格式数据——数字高程数据导入本演示系统,系统通过不规则三角网(TIN)算法构网,自动建立三维地形[6](图 3-b)。
本系统应用的流场模拟数据为欧拉场数据,是针对每一个网格点,在不同时刻的采样数据。而在可视化模拟中,需展示的往往是动态轨迹,这种效果由很多瞬时数据快速切换才能体现。为将固定采样频率的数据转化成多个瞬时数据,就需要把欧拉场数据转化成拉格朗日场数据[7]。这个转换过程可以分为2个步骤。
采样数据的周期一般是60 min或30 min,记为一个时间块。为了表现瞬时的状态,需要将此时间块切分成n等分,并进行一次线性插值。例如n等份,就是每n/60 min插值出一个新的数据,每一等份(步长)的数据作为独立的一帧绘制数据,送给显卡进行绘制,插值数据包括方向和速度。
数学模型计算成果数据的采样点可能非常密集,如果直接进行模拟会使表现效果不佳,这时需要通过空间插值来完成“抽稀”的过程。
图4-a是8×8的采样数据,实际显示中可能只需要4×4的数据,因此需要通过空间插值来生成新数据。具体方法为用图4-a灰格子的4个点的数据进行混合插值生成一个新点的数据(图4-b)。空间插值完成后,原基础数据集会生成一个新的数据集数据,作为动态模拟数据。
图4 空间插值示例Fig.4 Spatial interpolation example
假设图5-a是设定的第一帧数据,即经过基于时间插值后的第一个60 min的数据,以其中位于网格3-1的这个点为例,在时间插值后,这个点具备了新的方向和速度。
下一个60 min,在方向和速度作用下,假设网格3-1这个点移动到了图5-b中网格2-2的位置。此时需要在原基础数据中获得网格2-2相对应的4个点的第2个60 min数据,然后进行空间插值获得2-2这个点第二帧新数据赋给2-2点,最后送给显卡完成第二帧的绘制。
以后帧数依次类推,最终完成所有帧的绘制,并实现这些帧的动态连续输出显示。
系统首先利用地形数据建立三维地形模型,放置在系统默认的三维仿真场景中。模型整体是一个由边框包围起来的矩形立方体,由于加载了模型区域的数字高程模型,模型表面依照数据表现出起伏,并通过理论潮面的定义形成陆域和水域边界。
图5 时间和空间插值的混合使用Fig.5 Mixed use of time interpolation and space interpolation
系统提供了多维度鼠键结合的操作方法。鼠标左键可完成模型的平移操作,鼠标右键可完成模型上下、左右旋转操作。键盘操作定义见表1。
本系统共开发了矢量箭头和示踪粒子2种流场动态模拟方式。模型整体布局合理、配色方案美观,动态模拟效果流畅。通过工具栏按钮可以控制模型开始、暂停、停止,通过模拟控制面板可以调整模拟开始时间、模拟结束时间,设置模拟当前时刻,还可以在水域任意位置布设潮位站并以动态相位图的形式显示该站的潮位情况。
在矢量箭头模拟方式下,可以进行箭头线宽、箭头颜色、网格大小、每个网格箭头数等参数的设置;在示踪粒子模拟方式下,可以进行粒子样式、粒子大小、粒子个数、粒子尾迹等多种参数的设置。
表1 键盘键位与模型动作对照表Tab.1 Keyboard and motion control table
系统提供了用鼠标任意画剖面线生成断面及通过设置模型纵向X值、横向Y值生成纵横断面的功能。
用鼠标任意画剖面线生成断面模式下,按住鼠标左键在模型区域范围内任意画线段,系统自动根据所画剖面线生成该位置的模型断面图。
通过设置断面X值、Y值来生成纵横断面模式下,假设在操作面板中设置纵剖值为a,则系统自动以X=a线段为剖面线生成模型纵断面图;假设在操作面板中设置横剖值为b,则系统自动以Y=b线段为剖面线生成横断面图。
系统共提供了二视图、四视图2种模式下的多方案演示与对比联动操作。在多视图模式下,用户可以为每个视图调用不同的模拟方案,并为模型进行不同配置,用鼠标操控任何一个视图中的模型,其他视图自然联动,协调一致。此功能用于模型多种数模方案结果比对的效果观察。
系统有两方面的交互功能,一种交互是用户可以通过操作向模型场景中植入外部建筑三维模型,并对重要地理要素进行标注;另一种交互是用户可以用鼠标在模型水域自由布设示踪粒子,并用布设的粒子开始流场模拟。交互功能的开发使系统与用户交流更加灵活方便,并避免了利用随机算法布设示踪粒子时可能产生的分布不均或用户关注区域无粒子的现象。
海岸河口数学模型可视化模拟是水动力科学研究和重大项目决策的重要参考之一。本系统应用GIS成熟的地形建模技术、三维仿真渲染技术构建三维地形场景,利用水动力模拟关键算法建立二维潮流模拟,并实现二维潮流模拟与三维地形的无缝融合,真正实现了数学模型动态模拟的三维仿真可视化。
系统很好地解决了二维动态潮流实时模拟中模型不精细、场景不真实的问题,解除了观察角度、缩放比例无法变换的限制,而断面分析、方案对比、实时交互等功能更增加了系统的实用性。
系统正在向3个方向进行深层次开发:(1)水动力模拟算法与系统剥离;(2)盐度场、温度场、悬沙场等模拟算法及三维可视化表现效果的开发;(3)探索地形与潮位互变的露滩、交互式流路追踪等复杂效果的三维可视化表现手法。
[1]李孟国,张华庆,陈汉宝,等.海岸河口多功能数学模型软件包 TK-2D 研究与应用[J].水道港口,2006,27(1):51-56.
LI M G,ZHANG H Q,CHEN H B,et al.Study on multi-function mathematical model software package TK-2D and its application for coast and estuary[J].Journal of Waterway and Harbor,2006,27(1):51-56.
[2]张征,李蓓.大屏幕图形显示系统软件的开发与研究[J].水道港口,1993(4):32-34.
ZHANG Z,LI B.Software Development and Research to Large Screen Visualization[J].Journal of Waterway and Harbor,1993(4):32-34.
[3]康苏海.利用 GDI+实现二维动态流场实时模拟[J].水道港口,2009(6):390-393.
KANG S H.Technology of real time animation on 2D flow with GDI+[J].Journal of Waterway and Harbor,2009(6):390-393.
[4]辛文杰,陈志昌,罗小峰.河口海岸数值模拟可视化系统[C]//中国海洋工程学会.第十二届中国海岸工程学术讨论会论文集.北京:海洋出版社,2005.
[5]康苏海.河流水流泥沙数值模拟结果等值线绘制技术研究[J].水道港口,2009(4):267-271.
KANG S H.Study on Contour-map technology of numerical simulation of flow and sediment transport in river[J].Journal of Waterway and Harbor,2009(4):267-271.
[6]杨凯,索利利,牛桂芝,等.水深测量数据的组织管理与三维可视化[J].水道港口,2008,29(4):296-300.
YANG K,SUO L L,NIU G Z,et al.Organization and 3D visualization for conventional measuring data of water depth[J].Journal of Waterway and Harbor,2008,29(4):296-300.
[7]杨凯.海岸河口模型三维动态可视化演示系统项目技术报告[R].天津:天津水运工程勘察设计院,2009.