CN115423953A - 一种水体污染物可视化方法及终端设备 - Google Patents
一种水体污染物可视化方法及终端设备 Download PDFInfo
- Publication number
- CN115423953A CN115423953A CN202210812847.4A CN202210812847A CN115423953A CN 115423953 A CN115423953 A CN 115423953A CN 202210812847 A CN202210812847 A CN 202210812847A CN 115423953 A CN115423953 A CN 115423953A
- Authority
- CN
- China
- Prior art keywords
- data
- water
- water quality
- grid
- water body
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/904—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A20/00—Water conservation; Efficient water supply; Efficient water use
- Y02A20/152—Water filtration
Abstract
本发明公开了一种水体污染物可视化方法,先获取某一时刻的污染物水质数据,并解析所述水质指标数据,根据解析后的水质指标数据大小构建插值色带,然后根据单个水体网格坐标及水深创建几何体实例并拉伸,构建出集几何体实例的属性集及标识,并将网格单元存储到分组的实例集合中,接着由实例集合生成基元,所有基元组成水体轮廓对应的基元集合,并对所述基元集合在浏览器端进行可视化渲染,再读取水质指标数组数据,并根据水质指标数据与颜色的对应关系设定属性的颜色材质后进行渲染,最后经过一定间隔时间不断获取下一时刻的污染物水质指标,重新根据水质指标数据构建插值色带渲染,直观快速实现了在浏览器端显示水体污染物的动态扩散演进过程。
Description
技术领域
本发明涉及水体污染物可视化,尤其涉及一种水体污染物可视化方法及终端设备。
背景技术
目前,在水域水质监测结果展示中,常用桌面端建模软件做模拟展示,系统的共享及维护等具有短板,在web端,使用Webgl渲染引擎,将水质污染模拟结果进行网页端的渲染展示,具有十分重要的意义,但网页端的水体时空分布可视化渲染具有下面2个问题:1、数据驱动下的水体三维建模以及水体和地图融合的问题:水体的底面(水面)为任意多边形,需要根据数据分多层动态构建不规则三维水体数据,同时要把水体和三维地图进行精确匹配融合;2、海量水体加载效率及动态更新材质的性能问题:受限于浏览器的性能,一些常规的方式,加载几万甚至几十万的水体网格的数据时,较为卡顿,甚至会出现卡死的现象,另外,动态更新水体网格属性也存有性能问题。
现有技术中的一种时空变化过程动态可视化方法(授权公告号:CN105913475B)采用时间切面和时空立方体的表现形式,提升了可视化的用户体验,但该方法还是不够直观且快速的在浏览器上应用。
发明内容
本发明的目的在于提供一种水体污染物可视化方法,以实现直观且快速在浏览器端显示水体污染物的动态扩散演进过程。
基于上述目的,本发明提供技术方案如下:
一种水体污染物可视化方法,包括以下步骤:
S1:获取某一时刻的污染物水质数据,所述污染物水质数据包括水体网格坐标数据和水质指标数据,对所述水质指标数据进行数据解析,根据解析后的数据大小构建插值色带;
S2:根据单个水体网格坐标及网格水深创建几何体,几何体结合数据属性及数据标识得到几何体实例,并将几何体实例存储到分组的实例集合中;
S3:由实例集合生成基元,所有基元组成水体轮廓对应的基元集合;
S4:读取水质指标数据,根据数据属性确定水体网格所在的基元,获取基元的实例集合,同时根据数据标识获取每个实例集合的数据属性,并根据水质指标数据与颜色的对应关系设定几何体实例的颜色,对水体网格通过所述基元集合在浏览器端进行可视化渲染;其中所述水体网格是对水体轮廓进行分层的网格划分得到的。
先获取某一时刻的污染物水质数据,并进行网格参数化建模得到三维模型,接着划分基元和基元集合,并根据污染物水质指标与颜色的映射关系,网格水体通过基元集合在浏览器端进行可视化渲染,间隔一定时间不断继续获取下一时刻的污染物水质指标,更新水体网格的颜色,对水体污染物可视化渲染,直观且快速实现了在浏览器端显示水体污染物的动态扩散演进过程;其中数据解析时采用通用geojson作为数据接收格式,污染物水质指标与颜色的映射关系就是构建插值色带的过程,构建插值色带就是将变量(如水体温度)拉伸到0-1,同时把最小值设为一个颜色(如蓝色),最大值设为一个颜色(如红色),其余值由这两个颜色之间的颜色列表决定,实现一种颜色到另一种颜色渐变,颜色和值绑定,当水体污染展示时,每个水体网格有不同的颜色,颜色由污染物的含量决定,如含量为0,表示蓝色,为1表示红色,含量为0到1之间的任意数,反映的颜色为蓝色到红色之间一个颜色(由该数在0-1之间的位置决定),这样非常直观。所述水体网格是对水体轮廓进行分层的网格划分得到的,是先对水体轮廓进行分层,然后在每层中都进行网格划分。
作为进一步的方案,所述构建插值色带的步骤包括:
S1.1:根据污染物水质指标的最大值与最小值,使用线性比例尺函数,将污染物水质指标均归一化到0与1之间;
其中,线性比例尺函数的公式如下:
Xnorm为归一化后的数据,X为污染物水质指标原数据,Xmax、Xmin分别为污染物水质指标数据的最大值和最小值;
S1.2:分别预设污染物水质指标最大值与最小值对应的色彩参数,根据污染物水质指标及最大值、最小值的色彩参数计算出污染物水质指标的色彩参数。
作为进一步的方案,所述色彩参数是RGB数字量,通过改变RGB数字量中的R数据量,G数据量,B数据量来改变色彩的颜色。
作为进一步的方案,所述步骤S2中创建几何体包括步骤:
S2.1获取到单个网格的坐标数据,整个湖面高度riverHeight,水质数据长度layerCount、网格水深waterHeight、层数n,其中整个湖面高度为自定义高度,
则单个网格高度perGridHeight为:
perGridHeight=(waterHeight/layerCount)*riverHeight/n;
每层湖面高度riverHeight1等于整个湖面高度减去层数和网格高度的乘积:
riverHeight1=riverHeight-n*perGridHeight;
S2.2:根据网格坐标、整个湖面高度、拉伸高度创建几何体,所述拉伸高度为网格二维面在垂直方向的网格高度。
作为进一步的方案,所述步骤S3基元的生成包括具体步骤:
由几何体生成几何体实例,所述几何体实例包括几何体、特征属性及标识;
将几何体实例存到实例集合中,所述实例集合中包括多个几何体实例;
设置几何体实例的外观,由实例集合和外观生成对应的基元。
几何体生成几何体实例是通过实例化技术,实例化技术包括四种方式:静态批次、动态批次、顶点常亮实例化、通过几何体实例化API的批次。通过基元提高了数据遍历的性能。
作为进一步的方案,所述污染物水质指标包括污水物理指标,所述污水物理指标包括水温、色度、浊度。
水质指标可分为物理指标、化学指标和生物指标,表示污水物理性质的主要指标是水温、色度、浊度等。水质指标是对水体进行监测、评价、利用以及污染治理的主要依据。
作为一种优选方案,所述方法还包括步骤:
响应于基元的隐藏指令,对基元进行隐藏;和/或,响应于基元的显示指令,对基元进行显示。
根据显示或隐藏指令,可选择有针对性的显示或隐藏来显示可视化结果。
作为进一步的方案,在浏览器端进行可视化渲染是采用GPU加速的方式。
采用GPU加速的方式具体操作如下:自定义网格图元和着色器Shader,对网格图元进行顶点和片元着色,采用GPU加速的渲染方式,解决海量网格数据的三维可视化及时空分布变化过程,支持规则正方形网格及湖体边界截取的不规则多边形网格,同时将仿真湖体和GIS地图融合,精确的对湖体污染时空分布进行高效率可视化渲染。
作为进一步的方案,所述步骤S1之前还包括三维可视化引擎的选择,所述三维可视化引擎采用基于WebGL的开源Cesium渲染引擎,所述几何体、所述几何体实例、所述基元均基于三维可视化引擎实现。
WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,而且还可以创建复杂的导航和数据视觉化。
与上述水体污染物可视化方法相对应的一种终端设备,终端设备包括存储器、处理器及存储在存储器上的计算机程序;所述处理器执行所述计算机程序,以实现水体污染物可视化方法的步骤。
本发明所实现的有益效果:
本发明基于WebGL的开源Cesium渲染引擎,先获取第一时刻的污染物水质数据,所述污染物水质数据包括水体网格坐标数据和水质指标数据,对所述水质指标数据进行数据解析,根据解析后的数据大小构建插值色带;接着根据单个水体网格坐标及网格水深创建几何体,几何体结合数据属性及数据标识得到几何体实例,并将几何体实例存储到分组的实例集合中;接着由实例集合生成基元,所有基元组成水体轮廓对应的基元集合;然后读取水质指标数据,根据数据属性确定水体网格所在的基元,获取基元的实例集合,同时根据数据标识获取每个实例集合的数据属性,并根据水质指标数据与颜色的对应关系设定水体网格的颜色,对所述基元集合在浏览器端进行可视化渲染;最后获取第二时刻的污染物水质指标,重复步骤S1至S4,更新水体网格的颜色,构建第二时刻的水体污染物可视化渲染,直观且快速实现了在浏览器端显示水体污染物的动态扩散演进过程。
附图说明
图1为本发明实施例的方法流程图;
图2是本发明实施例的某一时刻三维水体水温分布的网格化渲染示意图;
图3是本发明实施例的另一时刻三维水体水温分布的网格化渲染示意图;
图4是本发明实施例水体和地图融合示意图;
图5是本发明实施例水体分层包括隐藏层示意图;
图6是本发明实施例中基元的组成。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,下面结合附图和实施例对本发明作进一步说明。
水质指标是对水体进行监测、评价、利用以及污染治理的主要依据,水质指标可分为物理指标、化学指标和生物指标,表示污水物理性质的主要指标是水温、色度、浊度、等,本实施例以水温为例,如图1所示,其实现水体污染物可视化方法如下:
步骤1,数据解析,构建颜色插值带:
读取污染物浓度的geojson数据,获取第一时刻的水质指标的每个网格坐标数据和水质数据。以水温(WT)为例,对水温数据排序求最大最小值,并归一化,如下所示:
求出该时刻水温最小值:min=Math.min(WT);
求出该时刻水温最大值:max=Math.max(WT);
归一化拉伸比例尺:WTDataScale=currentData/max;
归一化后,构建颜色插值带,同时为加入多种颜色插值,自己设定颜色范围区间,如下:
colorRange=['#0000FF','#00FFFF','#FFFF00','#FF0000']
按照自定颜色区间,将0,1等分为0,0.33,0.66,1三个区间范围,如下:
dataDomain=[min,min+(max-min)*0.33,min+(max-min)*0.66,max];
借助d3构建插值色带;其中d3是一个JavaScript库,用于创建数据可视化图形;
colorScale=d3.scaleLinear().domain(dataDomain).range(colorRange);
步骤2:水体网格参数化建模并分组:
获取到单个网格的坐标数据(coord),整个湖面高度(riverHeight),水质数据长度(layerCount)、网格水深(waterHeight)、层数(n),其中整个湖面高度为自定义高度,网格水深为实际的水深,则单个网格高度(perGridHeight)为
perGridHeight=(waterHeight/layerCount)*riverHeight/n;
每层湖面高度riverHeight1等于整个湖面高度riverHeight减去层数n和网格高度perGridHeight的乘积,
riverHeight1=riverHeight-(index+1)*perGridHeight;
根据坐标coord、整个湖面高度、网格高度创建几何体geometry,并在垂直方向上拉伸(拉伸高度为每层湖面高度,每层湖面高度为网格二维面在垂直方向的网格高度),同时将geometry生成几何体实例instance,设置几何体实例instance的颜色(由插值色带和当前水温数据确定colorScale(WTTimeData))、显隐(show)、标识(id),存储到分组的示例集合中(instanceArray)。
步骤3,构建基元(primitive)和基元集合(primitiveCollection):
取出instanceArray中的每组instance数据,合并为geometryInstance,设置几何图形实例的外观,如透明、闭合顶面、扁平化着色等,生成基元primitive,把基元primitive添加到基元集合primitiveCollection中,渲染到场景scene中。
具体的,其渲染示意图如图2所示。
如图6所示,基元的生成包括:
由几何体生成几何体实例,所述几何体实例包括几何体、特征属性及标识;
将几何体实例存到实例集合中,所述实例集合中包括多个几何体实例;
设置几何体实例的外观,由实例集合和外观生成基元。
步骤4,水体颜色赋值:读取水温数组数据,根据数组索引确定网格所在组,所在的primitive,获取primitive实例集合(primitiveMain),同时根据标识(id)获取每个实例(instance)的属性集attributes:
attributes=primitiveMain.getGeometryInstanceAttributes(id);
根据当前水温数据、颜色,赋值属性的颜色材质;
最后对基元集合在浏览器端进行可视化渲染;
步骤5,构建下一时刻渲染数据:
设置计时器时间间隔(时间预设,比如1秒),获取存储在内存中的下一时刻水温数据,重新根据该时刻水温获得最大值、最小值等数据,使用步骤1至步骤4的方法,更新水体网格的颜色,间隔时间间隔不断获取下一时刻的水体污染物数据,进行可视化渲染,时间分布与三维水体网格模型一起形成时空分布。渲染图如图3所示。
上述步骤是基于三维可视化引擎实现的,三维可视化引擎采用基于WebGL的开源Cesium渲染引擎将空间仿真对象和地图融合,在三维地球上进行时空分布的可视化展示。如图4所示的就是水体和地图融合示意图。
为了更直观显示,基元包括显示和隐藏两个状态,如图5所示的是共五层水体展示,分层查看不同层水体的水温情况,隐藏第二层第三层的结果,并能响应于基元的隐藏指令,对基元进行隐藏;和/或,响应于基元的显示指令,对基元进行显示。
本实施例针对水体污染,构建网格单元,自定义水体污染的插值色带,进行水体污染的时空分布可视化渲染,并将空间仿真对象和地图融合,在三维地球上进行时空分布的可视化展示,同时使用通用geojson作为数据接收格式,能够直接使用静态geojson数据在浏览器上应用,最后,本发明的基于时空分布特征的水体污染物可视化方法,直接运行到浏览器上,并基于webgl、使用Cesium作为渲染引擎,不用配置本地环境,就可以在线查看使用。
与上述水体污染物可视化方法相对应的一种终端设备,包括存储器、处理器及存储在存储器上的计算机程序;所述处理器执行所述计算机程序,以实现水体污染物可视化方法的步骤。
最后需要说明的是,上述实施例阐明的内容应当理解为这些实施例仅用于更清楚地说明本发明,而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
Claims (10)
1.一种水体污染物可视化方法,其特征在于,包括以下步骤:
S1:获取某一时刻的污染物水质数据,所述污染物水质数据包括水体网格坐标数据和水质指标数据,对所述水质指标数据进行数据解析,根据解析后的数据大小构建插值色带;
S2:根据单个水体网格坐标及网格水深创建几何体,几何体结合数据属性及数据标识得到几何体实例,并将几何体实例存储到分组的实例集合中;
S3:由实例集合生成基元,所有基元组成水体轮廓对应的基元集合;
S4:读取水质指标数据,根据数据属性确定水体网格所在的基元,获取基元的实例集合,同时根据数据标识获取每个实例集合的数据属性,并根据水质指标数据与颜色的对应关系设定几何体实例的颜色,对水体网格通过所述基元集合在浏览器端进行可视化渲染;其中所述水体网格是对水体轮廓进行分层的网格划分得到的。
3.根据权利要求2所述的水体污染物可视化方法,其特征在于,所述色彩参数是RGB数字量,通过改变RGB数字量中的R数据量,G数据量,B数据量来改变色彩的颜色。
4.根据权利要求1所述的水体污染物可视化方法,其特征在于,所述步骤S2中创建几何体包括步骤:
S2.1:获取到单个网格的坐标数据,整个湖面高度riverHeight,水质数据长度layerCount、网格水深waterHeight、层数n,其中整个湖面高度为自定义高度,则单个网格高度perGridHeight为
perGridHeight=(waterHeight/layerCount)*riverHeight/n;
每层湖面高度riverHeight1等于整个湖面高度减去层数和网格高度的乘积:
riverHeight1=riverHeight-n*perGridHeight;
S2.2:根据网格坐标、整个湖面高度、拉伸高度创建几何体,所述拉伸高度为网格二维面在垂直方向的网格高度。
5.根据权利要求1所述的水体污染物可视化方法,其特征在于,所述步骤S3中基元的生成包括步骤:
由几何体生成几何体实例,所述几何体实例包括几何体、特征属性及标识;
将几何体实例存到实例集合中,所述实例集合中包括多个几何体实例;
设置几何体实例的外观,由实例集合和外观生成对应的基元。
6.根据权利要求1所述的水体污染物可视化方法,其特征在于,所述污染物水质指标包括污水物理指标,所述污水物理指标包括水温、色度、浊度。
7.根据权利要求1所述的水体污染物可视化方法,其特征在于,所述方法还包括步骤:
响应于基元的隐藏指令,对基元进行隐藏;和/或,响应于基元的显示指令,对基元进行显示。
8.根据权利要求1所述的水体污染物可视化方法,其特征在于,在浏览器端进行可视化渲染是采用GPU加速的方式。
9.根据权利要求1~8任一项所述的水体污染物可视化方法,其特征在于,所述步骤S1之前还包括三维可视化引擎的选择,所述三维可视化引擎采用基于WebGL的开源Cesium渲染引擎,所述几何体、所述几何体实例、所述基元均基于三维可视化引擎实现。
10.一种终端设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序,以实现权利要求1~9任一项所述的水体污染物可视化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210812847.4A CN115423953A (zh) | 2022-07-12 | 2022-07-12 | 一种水体污染物可视化方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210812847.4A CN115423953A (zh) | 2022-07-12 | 2022-07-12 | 一种水体污染物可视化方法及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115423953A true CN115423953A (zh) | 2022-12-02 |
Family
ID=84196758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210812847.4A Pending CN115423953A (zh) | 2022-07-12 | 2022-07-12 | 一种水体污染物可视化方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115423953A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116342783A (zh) * | 2023-05-25 | 2023-06-27 | 吉奥时空信息技术股份有限公司 | 一种实景三维模型数据渲染优化方法及系统 |
-
2022
- 2022-07-12 CN CN202210812847.4A patent/CN115423953A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116342783A (zh) * | 2023-05-25 | 2023-06-27 | 吉奥时空信息技术股份有限公司 | 一种实景三维模型数据渲染优化方法及系统 |
CN116342783B (zh) * | 2023-05-25 | 2023-08-08 | 吉奥时空信息技术股份有限公司 | 一种实景三维模型数据渲染优化方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
EP2973423B1 (en) | System and method for display of a repeating texture stored in a texture atlas | |
CN113593051B (zh) | 一种实景可视化方法及大坝可视化方法及计算机设备 | |
MX2010012490A (es) | Sistemas y metodos para formar la imagen de un volumen tridimensional de datos de rejilla geometricamente irregulares que representan un volumen de rejilla. | |
Boubekeur et al. | A flexible kernel for adaptive mesh refinement on GPU | |
CN105096385B (zh) | 一种二维地震剖面三维显示方法 | |
Marschallinger | Three-dimensional reconstruction and visualization of geological materials with IDL—examples and source code | |
CN102937896B (zh) | 在svg中利用颜色映射技术动态展示二维空间数据的方法 | |
CN114820990B (zh) | 一种基于数字孪生的流域防洪可视化方法及系统 | |
WO2008134147A1 (en) | Edge effect | |
US11527037B2 (en) | Position-based media pipeline for volumetric displays | |
CN115423953A (zh) | 一种水体污染物可视化方法及终端设备 | |
Kang et al. | Terrain rendering with unlimited detail and resolution | |
Würfel et al. | Natural Phenomena as Metaphors for Visualization of Trend Data in Interactive Software Maps. | |
Vitacion et al. | Procedural generation of 3D planetary-scale terrains | |
She et al. | An efficient method for rendering linear symbols on 3D terrain using a shader language | |
WO2023005934A1 (zh) | 数据处理方法、系统及电子设备 | |
CN113192173B (zh) | 三维场景的图像处理方法、装置及电子设备 | |
Döllner | Geovisualization and real-time 3D computer graphics | |
CN111681307B (zh) | 一种应用于三维软件的动态三维坐标轴的实现方法 | |
Kaufman et al. | Texture synthesis techniques for computer graphics | |
CN114491780B (zh) | 一种城市建筑群震后修复过程情景可视化方法及系统 | |
CN117274466B (zh) | 一种融合多源瓦片地图服务的真实感水面渲染方法及系统 | |
CN115423917B (zh) | 一种全球三维风场实时绘制方法及系统 | |
ZEHNER | Landscape visualization in high resolution stereoscopic visualization environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |