动态水域的体绘制方法及装置、存储介质、电子设备与流程

文档序号:26728918发布日期:2021-09-22 21:28阅读:94来源:国知局
动态水域的体绘制方法及装置、存储介质、电子设备与流程

1.本发明涉及计算机领域,具体而言,涉及一种动态水域的体绘制方法及装置、存储介质、电子设备。


背景技术:

2.相关技术中,近年来全球气候更替紊乱,导致极端自然灾害频发。暴雨水域灾害是我国常见的重大自然灾害之一,其中长江和黄河等大型河流水域由于其影响范围广、变化速度快、沿河流域人口众多,给人们的生命和财产安全带来了极大的威胁。随着信息技术的发展,“数字流域”概念应运而生。“数字流域”是结合最新的地理信息系统、虚拟现实、云计算等技术,对全流域的地理信息进行采集、处理、管理和可视化,实现整个流域的智慧管理和决策。
3.相关技术中,流域可视化是“数字流域”建设的重要内容,借助地理信息系统技术,将流域水体范围、流速、深度等信息直观地展现出来,对于流域智慧管理具有重要作用。基于三维地理信息系统的流域水体可视化既可以宏观全局地展现整个流域的全貌,也可以精细地表达局部水体细节特征。相关技术中的河流流场可视化方法有点图标法、矢量线法、纹理法等,不论是点图标法、矢量线法还是纹理法,它们都只能绘制河流水面,不能立体表达水流深度、体积、河床等三维信息。
4.相关技术中,三维体绘制是将体数据中的所有细节同时展现在二维图片上的渲染技术,它的核心是表达立体细节而不是表面,广泛应用于医学核磁共振、流体力学、烟雾等场景。基于三维体绘制的河道水域动态可视化可以实时反应河道中的水域深度、体积、河床等信息,对于灾害应急管理和决策具有重要作用。但是传统三维体绘制方法主要针对规则立方体数据,对于大范围河道应用体绘制方法具有以下难点:(1)河道体数据构建,由于河道水流监测一般只测量水面数据,如何根据断面观测数据采样动态获取河道体数据是水域体绘制的基础;(2)河道形状复杂,河床断面形状极为不规则,如何实现河道动态水域体绘制是一个难题;(3)河道在水流方向绵延起伏数公里,而宽度方向较窄,如何实现大范围河道水域高效体绘制也是一个难题。
5.针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。


技术实现要素:

