EFDC模型计算结果可视化方法和系统与流程

专利2022-06-29  87


本公开涉及信息可视化领域,提出了efdc模型计算结果可视化方法和系统。



背景技术:

efdc(theenvironmentalfluiddynamicscode)模型是由美国环境保护局资助,美国弗吉尼亚州海洋研究所hamrick开发,集水动力模块、泥沙模块、污染物运移模块和水质模块为一体的模型,可用于包括湖泊、水库、海湾、湿地河口和近岸海域一维、二维和三维数值模拟。经过近20年的发展和完善,目前该模型已在大学,政府机关和环境咨询公司等组织中被广泛使用,并成功用于美国和欧洲其他国家100多个水体区域的研究,在我国已被应用于水质模拟,汇流水动力模拟、水库营养物模拟等以及水体富营养化模拟等。

地理信息系统(gis,geographicinformationsystem)是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。webgis是传统的gis在网络上的延伸和发展,webgis通过互联网对地理空间数据进行发布和应用,以实现空间数据的共享和互操作。

efdc模型在水质数值模拟和计算上具有优势,但目前在数据管理和维护、模拟结果表现和空间分析能力上有限。efdc模型是在传统二维格网界面上展示水质模拟计算结果,无法实现计算结果与背景地理环境的叠加显示,在可视化效果上有很大的改进空间。研究efdc模型与webgis的集成,不仅可以提高水质模型的应用效率、可视化展示效果,同时也可以充分发挥了gis空间分析的功能。gis与水质模型集成在水质安全评估与预警、海域水质管理、河水质模拟、水环境容量管理等案例中均得以实现和运用。

通常地,efdc模型输出计算结果为文本文件,从软件开发的角度来看,采用文本文件进行查询、展示效率低,数据安全性差;从软件集成角度来看,efdc模型数据结构与gis系统不同,难以实现两者有机融合。



技术实现要素:

为了解决上述问题,本发明提出了efdc模型计算结果可视化方法和系统。

本公开提出了一套完整的解决方案包括efdc模型格网gis可视化,efdc模型计算结果的解析、存储设计,后台查询接口设计,efdc模型计算结果前端gis可视化,通过本公开实现了efdc计算结果的高效存储、查询、传输及基于webgis的可视化展示。

根据本发明的第一目的,提出一种efdc模型计算结果可视化方法,包括:

将efdc模型计算网格转化为gis数据;

将efdc模型计算网格及背景地理数据通过gis服务器发布成地图服务;

解析efdc计算结果,将计算结果转换为“时序-模拟值”的格式;

存储efdc计算结果,通过“时序-模拟值”的存储格式进行存储;

对efdc计算结果进行查询,计算结果以二维数据的形式进行传输;

从gis服务器端加载背景地理数据,渲染至地图窗口底层,建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低,利用webgl对水质模拟结果进行动态渲染。

可选地,所述存储efdc计算结果,通过“时序-模拟值”的存储格式进行存储,包括:将某时刻所有格网的模拟值以文本的方式保存在数据库中,每个格网的计算结果值之间用逗号进行分隔。

可选地,所述对efdc计算结果进行查询,计算结果以二维数据的形式进行传输,特别地,外层数组包含n个子数组,n为该计算模型的格网数量,每个子数组包含两个字段,其中第一个字段表示格网编号,第二个字段表示模拟结果值,最终返回的计算结果包括该时间序列的水质因子极值及模拟值。

可选地,所述从gis服务器端加载背景地理数据,渲染至地图窗口底层,建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低,利用webgl对水质模拟结果进行动态渲染,包括:将浏览器端javascript脚本语言和桌面端opengles标准结合在一起,通过增加opengles的一个javascript绑定,webgl可以借助系统gpu为图形渲染提供硬件3d加速,最终根据efdc解析数据后每个网格数值与颜色梯度的对照关系,渲染渐进变化的网格图层,叠加至底图服务之上。

根据本发明的的第二目的,提供一种efdc模型计算结果可视化系统,包括:

转化单元,用于将efdc模型计算网格转化为gis数据;

发布单元,用于将efdc模型计算网格及背景地理数据通过gis服务器发布成地图服务;

解析单元,用于解析efdc计算结果,将计算结果转换为“时序-模拟值”的格式;

存储单元,用于存储efdc计算结果,通过“时序-模拟值”的存储格进行存储;

查询单元,用于对efdc计算结果进行查询,计算结果以二维数据的形式进行传输;

