赵 平,杨健新
(珠江水利科学研究院,广东 广州 510611)
数据可视化技术从计算机图形学发展起来,最初用于制作图形图表[1]。随着计算机、互联网、物联感知等技术的迅猛发展,数据变得量级更大、维度更广,结构更复杂。人们想要更加清晰,快速地认知和理解一份数据,传统的二维平面图表已经不能满足需求,数据三维可视化技术通过构建基于现实的三维数字场景,让数据展现更为直观易用,迅速成为信息数字化管理的重要组成部分,被广泛应用到各行各业中。
我国幅员辽阔,山地众多,山洪灾害时常发生,威胁着人民的生命财产安全。在水利信息化的建设中,尤其是近年来在“智慧水利”项目中,山洪灾害防治系统已经成为水利信息化产业的重要组成部分,在防汛抗旱防台业务中发挥着非常重要的作用。海南省山洪灾害三维可视化系统将物联感知层、网络层收集的数据进行处理、分析,以图表、二维GIS等生动丰富的形式提供信息和分析结果,同时将复杂的水文模型、水动力模型、数学模型利用数据三维可视化技术进行模拟呈现,可快速并直观地为决策提供数据支持,从而实现科学评估。
海南省山洪灾害三维可视化系统主要依据地形地貌、植被水系等基础地理数据,并综合考虑当地交通通信以及社会经济状况等因素,在已划分的小流域基础上,选择山洪灾害易发区进行山洪灾害监测站点布设,建立水雨情监测站网,实现对暴雨洪水的实时监测、在线查询、预警发布等功能;同时依托计算机、网络等信息技术,基于建模软件以及面向对象的编程语言实现数据三维可视化系统的场景仿真、路径漫游、查询分析、快速渲染、服务发布等功能。
山洪灾害三维可视化系统建设流程主要包括数据汇集、分析处理、编程实现。首先从卫星遥感影像中提取数字线化图,通过航片制作正射影像图,还可以利用倾斜摄影测量技术获取精度更高的坐标、高度、地物纹理等数据,之后通过三维软件建立虚拟现实的可视化模型,三维可视化平台加载该模型后,即可在应用程序中存取或查询空间基础数据以及实时监测数据。山洪灾害三维可视化系统可将不同位置的三维模型、水雨情实时监测数据、气象预报服务、监测设备工作状态、社会经济资料等信息直观、形象地在三维可视化平台展示。
三维可视化系统主要实现的功能如下:
(1)地图操作:地图放大、缩小、平移、全幅显示、区域选择、区域切换、路径漫游等。
(2)图层控制:对三维场景模型、地理基础数据、业务监测对象等按不同类别分层管理。
(3)导航定位:以树形目录结构组织各类管理对象,用户可通过选择根目录下的各级子目录快速进入所关注的对象列表,并通过对象定位功能将地图视窗的显示范围自动导航到其所关注的目标区域。
(4)数据处理:包括地图编辑、地图配准、三维模型加载、数据导入导出等。
(5)三维仿真:系统可实现二维地图模式和三维仿真模式的一键切换,并在三维仿真模式下实现洪水演进模拟功能。
洪水演进三维模拟仿真主要工作内容包括:①水动力模型集成研究,完成洪水模拟与三维仿真模拟平台在线计算集成、数据高效存储读取、成果转换等一系列服务功能。②建立洪水演进模拟三维场景,在洪水淹没仿真时,能比较真实地还原客观三维世界环境。③完成洪水淹没三维仿真,将影像数据、倾斜摄影三维模型数据、洪水模型结果数据、地形数据进行融合表达,比较逼真地模拟洪水淹没情况。
3.1.1 HTML5
HTML5是互联网的下一代标准,是W3C推出的面向WEB应用程序的网页语言。从1990年HTML产生到1997年HTML4 成为互联网标准,再到2014年,升级改造后完整的HTML5 规范公开发布,该技术已广泛应用于互联网应用的开发[2]。HTML5 主要特点如下。
(1)跨平台
HTML5 强大的跨平台运行特性,可使利用该技术开发的WEB应用程序在PC浏览器和各类移动终端之间实现轻松移植。
(2)强化的展示性能
HTML5支持三维图形及特效,基于WebGL、SVG、CSS3及Canvas开发的3D功能,在WEB页面上强化了展示性能,从而在浏览器中展现惊艳的视觉效果。
(3)离线应用支持
HTML5通过本地内嵌SQL数据库,支持离线应用。离线时,数据在本地存储,在线时,同步到服务器上。该技术可改善交互式搜索、索引以及缓存功能,在离线状态下仍可获得满意的动画效果。
(4)本地数据库功能
HTML5增加了web storage本地存储功能,该数据库是一个浏览器端的数据库,虽然是一个小型数据库,但它扩展了传统HTML的特性,具有可存储数据量更大,不与服务器交互通信,节省流量等优点。
HTML5的这些特点给WEB开发带来了一次技术革新。利用该技术开发的WEB应用,网页启动时间更短,联网速度更快,并可实现跨平台运行。这些特点推动了三维可视化技术在网络上的广泛应用,客户端运行变得更加简单高效,这为海南省山洪灾害三维可视化系统中进行Web端洪水演进仿真奠定了基础。
3.1.2 WebGL
WebGL是Web3D图形标准,有别于传统WebGIS前端三维显示技术,它是通过标准的、统一的、跨平台的OpenGL接口,对底层的图形硬件进行加速,无需插件即可完成图形這染,提供更高效的大规模三维场景這染解决方案[3]。
WebGL API通过Canvas元素提供绘制三维图形的环境,开发人员在浏览器端调用Canvas的getContext( )方法获得WebGLRenderingContext对象,通过该对象提供的接口即可调用WebGL API。WebGL进行三维图形渲染的主要操作是:①在CPU端利用Javascript代码调用WebGL API,链接或编译着色器,设置或计算顶点数据、纹理数据,建立缓冲并进行矩阵变换等处理。②使用着色语言OpenGL控制GPU完成几何图形顶点和像素的处理,编写顶点着色器和片段着色器。
3.1.3 Cesium
Cesium是一款基于WebGL(浏览器三维绘图协议),面向三维地球和地图的世界级JavaScript开源产品,它只需开启 WebGL 功能,无需安装任何浏览器插件,就可以方便快速搭建虚拟地球Web应用,进行地理空间数据的三维可视化。
Cesium的图形渲染引擎采用WebGL,在实时动态数据可视化的性能、精度、渲染质量、跨平台以及易用性等方面都有很高质量的保证。其特点包括:①Cesium 对公开和私有的数据资源均能提供有效支持,并以符合 GIS 行业规范的方式访问空间数据。②Cesium 的开发语言采用JavaScript ,有效的将KnockoutJS 和 WhenJS等框架进行了集成。③在浏览器中,Cesium通过远程服务加载服务器端的地图数据实现可视化表达,支持WMS、WMTS、WFS、WCS 等服务规范。④Cesium 通过AJAX加载并渲染Json文件,实现了服务器端地理空间海量数据的异步请求功能。
在国内,基于Web的开源轻量级三维可视化引擎Cesium更是得到了广泛应用与研究。鉴于基于GIS系统的三维可视化应用仍然存在很多问题,高云成、朱栩逸等人在GIS中引入Cesium可视化引擎,探讨了GIS基础功能与三维Web可视化系统相结合的设计方案[4-5]。在分析了传统三维建模技术的优势和其在WEB应用上存在的困难的基础上,李俊金基于Cesium实现了数字城市建模[6]。孙晓鹏等研究了Cesium技术渲染三维场景的方法,构建了基于WebGIS端的三维模型[7]。乐世华研发的流域可视化平台,其三维场景基于Cesium搭建,并结合了BIM、倾斜摄影等多种前沿技术[8]。在水利水电工程的三维可视化研究领域,徐锐等基于Cesium引擎构建的平台实现了树形空间数据结构组织的瓦片集合3D TILES模型的加载[9]。
由于目前Cesium三维可视化引擎已得到广泛的成功应用,因此海南省山洪灾害三维可视化系统选择开源平台Cesium作为基础可视化平台,并在此基础上进一步研发洪水演进模拟,如淹没水深等值面、淹没真实性渲染、避洪转移等。主要工作内容包括:①水动力模型集成研究,完成洪水模拟与三维仿真模拟平台进行在线计算集成、成果高效存储读取、成果转换等一系列服务功能。②建立洪水演进模拟三维场景,在洪水淹没仿真时,能比较真实地还原客观三维世界环境。③完成洪水淹没三维仿真,将影像数据、倾斜摄影三维模型数据、洪水模拟模型结果数据、地形数据如何进行融合表达,以比较逼真地模拟洪水淹没模拟情况。
海南省山洪灾害洪水演进模型采用珠江水利科学研究院自主研发的洪水分析模型HydroMPM_FloodRisk[10]。HydroMPM_FloodRisk是一套一维-二维耦合的水动力模型体系,其中,一维水动力模型用于河道(河网)内洪水预报、风暴潮影响下河网水动力过程模拟、水闸调度条件下河网水动力过程模拟;二维水动力模型用于各种洪涝风险区暴雨、洪水、潮水演进模拟;通过河道-堤防-防洪保护区耦合、河网-河口-外海耦合、河道-水库(湖泊)耦合实现一维-二维模型耦合。该软件于2014年经国家防总批准进入《重点地区洪水风险图编制项目软件名录》。近年来,通过算法改进、GPU高性能并行计算实现了洪水演进高速计算,可满足洪水实时分析需求。
该模型通过以下三方面实现了复杂地表洪水演进高速计算,具有较高的计算效率:
(1)采用低阶精度有限体积格式,降低算法时空复杂度。将底高程定义于单元节点,地形概化具有二阶精度;在提高地形表达精度的基础上,运用浅水方程高效求解的一阶精度格式,降低算法时空复杂度。
(2)采用有效计算单元自适应动态调整方法,避免大量无效计算,显著减小计算规模。根据洪水淹没前沿边界,动态调整有效计算单元。以溃漫堤洪水及城市暴雨内涝为例,受地形影响,淹没区占整个计算范围的比例较小;此外,受淹面积亦是随着洪水演进过程逐渐增大。HydroMPM_FloodRisk模型仅针对有效计算单元进行循环计算,从而极大减少计算量。
(3)采用GPU并行计算,实现台式机或小型工作站上洪水演进高速计算。传统方法多为CPU并行计算,包括单CPU的多核并行,以及多CPU的分布式并行。受单一CPU的核心数量限制,单CPU多核并行的加速效果有限。而多CPU的分布式并行往往需要大型计算服务器,存在建设投资大、运行及维护成本高、使用不便等问题。近年来,随着GPU硬件快速发展,单块GPU卡即可提供强大运算能力,使台式机或小型工作站上高性能计算成为可能。针对GPU硬件架构特性,HydroMPM_FloodRisk模型对数据管理和循环并行化进行了改进,使模型可以利用GPU卡中数以千计的核心进行多线程并行计算,从而显著提高计算速度。
洪水演进三维仿真相对于传统的洪水风险图的最大优势在于与现实世界更加贴近,表达更加直观,从而可从多角度对洪水淹没进行分析。在以影像图、地形还原真实世界的基础上,辅以实景三维模型,对洪水动态模拟进行淹没分析,通过加载后台计算分析的最大淹没范围、淹没历时数据可以分析出所研究区域场次洪水的大致淹没范围,动态加载水动力模型计算的时刻结果可分析得出场次洪水的涨退水动态过程,水深与实景三维模型的叠加分析以及淹没区任意位置的水深查询显示也为更细致分析洪水对局部的淹没影响分析提供了支持。
3.3.1 水深查询
二维水动力进行洪水演进计算其计算结果为二维网格点数据(如水深、水位、流向、流速),在进行洪水演进仿真时,如能查询到洪水区域任意位置处的淹没水深情况将为洪水淹没分析提供极大的决策支撑,见图1。
图1 任意位置水深查询
采取运用重心坐标的方式计算任意位置水深,三角形重心坐标如图2所示,(P0,P1,P2)为三角形顶点坐标,(u,v,w)为三角形相应重心坐标,对于三角形所在平面的任意点V ,均可用公式(1)表示。
图2 三角形重心坐标
其中,重心坐标性质如下:
(1) u + v + w =1.0 , u, v, w ∈ [0,1] ,所以只有两个自由度。
(2) 对于三角形的三条边界,重心坐标(u, v, w)必有相应分量为0 。
因此对于洪水区域的任意点的水深,均可通过三顶点的水深数据与重心坐标计算得到。
3.3.2 避洪转移分析
结合洪水淹没研究区域避洪转移基础数据,建立危险点、危险村庄与一二维水动力模型二维格网的一一映射关系,然后与水动力模型计算结果数据进行动态叠加分析,可对洪水淹没研究区域进行场次洪水模拟时,危险村庄、转移点、安置点、转移路线、转移人口、转移户数等的动态展示,见图3。
图3 避洪转移分析效果图
3.3.3 洪水动态模拟
洪水动态模拟是将洪水演进模型结果数据、三维场景数据、地形数据进行融合表达,直观逼真地模拟洪水淹没情况,具体方法为:
洪水模拟模型产生的淹没结果数据包括二维网格数据、各网格的结果数据(水深、水位、流速、流向等),其从数据形式到屏幕上的渲染结果图需要在GPU上进行一系列流水线操作,见图4。
图4 GPU流水线操作
Cesium对WebGL进行了封装,提供方便快捷的API接口,使得在不接触到WebGL底层API情况下就可进行三维对象的渲染,但洪水演进仿真,涉及的数据量较大,此外,数据结构并不适合用Cesium已有的API进行封装渲染。通过对Cesium提供的WebGL底层的Primitive绘制对象进行适应性扩展完成洪水的动态模拟。Primitive对象提供了update函数,Cesium渲染框架会每帧循环调用update函数完成绘制对象渲染前的准备工作。洪水动态模拟提供两种表达方式:淹没水深渲染和逼真纹理渲染。
(1)淹没水深三维等值面效果渲染
将二维网格顶点坐标数据、网格淹没水深数据、水深图例纹理数据(不同水深对应不同颜色的图片)输送至GPU,然后通过在片元着色器中根据水深图例为淹没网格进行不同水深渲染着色,实现效果见图5。
图5 淹没水深等值面
(2)逼真纹理淹没效果渲染
输入淹没结果数据至GPU的同时,还需将洪水样例图片纹理、法线扰动图纹理同步输入,然后在GPU端执行设计的洪水效果着色器代码,该着色器代码利用法线扰动图纹理在着色器中动态生成洪水波动效果图、利用淹没网格流向数据生成洪水流动效果图、通过光照计算生成光线效果图,然后将生成的三种效果图与洪水样例图片进行混合渲染,生成逼真淹没效果见图6。
图6 逼真淹没效果渲染图
三维可视化技术从计算机学科出发,已渗透到地理学、资源环境学、海洋学、建筑学、生物医学、游戏影视、工业制造等各个领域中。三维可视化的发展,缩短了现实世界和计算机虚拟世界的差距,拓宽了人们的视野,不仅使我们更加清楚地认识这个世界,还为改造世界提供了科学的指导。
三维可视化技术从数据来源特点、模型优势、应用场景等方面也为物理世界的数字孪生体建设提供了重要基础保障。时空大数据包括时序化的基础时空数据、公共专题数据、物联网实时感知数据、互联网在线抓取数据和根据本地特色扩展数据。数字孪生体建设依托这些大数据,在深度应用上,基于真实有效、高精度和对象化的地理空间三维实景环境,对无人机航测、激光雷达、倾斜摄影等测绘信息技术方法快速采集制作的精细化城市三维模型和大比例尺地形图,进行精准定位、深度挖掘,搭建三维地理信息基础服务框架,提高数据信息表现力和价值,为数字孪生体建设提供高精度可视化的三维空间信息和位置服务。在广度应用上,随着物联网等技术的发展,无数智能终端设备每分每秒都在产生并传播海量的数据,这给传统的地理学模型提供了更多高精度、实时、丰富的数据来源,同时也对原有的模型提出了新的需求和挑战。数字孪生建设关注大数据融合分析和应用,基于多源、多维、海量数据分析,全面、准确地掌握事物特征和发展态势、关键影响因素、发展规律,提高政府科学决策水平,提供个性化、差异化服务,提升解决复杂问题的综合能力。
可见,数据三维可视化是未来信息化建设和智能制造的必经之路,三维可视化技术的应用前景,在于进行高效、高精度的渲染建模,不但实现在一个数字场景中还原物理世界的全要素,同时结合对实时数据的处理、计算,实现数字世界与物理世界的通联,构建物理世界的数字孪生体。因此,数据三维可视化技术,可将时空海量数据信息通过三维立体化的方式进行展示和有效的管理控制,必将成为今后数字化建设的主流技术。