6.本发明实施例提供了一种动态水域的体绘制方法及装置、存储介质、电子设备。
7.根据本技术实施例的一个方面,提供了一种动态水域的体绘制方法,包括:获取目标河道的河面断面观测数据;根据所述河面断面观测数据进行横断面和纵断面数据插值处理,获取所述目标河道的水域体数据;将所述目标河道的水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,在时间轴上进行时间插值,得到分段河道的水体外包;对所述水体外包进行切片,并绘制所述目标河道的三维动态水体。
8.进一步,根据所述河面断面观测数据进行横断面和纵断面数据插值处理,获取所
述目标河道的水域体数据包括:根据所述河面断面观测数据的分布,获取相邻断面的断面夹角;根据所述断面夹角选择匹配的断面采样策略,对所述横断面进行重采样,得到第一插值数据,对所述纵断面进行重采样,得到第二插值数据,其中,所述断面采样策略包括以下之一:等距断面采样,等角断面采样;根据纵断面采样计算所述纵断面在多个采样点的水流数据;将所述第一插值数据和所述第二插值数据配置为水域体数据的水体空间坐标及空间点的数值。
9.进一步,对所述横断面进行重采样,得到第一插值数据,包括:按照预设步长搜索实际河岸线在每个横断面上的采样点,获取所述采样点的水位,并计算所述水位与河道高程的差值;若所述差值大于高度阈值,继续搜索,若所述差值小于高度阈值,停止搜索,将当前采样点确定为河岸点;采用二次线性插值计算采样点的流速和深度值;将所有断面深度最大的采样点设置为河谷点,并拟合得到河谷线;沿所述河谷线对所述河面断面观测数据进行插值加密,得到第一插值数据。
10.进一步,沿所述河谷线对所述河面断面观测数据进行插值加密,得到第一插值数据,包括:沿所述河谷线计算相邻的第i断面c
i
与第i+1断面c
i+1
之间的夹角q;判断所述夹角q是否大于预设角度阈值;若所述夹角小于或等于预设角度阈值,在断面c
i
与c
i+1
之间进行等距离插值;若所述夹角大于预设角度阈值,在断面c
i
与c
i+1
之间进行等角度插值;进一步,对所述纵断面进行重采样,得到第二插值数据,包括:按照预设步长搜索实际河岸线在每个纵断面上的采样点,获取所述采样点的经纬度坐标;基于所述经纬度坐标,确定在所述采样点下方的第一类重采样点和第二类重采样点,其中,所述第一类重采样点与所述采样点的经纬度相同,所述第二类重采样点与所述采样点的经纬度不同,其中,所述经纬度坐标包括经度,维度,高程;对所述第一类重采样点和所述第二类重采样点分别进行空间插值得到位置坐标,再根据三维水动力方程和插值计算流速值,得到第二插值数据。
11.进一步,将所述目标河道的水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,包括:将所述目标河道的水域体数据在水流深度方向进行高度夸张处理之后,确定所述目标河道的河流跨度范围和可视化精度;根据所述河流跨度范围和所述可视化精度,对所述水域体数据在流向方向基于等间距进行分块;从所述水域体数据中获取当前相机视野内的若干个数据块,针对每个数据块构建水体外包立方体。
12.进一步,对所述水体外包进行切片,并绘制所述目标河道的三维动态水体包括:对所述水体外包分别沿预设三维坐标系的x,y轴方向进行等间距数据体切片,得到多个切片体,并存储切片几何坐标;根据转换函数将所述切片体的数值转换为颜色值和透明度,并载入gpu生成切片体的三维纹理;计算当前相机视线与坐标系z轴的偏转夹角,以及从所述水域体数据中获取当前相机视线内的数据块;若所述偏转夹角大于夹角阈值,基于当前相机视线对所述数据块进行实时切片计算,根据边线顺序依次遍历切片后的数据块,获取对应的特征点,将特征点按照逆时针连接构成几何切面,其中,所述特征点包括所述颜色值和透明度;若所述偏转夹角小于或等于夹角阈值,确定与所述相机视线关联的坐标轴,沿所述关联的坐标轴的方向获取预先存储的切片几何坐标;根据所述切片几何坐标计算纹理坐标,基于所述纹理坐标将所述几何切面按照视线方向进行排序融合,得到所述目标河道的三维动态水体。
13.根据本技术实施例的另一个方面,还提供了一种动态水域的体绘制装置,包括:第
一获取模块,用于获取目标河道的河面断面观测数据;第二获取模块,用于根据所述河面断面观测数据进行横断面和纵断面数据插值处理,获取所述目标河道的水域体数据;处理模块,用于将所述目标河道的水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,在时间轴上进行时间插值,得到分段河道的水体外包;绘制模块,用于对所述水体外包进行切片,并绘制所述目标河道的三维动态水体。
14.进一步,所述第二获取模块包括:获取单元,用于根据所述河面断面观测数据的分布,获取相邻断面的断面夹角;重采样单元,用于根据所述断面夹角选择匹配的断面采样策略,对所述横断面进行重采样,得到第一插值数据,对所述纵断面进行重采样,得到第二插值数据,其中,所述断面采样策略包括以下之一:等距断面采样、等角断面采样;计算单元,用于根据纵断面采样计算采样点的流速数据;配置单元,用于将所述第一插值数据和所述第二插值数据配置为水域体数据的水体空间坐标及空间点的数值。
15.进一步,所述重采样单元包括:搜索子单元,用于按照预设步长搜索实际河岸线在每个横断面上的采样点,获取所述采样点的水位,并计算所述水位与河道高程的差值;若所述差值大于高度阈值,继续搜索,若所述差值小于高度阈值,停止搜索,将当前采样点确定为河岸点;计算子单元,采用二次线性插值计算所述采样点的流速和深度;差值子单元,用于沿所述河谷线对所述河面断面观测数据进行插值加密,得到第一插值数据。
16.进一步,所述插值子单元还用于:沿所述河谷线计算相邻的第i个断面c
i
与第i+1个断面c
i+1
之间的夹角q;判断所述夹角q是否大于预设角度阈值;若所述夹角小于或等于预设角度阈值,在断面c
i
与c
i+1
之间进行等距离插值;若所述夹角大于预设角度阈值,在断面c
i
与c
i+1
之间进行等角度插值;进一步,所述重采样单元包括:获取子单元,用于按照预设步长搜索实际河岸线在每个纵断面上的采样点,获取所述采样点的经纬度坐标;确定子单元,用于基于所述经纬度坐标,确定在所述采样点下方的第一类重采样点和第二类重采样点,其中,所述第一类重采样点与所述采样点的经纬度相同,所述第二类重采样点与所述采样点的经纬度不同,其中,所述经纬度坐标包括经度,维度,高程;插值子单元,用于对所述第一类重采样点和所述第二类重采样点分别进行空间插值得到位置坐标,再根据三维水动力方程和插值计算流速值,得到第二插值数据。
17.进一步,所述处理模块包括:第一处理单元,用于将所述目标河道的水域体数据在水流深度方向进行高度夸张处理之后,确定所述目标河道的河流跨度范围和可视化精度;分块单元,用于根据所述河流跨度范围和所述可视化精度,对所述水域体数据在流向方向基于等间距进行分块;构建单元,用于从所述水域体数据中获取当前相机视野内的若干个数据块,针对每个数据块构建水体外包立方体。
18.进一步,所述绘制模块包括:切片单元,用于对所述水体外包分别沿预设三维坐标系的x,y轴方向进行等间距数据体切片,得到多个切片体,并存储切片几何坐标;第一处理单元,用于根据转换函数将所述切片体的数值转换为颜色值和透明度,并载入gpu生成切片体的三维纹理;第二处理单元,用于计算当前相机视线与坐标系z轴的偏转夹角,以及从所述水域体数据中获取当前相机视线内的数据块;绘制单元,用于若所述偏转夹角大于夹角阈值,基于当前相机视线对所述数据块进行实时切片计算,根据边线顺序依次遍历切片后的数据块,获取对应的特征点,将特征点按照逆时针连接构成几何切面,其中,所述特征点
包括所述颜色值和透明度;若所述偏转夹角小于或等于夹角阈值,确定与所述相机视线关联的坐标轴,沿所述关联的坐标轴的方向获取预先存储的切片几何坐标;融合单元,用于根据所述切片几何坐标计算纹理坐标,基于所述纹理坐标将所述几何切面按照视线方向进行排序融合,得到所述目标河道的三维动态水体。
19.根据本技术实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
20.根据本技术实施例的另一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
21.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
22.通过本发明,获取目标河道的河面断面观测数据;根据河面断面观测数据进行横断面和纵断面数据插值处理,获取目标河道的水域体数据;将目标河道的水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,在时间轴上进行时间插值,得到分段河道的水体外包;对水体外包进行切片,并绘制目标河道的三维动态水体,通过对河面断面观测数据进行采样获取目标河道的水域体数据,可以基于切片体绘制目标河道的三维动态水体,实现了河道水体动态、精细的体渲染效果,针对大范围河道水域,分别进行分段和不同视角切片算法优化,实现了高效的体绘制,解决了相关技术针对大范围河道水体动态水体绘制效率低、效果差的技术问题。
附图说明
23.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是本发明实施例的一种计算机的硬件结构框图;图2是根据本发明实施例的一种动态水域的体绘制方法的流程图;图3是本发明实施例河道横断面重采样数据处理原理图;图4是本发明实施例河道纵断面数据重采样原理图;图5是本发明实施例在河道纵断面三线性插值原理图;图6是本发明实施例的河道三维水体构建原理图;图7是本发明实施例构建河道水体外包立方体原理图;图8是本发明实施例立方水体边线切片计算原理图;图9是本发明实施例根据视线角度优化切片策略示意图;图10是本发明实施例河道水域三维动态水体绘制方法流程图;图11是本发明实施例大范围河道水体三维动态水体绘制效果图;图12是根据本发明实施例的一种动态水域的体绘制装置的结构框图。
具体实施方式
24.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的
附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
25.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
26.实施例1本技术实施例一所提供的方法实施例可以在服务器、计算机、或者类似的运算装置中执行。以运行在计算机上为例,图1是本发明实施例的一种计算机的硬件结构框图。如图1所示,计算机可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述计算机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机的结构造成限定。例如,计算机还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
27.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种动态水域的体绘制方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
28.传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
29.在本实施例中提供了一种动态水域的体绘制方法,图2是根据本发明实施例的一种动态水域的体绘制方法的流程图,如图2所示,该流程包括如下步骤:步骤s202,获取目标河道的河面断面观测数据;本实施例的河面断面观测数据是通过设置在目标河道的特定传感器采集和传输的原始河面断面观测数据。
30.步骤s204,根据河面断面观测数据进行横断面和纵断面数据插值处理,获取目标
河道的水域体数据;水域体数据根据断面观测数据进行横断面和纵断面重采样动态获取。
31.步骤s206,将目标河道的水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,在时间轴上进行时间插值,得到分段河道的水体外包;步骤s208,对水体外包进行切片,并绘制目标河道的三维动态水体。
32.可选的,三维动态水体是一种随着时间动态变化的三维图像。
33.通过上述步骤,获取目标河道的河面断面观测数据;根据河面断面观测数据进行横断面和纵断面数据插值处理,获取目标河道的水域体数据;将目标河道的水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,在时间轴上进行时间插值,得到分段河道的水体外包;对水体外包进行切片,并绘制目标河道的三维动态水体,通过对河面断面观测数据进行采样获取目标河道的水域体数据,可以基于切片体绘制目标河道的三维动态水体,实现了河道水体动态、精细的体渲染效果,针对大范围河道水域,分别进行分段和不同视角切片算法优化,实现了高效的体绘制,解决了相关技术针对大范围河道水体动态水体绘制效率低、效果差的技术问题。
34.现有技术的声呐和水深测量依然是河道水流的主要监测方式,其测量数据为断面采样点,为了提高水域体绘制渲染的精度和效果,需要对断面数据进行重采样的预处理。
35.在本实施例中,根据河面断面观测数据进行横断面和纵断面数据插值处理,获取目标河道的水域体数据包括:s11,根据河面断面观测数据的分布,获取相邻断面的断面夹角;s12,根据断面夹角选择匹配的断面采样策略,对横断面进行重采样,得到第一插值数据,对纵断面进行重采样,得到第二插值数据,其中,断面采样策略包括以下之一:等距断面采样、等角断面采样;在一方面,对横断面进行重采样,得到第一插值数据,包括:按照预设步长搜索实际河岸线在每个横断面上的采样点,获取采样点的水位,并计算水位与河道高程的差值;若差值大于高度阈值,继续搜索,若差值小于高度阈值,停止搜索,将当前采样点确定为河岸点;采用二次线性插值公式计算采样点的流速和深度,将所有断面深度最大的采样点设置为河谷点,并拟合得到河谷线;沿河谷线对河面断面观测数据进行插值加密,得到第一插值数据。
36.在本实施例的一个实施方式中,沿河谷线对河面断面观测数据进行插值加密,得到第一插值数据,包括:沿河谷线计算相邻的第i个断面c
i
与第i+1个断面c
i+1
之间的夹角q;判断夹角q是否大于预设角度阈值;若夹角小于或等于预设角度阈值,分别连接断面c
i
与断面c
i+1
的断面线上的每组端点,将断面c
i
与断面c
i+1
之间的空间等距划分为s段进行插值;若夹角大于预设角度阈值,将夹角q均分为s等分,进行等角度插值。
37.断面测量数据通常由声呐等设备沿河道垂直方向测量得到,在实际观测中由于地形和水文变化等因素的影响,在断面的某些位置上无法获取采样点,如浅水区域数据边缘通常与实际河岸线不相符,因此需要对断面进行重采样。
38.横断面采样包括横断面线重采样和横断面加密,图3是本发明实施例河道横断面重采样数据处理原理图,如图3所示,包括:(1) 根据断面观测点数据进行重采样,搜索实际河岸线。设断面c
i (i∈[1, m])
表示m条原始数据中的第i条观测断面,断面采样点p
i, j (j∈[1, n])表示断面c
i
上的第j个测量点,采样步长为d。则重采样点可以计算为:(2) 依据同一断面上的水位相同,获取采样点的水位,计算的水位和河道高程的差值dh。当dh小于高度阈值时,停止搜索采样点为河岸点(右侧河岸点为r
i
,左侧河岸点为l
i
);当dh大于高度阈值时,继续搜索。
[0039]
(3) 计算采样点的流速和深度,河岸边界点的流速值设为零,基于相邻两个测量点运用线性插值方法得到:其中,v(x, y)是采样点p
¢
的值, v(x
i
, y
i
)和f(x
i+1
, y
i+1
)为其相邻两个采样点的值,d
i
是(x, y)和(x
i
, y
i
)之间的距离,d
t
是(x
i
, y
i
)和(x
i+1
, y
i+1
)之间的距离。
[0040]
(4) 获取所有断面的河谷点,基于带参数的四次hermite样条曲线拟合得到河谷线,沿着河谷线对断面数据进行加密。断面c
i
和c
i+1
方向的夹角,设为q可以计算为:(5) 根据相邻断面之间的夹角q大小选取断面加密方法,设断面c
i
和c
i+1
之间插入s个断面,其中第k(k∈[1,s])个插值断面为c
i,k
,angle为某一角度阈值,则具体断面插值策略为:

当q≤angle时,断面c
i
和c
i+1
被当作平行线处理,分别连接其左右端点将其等距划分为s段,此时第k插值断面c
i,k
的方向为:

当q>angle时,断面c
i
和c
i+1
之间的夹角较大,基于等角插值进行处理。分别延长断面c
i
和c
i+1
交于点o,将夹角q等角划分为s等分,则第k插值断面c
i,k
的方向计算为:在另一方面,对纵断面进行重采样,得到第二插值数据,包括:按照预设步长搜索实际河岸线在每个纵断面上的采样点,获取采样点的经纬度坐标;基于经纬度坐标,确定在采样点下方的第一类重采样点和第二类重采样点,其中,第一类重采样点与采样点的经纬度相同,第二类重采样点与采样点的经纬度不同,其中,经纬度坐标包括经度,维度,高程;对第一类重采样点和第二类重采样点分别进行空间插值得到位置坐标,再根据三维水动力
方程和插值计算流速值,得到第二插值数据。
[0041]
如图4所示,为本发明实施例河道纵断面数据重采样原理图,根据断面数据进行深度方向重采样。对于处在横断面正下方的采样点,设断面采样点的经纬高位置为(longitude, latitude, height),其水深为h,采样步长为d,则位于p
i, j
下方的采样点高程坐标h可以计算为:其中符号为向下取整。
[0042]
对于不在横断面正下方的采样点,可以通过获取8个相邻数据点进行空间插值。图5是本发明实施例在河道纵断面三线性插值原理图,如图5所示。三维数据场空间内的数据插值计算在体元各边界上是线性变化的,对于体元中的任意一点p,其中,第一类重采样点为p1,p2,第二类重采样点为p
11
,p
21
,p
21
,p
22
,其流速值可由所在体元的8个顶点的流速值通过三线性插值得到。设图5中8个顶点的流速为v0ꢀ‑ꢀ
v7,对应坐标依次为(x
i
, y
i
, z
i
), 其中i∈[0,7],其三个轴方向的跨度为

x、

y和

z,则插值点p(x, y, z)的流速可以计算为:。
[0043]
根据纵断面采样点位置坐标,基于三维水动力模型和插值计算采样点的流速数据;s13,将第一插值数据和第二插值数据配置为水域体数据的水体空间坐标,将水流数据配置为水体空间坐标内空间点的数值,构成水域数据体。
[0044]
在本实施例的一个实施方式中,将水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,包括:将所述目标河道的水域体数据在水流深度方向进行高度夸张处理之后,确定所述目标河道的河流跨度范围和可视化精度;根据所述河流跨度范围和所述可视化精度,对所述水域体数据在流向方向基于等间距进行分块;从水域体数据中获取当前相机视野内的若干个数据块,针对每个数据块构建水体外包立方体。
[0045]
为了实现河道水域精细动态的体绘制,需要根据河道数据体分布进行数据组织,并针对不同视角下的数据体绘制进行优化。
[0046]
河道在流向方向绵延起伏数公里,而宽度方向较窄,且深度方向相对于水平向下幅度较小显得很不明显。为了精细地表达河道水流立体分布,在水流深度方向进行高度夸张,即高度乘以一个夸张倍数,从而凸显河床分布及深度变化。同时,将数据体在流向方向基于等间距进行分段处理,减小当前视野渲染水体数据量,如图6所示,图6是本发明实施例的河道三维水体构建原理图,l
i
,l
i+1
,r
i
,r
i+1
为河岸点。
[0047]
由于河道数据体底部形状极不规则,为了便于切片体绘制计算,构建水体外包立方体,如图7所示,图7是本发明实施例构建河道水体外包立方体原理图,为与河谷点所在的高程相同,且与河岸点的经纬度相同的外包点。其中
立方体中没有数据的部分,数值为零。同时,原始观测数据是具有一定的时间间隔,为了实现动态平滑的体绘制效果,需要对数据体进行时间插值。设数据体中某一体元(x, y, z)在t
n
时刻的观测值为v
n
,在t
n+1
时刻的观测值为v
n+1
,则该体元在两帧之间某一时刻t
x
的观测值v
x
可以计算为:。
[0048]
在本实施例的一个实施方式中,对所述水体外包进行切片,并绘制所述目标河道的三维动态水体包括:对所述水体外包分别沿预设三维坐标系的x,y轴方向进行等间距数据体切片,得到多个切片体,并存储切片几何坐标;根据转换函数将所述切片体的数值转换为颜色值和透明度,并载入gpu生成切片体的三维纹理;计算当前相机视线与坐标系z轴的偏转夹角,以及从所述水域体数据中获取当前相机视线内的数据块;若所述偏转夹角大于夹角阈值,基于当前相机视线对所述数据块进行实时切片计算,根据边线顺序依次遍历切片后的数据块,获取对应的特征点,将特征点按照逆时针连接构成几何切面,其中,所述特征点包括所述颜色值和透明度;若所述偏转夹角小于或等于夹角阈值,确定与所述相机视线关联的坐标轴,沿所述关联的坐标轴的方向获取预先存储的切片几何坐标;根据所述切片几何坐标计算纹理坐标,基于所述纹理坐标将所述几何切面按照视线方向进行排序融合,得到所述目标河道的三维动态水体。
[0049]
在绘制目标河道的三维动态水体时,包括高视角场景和低视角场景,针对高视角场景下的水体体绘制,获取每一个立方体水体,基于等间隔切片体绘制方法进行渲染。针对低视角场景下的水体体绘制,将其优化为平行于坐标轴的切片体绘制。
[0050]
在高视角水域体绘制的示例中,切片体绘制根据一定的分类和映射规则生成纹理缓存,并载入gpu内存形成三维纹理,最后根据视线方向实时对数据体进行切片合成最终实现图像显示。如图8所示,图8是本发明实施例立方水体边线切片计算原理图,水域切片体绘制步骤包括:获取当前分块洪水数据体abcdefgh,基于转换函数将数值转换为颜色值和透明度。统计数据体中的数据最大值为v
max
,最小值为v
min
,基于设定的色带colorramp进行颜色颜色映射,设色带的颜色长度为length,则当前数值v对应的颜色可以计算为:其中符号为向上取整。
[0051]
数据体切片几何坐标计算。设数据体三维平面上的某个点为,法向量为。三维直线上的某个点为,方向向量为。则三维平面和直线方程可以表达为:
三维平面和直线相交于一点o,经过化解计算其求解等同于获取参数t的值:在三维平面和直线求交的过程中,为了避免多次重复计算求解的问题,分别对数据体的顶点和边线进行编号,在数据体切片过程中根据切割位置可以判断哪些边线被切割计算,从而减少了边线重复计算的问题。图8在当前视线下的边线切割顺序依次为:边(bc、cd、cg)