可视化单元,用于从gis服务器端加载背景地理数据,渲染至地图窗口底层,建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低,利用webgl对水质模拟结果进行动态渲染。

可选地,所述存储单元包括:将某时刻所有格网的模拟值以文本的方式保存在数据库中,每个格网的计算结果值之间用逗号进行分隔。

可选地,所述查询单元包括:外层数组包含n个子数组,n为该计算模型的格网数量,每个子数组包含两个字段,其中第一个字段表示格网编号,第二个字段表示模拟结果值,最终返回的计算结果包括该时间序列的水质因子极值及模拟值。

可选地,所述可视化单元包括:将浏览器端javascript脚本语言和桌面端opengles标准结合在一起,通过增加opengles的一个javascript绑定,webgl可以借助系统gpu为图形渲染提供硬件3d加速,最终根据efdc解析数据后每个网格数值与颜色梯度的对照关系,渲染渐进变化的网格图层,叠加至底图服务之上。

本发明提供的技术方案可以包括以下有益效果:

本公开通过对efdc模型计算结果的存储设计、查询接口返回值的数据结构优化设计,基于webgis的前端渲染优化设计等实现了水质模拟结果大数量(超过5千个格网)秒级动态渲染。

本公开提出的方法和系统实现了水质模拟结果的gis化,借助gis的空间可视化功能,可以直观显示和输出水质因子在空间和时间上的分布变化情况。

结台gis强大的空间分析功能,可为水环境管理部门的监控、管理工作提供方便高效的技术支持。

附图说明

图1是根据一示例性实施例示出efdc模型计算结果可视化方法的流程图;

图2是根据一示例性实施例示出的lxly.inp文件结构;

图3是根据一示例性实施例示出的dxdy.inp文件结构;

图4是根据一示例性实施例示出的计算格网中心点、计算格网横纵断面线及模型计算格网。

图5是根据一示例性实施例示出的模型计算格网和河道地形数据的gis叠加显示。

图6是根据一示例性实施例示出的efdc模型计算结果中的格网信息。

图7是根据一示例性实施例示出的efdc模型计算结果中的模拟值。

图8是根据一示例性实施例示出的efdc计算结果解析流程图。

图9示出一种传统的数据传输格式。

图10是根据一示例性实施例示出的改进后的数据传输格式。

图11是根据一示例性实施例示出的带有极值和模拟值信息的数据传输格式。

图12是根据一示例性实施例示出的某时刻地表水水质总磷含量计算结果gis可视化显示。

图13是根据一示例性实施例示出的某时刻地表水水质总氮含量计算结果gis可视化显示。

图14是根据一示例性实施例示出的efdc模型计算结果可视化系统。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语应做广义理解。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,术语“第一”、“第二”、“s1”、“s2”等仅用于描述目的,而不能理解为指示或暗示相对重要性或数量或位置。

下面将结合附图对本发明实施例作进一步地详细描述。

本实施例提供一种efdc模型计算结果可视化方法,如图1所示,本公开的核心思路将efdc模型计算网格通过gis手段服务化,并将efdc计算结果解析后保存至数据库,在web浏览器端通过webgl技术,利用efdc计算结果为计算格网着色,具体实施步骤包括:

第一,将efdc模型计算网格转化为gis数据;

将efdc模型计算网格信息存储在lxly.inp、dxdy.inp文件中,需要从上述文件中提取计算网格地理空间信息,并转化为gis格式的数据,作为模型计算结果gis可视化展示的空间基础。具体的实施步骤如下:

s1、根据lxly.inp文件,如图2所示,记录的中心点坐标生成模型中心点散点图shape格式,并在属性信息表中记录散点代表格网的行、列号,对应于图2中i、j列,格网序号信息;

s2、根据dxdy.inp文件中格网的行、列号信息,对应于图3中i、j列,在s1中生成的散点图shape文件中的属性信息表中记录格网的长、宽信息,对应于图3中dx、dy列信息;

s3、根据格网中心点坐标及格网宽度,生成格网横断面散点图;

s4、根据横断面散点图及格网长度,生成格网纵断面散点图;

s5、根据格网纵断面散点图生成格网横、纵断面线;

s6、根据模型格网横、纵断面线生成模型面,通过空间关联(spatialjoin)建立模型格网面和中心点之间的关联,将中心点的属性信息赋值给模型面;