边(fg、gh)

绿色边(bf、dh)

边(ab、ad)

边(ae、ef、eh)。
[0052]
切片三维纹理坐标计算。首先将局部坐标系下的切片笛卡尔坐标转换为球面坐标。设切片其中一个特征点的三维笛卡尔坐标为 (x, y, z), 其对应到球面坐标系下的坐标为(lon, lat, alt),则其转换方法可以计算为:然后计算三维纹理坐标,设数据体的跨度范围为(lon
min
, lat
min
, alt
min
, lon
max
, lat
max
, alt
max
),数据体在高度方向的夸张系数为s。则切片中的某一采样点位置为(lon, lat, alt),其对应的三维纹理坐标(u, v, w)可以计算得到:集成多块水域数据体,将切片纹理按照视线方向排序并进行融合显示实现数据体绘制。
[0053]
在低视角水域体绘制的示例中,对于低视角下的水域数据体,位于视野内的分块数据较多,降低了渲染效率。为了减少切片数据量,可以沿数据体不同轴线的切片可以提前计算存储好,从而减少实时切片计算量。对于低视角下切片平行于数据体哪个轴线,由相机
具体方位决定。
[0054]
图9是本发明实施例根据视线角度优化切片策略示意图,基于数据体abcdefgh中心o构建三维笛卡尔坐标系,其中x轴平行于边eh,y轴平行于边ef,z轴平行于ea。相机位置为p,视线op与z轴的偏转夹角为a,设置一个固定夹角阈值f,基于视线偏转角的切片绘制策略优化为:(1) 当a∈[0, f]或a∈[p
ꢀ‑ꢀ
f, p]时,基于前述方法沿着视线方向实时计算垂直切片绘制;(2) 当a∈[f,p
ꢀ‑ꢀ
f]时,垂直于底面efgh的切片绘制。设相机p点在xy平面的投影点为,计算视线与x轴的夹角b为:此时,根据b的角度值来判断切片平行于数据体哪个侧面进行切片:

当b∈[0, p/4]或d∈[3p/4, p]时,平行于数据体侧面dcgh切片绘制。
[0055]

当b∈[p/4, 3p/4]时,平行于数据体侧面adeh切片绘制。
[0056]
图10是本发明实施例河道水域三维动态水体绘制方法流程图,本发明根据河道水面断面观测数据,采样获得三维河道水域体数据,然后基于切片体绘制实现数据体渲染,流程如图10所示。本发明提出的大范围河道水域三维动态水体绘制方法可以通过计算机程序自动完成,具体内容如上述实施例的内容所示。该方法根据原始河面断面观测数据,通过横断面和纵断面重采样及水动力方程计算,从而获得水域体数据。然后,将河道进行分段,获取分段河道水体外包进行切片体绘制,并对低视角方向切片进行优化,实现河道水体高效体绘制。针对不规则河道水域体绘制,根据河面断面水流观测数据,采样获取水体体数据,基于切片体绘制实现了河道水体动态、精细的体渲染效果;针对大范围河道水域,分别进行分段和不同视角切片算法优化,实现了高效的体绘制。
[0057]
本实施例记载了一种大范围河道水域三维动态水体绘制方法,步骤包括:根据河面断面观测数据的分布,获取相邻断面夹角,根据角度判断用平行断面采样或等角断面采样,实现断面数据重采样。根据断面数据,计算纵断面采样点的深度和流速数据。根据横断面和纵断面插值数据,构建河道水域体数据。根据河流跨度范围以及可视化精度需求,将河道进行分块,获取当前相机视野内的数据块,获取其外包立方体。针对高视角场景下的水体体绘制,获取每一个立方体水体,基于等间隔切片体绘制方法进行渲染。针对低视角场景下的水体体绘制,将其优化为平行于坐标轴的切片体绘制。图11是本发明实施例大范围河道水体三维动态水体绘制效果图。
[0058]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0059]
实施例2
在本实施例中还提供了一种动态水域的体绘制装置、系统,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0060]
图12是根据本发明实施例的一种动态水域的体绘制装置的结构框图,如图12所示,该装置包括:第一获取模块120,第二获取模块122,处理模块124,绘制模块126,其中,第一获取模块120,用于获取目标河道的河面断面观测数据;第二获取模块122,用于根据所述河面断面观测数据进行横断面和纵断面数据插值处理,获取所述目标河道的水域体数据;处理模块124,用于将所述目标河道的水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,在时间轴上进行时间插值,得到分段河道的水体外包;绘制模块126,用于对所述水体外包进行切片,并绘制所述目标河道的三维动态水体。
[0061]
可选的,所述第二获取模块包括:获取单元,用于根据所述河面断面观测数据的分布,获取相邻断面的断面夹角;重采样单元,用于根据所述断面夹角选择匹配的断面采样策略,对所述横断面进行重采样,得到第一插值数据,对所述纵断面进行重采样,得到第二插值数据,其中,所述断面采样策略包括以下之一:等距断面采样、等角断面采样;计算单元,用于根据纵断面采样计算采样点的流速数据;配置单元,用于将所述第一插值数据和所述第二插值数据配置为水域体数据的水体空间坐标及空间点的数值。
[0062]
可选的,所述重采样单元包括:搜索子单元,用于按照预设步长搜索实际河岸线在每个横断面上的采样点,获取所述采样点的水位,并计算所述水位与河道高程的差值;若所述差值大于高度阈值,继续搜索,若所述差值小于高度阈值,停止搜索,将当前采样点确定为河岸点;计算子单元,采用二次线性插值计算所述采样点的流速和深度;差值子单元,用于沿所述河谷线对所述河面断面观测数据进行插值加密,得到第一插值数据。
[0063]
可选的,所述插值子单元还用于:沿所述河谷线计算相邻的第i个断面c
i
与第i+1个断面c
i+1
之间的夹角q;判断所述夹角q是否大于预设角度阈值;若所述夹角小于或等于预设角度阈值,在断面c
i
与c
i+1
之间进行等距离插值;若所述夹角大于预设角度阈值,在断面c
i
与c
i+1
之间进行等角度插值;可选的,所述重采样单元包括:获取子单元,用于按照预设步长搜索实际河岸线在每个纵断面上的采样点,获取所述采样点的经纬度坐标;确定子单元,用于基于所述经纬度坐标,确定在所述采样点下方的第一类重采样点和第二类重采样点,其中,所述第一类重采样点与所述采样点的经纬度相同,所述第二类重采样点与所述采样点的经纬度不同,其中,所述经纬度坐标包括经度,维度,高程;插值子单元,用于对所述第一类重采样点和所述第二类重采样点分别进行空间插值得到位置坐标,再根据三维水动力方程和插值计算流速值,得到第二插值数据。
[0064]
可选的,所述处理模块包括:第一处理单元,用于将所述目标河道的水域体数据在水流深度方向进行高度夸张处理之后,确定所述目标河道的河流跨度范围和可视化精度;分块单元,用于根据所述河流跨度范围和所述可视化精度,对所述水域体数据在流向方向
基于等间距进行分块;构建单元,用于从所述水域体数据中获取当前相机视野内的若干个数据块,针对每个数据块构建水体外包立方体。
[0065]
可选的,所述绘制模块包括:切片单元,用于对所述水体外包分别沿预设三维坐标系的x,y轴方向进行等间距数据体切片,得到多个切片体,并存储切片几何坐标;第一处理单元,用于根据转换函数将所述切片体的数值转换为颜色值和透明度,并载入gpu生成切片体的三维纹理;第二处理单元,用于计算当前相机视线与坐标系z轴的偏转夹角,以及从所述水域体数据中获取当前相机视线内的数据块;绘制单元,用于若所述偏转夹角大于夹角阈值,基于当前相机视线对所述数据块进行实时切片计算,根据边线顺序依次遍历切片后的数据块,获取对应的特征点,将特征点按照逆时针连接构成几何切面,其中,所述特征点包括所述颜色值和透明度;若所述偏转夹角小于或等于夹角阈值,确定与所述相机视线关联的坐标轴,沿所述关联的坐标轴的方向获取预先存储的切片几何坐标;融合单元,用于根据所述切片几何坐标计算纹理坐标,基于所述纹理坐标将所述几何切面按照视线方向进行排序融合,得到所述目标河道的三维动态水体。
[0066]
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0067]
实施例3本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0068]
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:s1,获取目标河道的河面断面观测数据;s2,根据所述河面断面观测数据进行横断面和纵断面数据插值处理,获取所述目标河道的水域体数据;s3,将所述目标河道的水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,在时间轴上进行时间插值,得到分段河道的水体外包;s4,对所述水体外包进行切片,并绘制所述目标河道的三维动态水体。
[0069]
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read

only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0070]
本发明的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0071]
可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0072]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:s1,获取目标河道的河面断面观测数据;s2,根据所述河面断面观测数据进行横断面和纵断面数据插值处理,获取所述目标河道的水域体数据;
s3,将所述目标河道的水域体数据在水流深度方向进行高度夸张处理,在流向方向基于等间距进行分段处理,在时间轴上进行时间插值,得到分段河道的水体外包;s4,对所述水体外包进行切片,并绘制所述目标河道的三维动态水体。
[0073]
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0074]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0075]
在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0076]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0077]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0078]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0079]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0080]
以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1