生成的计算格网中心点坐标,格网横、纵断面线,及模型计算格网分别如图4中(a)、(b)、(c)所示。

第二,将efdc模型计算网格及背景地理数据通过gis服务器发布成地图服务;

具体实施步骤如下:

s1、收集efdc模型计算网格空间范围内背景地理数据(水系、地形等),利用gis数据处理软件(arcmap)制作成为mxd格式的地图文档;

s2、运用arcmap对efdc模型计算网格数据进行投影定义与转换,使其与相关的背景地理数据拥有相同的地理投影坐标信息,然后将efdc模型计算网格与相关的背景地理数据进行叠加,制作成mxd格式的地图文档,供服务发布;

s3、利用gis服务发布软件(arcgisserver)将制作好的地图文档通过gis服务器器发布成地图服务。为了优化前端浏览效率,①中的背景地图文档选择以切片缓存(wmts服务)的方式发布服务;②中的efdc模型计算网格以wfs的形式发布成地图服务,以geojson的形式供web渲染引擎maptalks使用。

发布后的地图服务在web浏览器中的展示效果如图5所示。

第三,解析efdc计算结果,将计算结果转换为“时序-模拟值”的格式;

efdc计算结果为*.dat格式文件,计算结果文件包括两方面的信息:前半部分为efdc模型的计算格网信息(如图6所示),其中i,j分别表示格网所在的行和列;后半部分为efdc模型的模拟计算结果(如图7所示),其中第1列表示计算周期内的时间序列,第2至第n列表示每个格网对应的模拟值。

直接利用该文件进行模拟结果展示效率低,需要对结果进行解析,将计算结果转换为“时序-模拟值”的形式,如图8所示,efdc结果解析的具体实施流程如下:

s1、从上至下依次读取模拟结果文件的每一行记录;

s2、判断该行记录起始字符,若起始字符为“**”,则读取下一行记录;

s3、将当前时序模拟结果中空格字符替换为逗号字符;

s4、以逗号为分隔符,提取模拟结果的第一个值作为时序值,其余部分作为模拟结果值;

s5、将时序信息和处理后的模拟结果值保存至解析结果集合中;

s6、重复上述步骤,直至efdc结果文件读取完毕。

第四,存储efdc计算结果,通过“时序-模拟值”的存储格式进行存储;

优选地,本公开采用“时序-模拟值”的存储方式,将某时刻所有格网的模拟值以文本的方式保存在数据库中,每个格网的计算结果值之间用逗号进行分隔,从而有效减少了记录数量,保证了查询效率。

水质计算结果解析包括两个部分:时序极值及时序水质模拟值。解析后的模拟结果按照“时序-模拟值”的形式保存至数据库;计算后得到的时序极值按照“时序-极值”的方式保存至数据库。

efdc计算结果存储的实施步骤如下:

s1、确定模拟区域的规划水质类别,根据国家地表水环境质量标准gb3838-2002获取当前水质模拟因子的标准值,将该标准值作为水质因子是否超标的评判标准;

s2、在步骤三生成的efdc解析结果集合中,获取指定时序的模拟结果,并将该时序的模拟结果保存至数据库;

s3、根据水质模拟因子标准值划分为“超标”和“未超标”两类;

s4、分别在“超标”和“未超标”两个类别中,计算模拟结果的最大值和最小值;

s5、将计算得到的“超标”极值和“未超标”极值保存至数据库。

第五,对efdc计算结果进行查询,计算结果以二维数据的形式进行传输;

水质查询参数包括算例编号、时间序列及水质模拟因子(总磷、总氮、化学需氧量)。返回的计算结果包括该时间序列的水质因子极值(最大最小值,用于水质模拟因子分级设色显示)及水质因子模拟值。

在传统的返回值结构设计中,采用“键值对”的方式进行数据传输,如图9所示,即每一项返回结果包括属性名称和属性值两部分信息,这种数据传输结构存在属性名称大量冗余的问题,即每一个返回单元中,都包含重复的“时间序列”、“格网序号”及“模拟值”等信息,造成网络资源浪费,影响数据传输效率。

优选地,在本公开的一个实施例的计算结果的二维数组中,如图10所示,外层数组包含n个子数组,n为该计算模型的格网数量,每个子数组包含两个字段,其中第一个字段表示格网编号,第二个字段表示模拟结果值,最终返回的计算结果包括该时间序列的水质因子极值及模拟值;

web浏览器通过http请求从服务器获取efdc计算结果数据,其具体实施流程如下:

s1、web浏览器向服务器发送带有时序、水质模拟因子及计算方案id信息的请求;

s2、服务器根据浏览器的请求参数,从数据库中查询相应的efdc计算结果及极值信息;

s3、服务器将数据按照图11所示的格式组织后,以json的格式返回给web浏览器。

第六,从gis服务器端加载背景地理数据,渲染至地图窗口底层,建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低,利用webgl对水质模拟结果进行动态渲染;

优选地,将浏览器端javascript脚本语言和桌面端opengles标准结合在一起,通过增加opengles的一个javascript绑定,webgl可以借助系统gpu为图形渲染提供硬件3d加速,最终根据efdc解析数据后每个网格数值与颜色梯度的对照关系,渲染渐进变化的网格图层,叠加至底图服务之上;

一个具体的实现流程如下:

s1、底图服务数据加载;

优选地,利用maptalks的地图切片服务加载功能,从gis服务器端加载背景地理数据(wmts切片缓存数据),渲染至地图窗口底层;

s2、图例设置;

建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低;

优选地,假设某时刻模拟区域水质总磷的极值为0.02-0.049970,颜色分级数为6:

①根据极值及分级数确定水质模拟值数值区间,数值区间为0.02-0.024995,0.024995-0.029990,0.029990-0.034985,0.034985-0.039980,0.039980-0.044975,0.044975-0.049970六个区间。

②颜色选择,选择渐进变化的6种颜色,分别为'#30c3fd','#25e9a6','#fed400','#fca424','#fd7089'

③建立颜色和数值区间的对应关系。

s3、模拟结果的客户端渲染;

efdc模拟结果渲染的实施流程如下:

①通过wfs地图服务获取efdc计算网格的geojson格式数据;

②依次获取wfs地图服务中的每一个格网,根据计算网格格网序号,从efdc解析数据获取对应格网的模拟值;

③利用二分法计算网格值所在的数值区间,然后根据其与颜色梯度的对应关系,确定每个网格对应的颜色代码,依次渲染渐进变化的网格图层,叠加至底图服务之上。某时刻地表水水质总磷含量计算结果gis可视化显示见图12,某时刻地表水水质总氮含量计算结果gis可视化显示见图13。

根据所述efdc模型计算结果可视化方法,通过efdc模型计算网格gis化、efdc模型计算结果的存储优化设计、查询接口返回值的数据结构优化设计,web前端渲染优化设计等手段实现了efdc计算结果的高效存储、查询、传输及基于webgis可视化展示。

本实施例还提供一种efdc模型计算结果可视化系统,如图14所示,本系统包括:

转化单元,用于将efdc模型计算网格转化为gis数据;

发布单元,用于将efdc模型计算网格及背景地理数据通过gis服务器发布成地图服务;

解析单元,用于解析efdc计算结果,将计算结果转换为“时序-模拟值”的格式;

存储单元,用于存储efdc计算结果,通过“时序-模拟值”的存储格进行存储;

优选地,所述存储单元包括:将某时刻所有格网的模拟值以文本的方式保存在数据库中,每个格网的计算结果值之间用逗号进行分隔;

查询单元,用于对efdc计算结果进行查询,计算结果以二维数据的形式进行传输;

优选地,所述查询单元包括:外层数组包含n个子数组,n为该计算模型的格网数量,每个子数组包含两个字段,其中第一个字段表示格网编号,第二个字段表示模拟结果值,最终返回的计算结果包括该时间序列的水质因子极值及模拟值;

可视化单元,用于从gis服务器端加载背景地理数据,渲染至地图窗口底层,建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低,利用webgl对水质模拟结果进行动态渲染;

优选地,所述查询单元包括:外层数组包含n个子数组,n为该计算模型的格网数量,每个子数组包含两个字段,其中第一个字段表示格网编号,第二个字段表示模拟结果值,最终返回的计算结果包括该时间序列的水质因子极值及模拟值。

本公开通过对efdc模型计算结果的存储设计、查询接口返回值的数据结构优化设计,基于webgis的前端渲染优化设计等实现了水质模拟结果大数量(超过5千个格网)秒级动态渲染。本公开提出的方法和系统实现了水质模拟结果的gis化,借助gis的空间可视化功能,可以直观显示和输出水质因子在空间和时间上的分布变化情况。结台gis强大的空间分析功能,可为水环境管理部门的监控、管理工作提供方便高效的技术支持。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。


技术特征:

1.一种efdc模型计算结果可视化方法,其特征在于,包括:

将efdc模型计算网格转化为gis数据;

将efdc模型计算网格及背景地理数据通过gis服务器发布成地图服务;

解析efdc计算结果,将计算结果转换为“时序-模拟值”的格式;

存储efdc计算结果,通过“时序-模拟值”的存储格式进行存储;

对efdc计算结果进行查询,计算结果以二维数据的形式进行传输;

从gis服务器端加载背景地理数据,渲染至地图窗口底层,建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低,利用webgl对水质模拟结果进行动态渲染。

2.根据权利要求1所述的方法,其特征在于,存储efdc计算结果,通过“时序-模拟值”的存储格式进行存储,包括:将某时刻所有格网的模拟值以文本的方式保存在数据库中,每个格网的计算结果值之间用逗号进行分隔。

3.根据权利要求1所述的方法,其特征在于,对efdc计算结果进行查询,计算结果以二维数据的形式进行传输,其中,外层数组包含n个子数组,n为该计算模型的格网数量,每个子数组包含两个字段,其中第一个字段表示格网编号,第二个字段表示模拟结果值,最终返回的计算结果包括该时间序列的水质因子极值及模拟值。

4.根据权利要求1或3所述的方法,其特征在于,从gis服务器端加载背景地理数据,渲染至地图窗口底层,建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低,利用webgl对水质模拟结果进行动态渲染,包括:将浏览器端javascript脚本语言和桌面端opengles标准结合在一起,通过增加opengles的一个javascript绑定,webgl可以借助系统gpu为图形渲染提供硬件3d加速,最终根据efdc解析数据后每个网格数值与颜色梯度的对照关系,渲染渐进变化的网格图层,叠加至底图服务之上。

5.一种efdc模型计算结果可视化系统,其特征在于,包括:

转化单元,用于将efdc模型计算网格转化为gis数据;

发布单元,用于将efdc模型计算网格及背景地理数据通过gis服务器发布成地图服务;

解析单元,用于解析efdc计算结果,将计算结果转换为“时序-模拟值”的格式;

存储单元,用于存储efdc计算结果,通过“时序-模拟值”的存储格进行存储;

查询单元,用于对efdc计算结果进行查询,计算结果以二维数据的形式进行传输;

可视化单元,用于从gis服务器端加载背景地理数据,渲染至地图窗口底层,建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低,利用webgl对水质模拟结果进行动态渲染。

6.根据权利要求5所述的系统,其特征在于,存储单元包括:将某时刻所有格网的模拟值以文本的方式保存在数据库中,每个格网的计算结果值之间用逗号进行分隔。

7.根据权利要求5所述的系统,其特征在于,查询单元包括:外层数组包含n个子数组,n为该计算模型的格网数量,每个子数组包含两个字段,其中第一个字段表示格网编号,第二个字段表示模拟结果值,最终返回的计算结果包括该时间序列的水质因子极值及模拟值。

8.根据权利要求5或7所述的系统,其特征在于,可视化单元包括:将浏览器端javascript脚本语言和桌面端opengles标准结合在一起,通过增加opengles的一个javascript绑定,webgl可以借助系统gpu为图形渲染提供硬件3d加速,最终根据efdc解析数据后每个网格数值与颜色梯度的对照关系,渲染渐进变化的网格图层,叠加至底图服务之上。

技术总结
本发明提供了EFDC模型计算结果可视化方法和系统。该方法包括:将EFDC模型计算网格转化为GIS数据;将EFDC模型计算网格及背景地理数据通过GIS服务器发布成地图服务;将计算结果转换为“时序‑模拟值”的格式进行存储;将某时刻所有格网的模拟值保存在数据库中;对EFDC计算结果进行查询,计算结果以二维数据的形式进行传输;从GIS服务器端加载背景地理数据,渲染至地图窗口底层,建立水质模拟值与计算格网颜色之间的对应关系,通过计算格网颜色的深浅表现水质因子浓度的高低,利用WebGL对水质模拟结果进行动态渲染。通过该方法,实现了EFDC计算结果的高效存储、查询、传输及基于WebGIS可视化展示。

技术研发人员:杨坤;张力;李晓飞;宫留留;范青松;黄炎晟
受保护的技术使用者:长江空间信息技术工程有限公司(武汉)
技术研发日:2019.11.29
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-24983.html

最新回复(0)