一种面向应急的大气扩散模型的并行计算方法转让专利

申请号 : CN202110911358.X

文献号 : CN113722890B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李梅杨冬偶张溶倩刘晖毛善君

申请人 : 北京大学

摘要 :

本发明提出一种面向应急的大气扩散模型的并行计算方法,通过对气体扩散模型中三维风场采用空间分割方法,将计算区域均匀分割为多个子区域并分配给云计算平台的各个计算节点,再由主节点对这些子区域风场进行拼接得到完整的风场数据;对浓度场采用受体点分层方法,将计算区域沿Z轴方向设置不同高度的各受体点层并分配给云计算平台的各个计算节点,再由主节点对这些受体点层的浓度场进行拼接得到完整的浓度场。该方法通过各个计算节点对风场各子区域以及浓度场各受体点层进行并行运算,大幅度地缩短了模型计算时间,解决了传统的大气扩散模型程序计算耗时长、难以满足应急响应需要尽快得到结果的需求的问题。

权利要求 :

1.一种面向应急的大气扩散模型的并行计算方法,其特征在于,所述方法包括:获取计算请求数据,所述计算请求数据包括风场计算请求数据和浓度场计算请求数据;

主节点根据所述风场计算请求数据沿Y轴方向将计算区域均匀分割为多个子区域,并计算得到各所述子区域的坐标数据;

所述主节点将各所述子区域的坐标数据分配给各个计算节点,每个所述计算节点计算得出所述子区域的风场数据,并将所述子区域的风场数据发送至所述主节点;

所述主节点将获取到的所有所述子区域的风场数据拼接为完整风场数据;

所述主节点根据所述浓度场计算请求数据沿Z轴方向设置不同高度的各受体点层,得到各所述受体点层的高度数据;

所述主节点将各所述受体点层的高度数据和所述完整风场数据分配给各个计算节点,各个所述计算节点计算得出所述受体点层的浓度场数据,并将所述受体点层的浓度场数据发送至所述主节点;

所述主节点将获取到的所有所述受体点层的浓度场数据整合为完整浓度场数据。

2.根据权利要求1所述的方法,其特征在于,每个所述计算节点计算得出所述子区域的风场数据,包括:

所述计算节点将获取到的数据进行识别并转换成预设格式;

所述计算节点将所述子区域的坐标信息、地理数据、气象数据输入风场计算模块,所述风场计算模块计算并输出所述子区域的网格化的三维风场及温度场数据,同时输出对应的二维风场数据。

3.根据权利要求1所述的方法,其特征在于,各个所述计算节点计算得出所述受体点层的浓度场数据,包括:

各个所述计算节点对各所述受体点层执行浓度场模块程序,所述浓度场模块读入所述完整风场数据和指定的污染源参数,计算并输出各所述受体点层的原始浓度场数据,其中,所述原始浓度场数据至少包括:网格化的三维浓度场及干湿沉降通量;

各个所述计算节点执行后处理器,所述后处理器对所述原始浓度场数据进行处理,得到所述浓度场数据。

4.根据权利要求3所述的方法,其特征在于,所述浓度场数据至少包括:时段均值、峰值、时间序列、线性拉伸。

5.根据权利要求1所述的方法,其特征在于,所述主节点将获取到的所有所述子区域的风场数据拼接为完整风场数据,所述方法包括:根据各所述子区域的大小确定每个所述风场数据的字节数,按照预设格式写入对应的文件头并顺次写入各所述风场数据。

6.根据权利要求1所述的方法,其特征在于,所述主节点将获取到的所有所述受体点层的浓度场数据整合为完整浓度场数据,所述方法包括:根据各所述受体点层的高度顺序依次整理各所述受体点层的浓度场数据,以将所有所述受体点层的浓度场数据整合为所述完整浓度场数据。

说明书 :

一种面向应急的大气扩散模型的并行计算方法

技术领域

[0001] 本申请实施例涉及应急管理辅助决策领域,具体而言,涉及一种面向应急的大气扩散模型的并行计算方法。

背景技术

[0002] 在我国经济高速发展的同时,在诸如煤炭、天然气等高风险生产行业中曾经发生过一些重大的灾害与事故。因此,我国近年来越来越重视应急管理领域,快速的毒害性气体
扩散模拟对于预防和应对突发灾害、减轻灾害造成的损失、保障公共安全等具有重大意义。
[0003] 大气扩散模型起源于环境科学领域,通常用于模拟大区域、长时间的污染物排放。随着应急响应的需求日益增加,它也被用于模拟有害气体的突发性泄漏。但是,传统的大气
扩散模型程序通常采用串行计算的方式,对于计算量较大的案例,其计算耗时往往过长,而
应急模拟算例要求较高的时间分辨率与空间分辨率,导致其计算量也很大。传统方法难以
满足应急响应需要尽快得到结果的需求。而现有的大气扩散模型并行计算方法缺乏对应急
算例的支持,由于应急算例通常具有单一污染源、较短模拟期间、较小实验区域等特征,一
些传统的实验算例层面的并行化方法不再适用,而程序层面的并行化方法应用于复杂的模
型系统时较为困难。

发明内容

[0004] 本申请实施例在于提供一种面向应急的大气扩散模型的并行计算方法,旨在解决传统的大气扩散模型程序计算耗时长、难以满足应急响应需要尽快得到结果的需求的问
题。
[0005] 本申请实施例第一方面提供一种面向应急的大气扩散模型的并行计算方法,包括:
[0006] 获取计算请求数据,计算请求数据包括风场计算请求数据和浓度场计算请求数据;
[0007] 主节点根据风场计算请求数据沿Y轴方向将计算区域均匀分割为多个子区域,并计算得到各子区域的坐标数据;
[0008] 主节点将各子区域的坐标数据分配给各个计算节点,每个计算节点计算得出子区域的风场数据,并将子区域的风场数据发送至主节点;
[0009] 主节点将获取到的所有子区域的风场数据拼接为完整风场数据;
[0010] 主节点根据浓度场计算请求数据沿Z轴方向设置不同高度的各受体点层,得到各受体点层的高度数据;
[0011] 主节点将各受体点层的高度数据和完整风场数据分配给各个计算节点,各个计算节点计算得出受体点层的浓度场数据,并将受体点层的浓度场数据发送至主节点;
[0012] 主节点将获取到的所有受体点层的浓度场数据整合为完整浓度场数据。
[0013] 可选地,每个计算节点计算得出子区域的风场数据,包括:
[0014] 计算节点将获取到的数据进行识别并转换成预设格式;
[0015] 计算节点将子区域的坐标信息、地理数据、气象数据输入风场计算模块,风场计算模块计算并输出子区域的网格化的三维风场及温度场数据,同时输出对应的二维风场数
据。
[0016] 可选地,各个计算节点计算得出受体点层的浓度场数据,包括:
[0017] 各个计算节点对各受体点层执行浓度场模块程序,浓度场模块读入完整风场数据和指定的污染源参数,计算并输出各受体点层的原始浓度场数据,其中,原始浓度场数据至
少包括:网格化的三维浓度场及干湿沉降通量;
[0018] 各个计算节点执行后处理器,后处理器对原始浓度场数据进行处理,得到浓度场数据。
[0019] 可选地,浓度场数据至少包括:时段均值、峰值、时间序列、线性拉伸。
[0020] 可选地,主节点将获取到的所有子区域的风场数据拼接为完整风场数据,方法包括:
[0021] 根据各子区域的大小确定每个风场数据的字节数,按照预设格式写入对应的文件头并顺次写入各风场数据。
[0022] 可选地,主节点将获取到的所有受体点层的浓度场数据整合为完整浓度场数据,方法包括:
[0023] 根据各受体点层的高度顺序依次整理各受体点层的浓度场数据,以将所有受体点层的浓度场数据整合为完整浓度场数据。
[0024] 有益效果:
[0025] 本申请提供的面向应急的大气扩散模型的并行计算方法,通过对风场采用空间分割方法,将计算区域均匀分割为多个子区域并分配给云计算平台的各个计算节点,各个计
算节点并行计算每个子区域的风场数据,再由主节点对这些子区域风场进行拼接得到完整
的风场;对浓度场采用受体点分层方法,将计算区域沿Z轴方向设置不同高度的各受体点层
并分配给云计算平台的各个计算节点,各个计算节点并行计算每个受体点层的浓度场数
据,再由主节点对这些受体点层的浓度场进行拼接得到完整的浓度场。该方法对应急响应
算例具有良好的加速效果,能够将模型计算时间大幅度缩短,对于将大气扩散模型拓展至
应急领域具有重要意义,解决了传统的大气扩散模型程序计算耗时长、难以满足应急响应
需要尽快得到结果的需求的问题。

附图说明

[0026] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图
获得其他的附图。
[0027] 图1是本申请一实施例提出的面向应急的大气扩散模型的并行计算方法的流程图;
[0028] 图2是本申请一实施例提出的风场计算模块并行化方法示意图;
[0029] 图3是本申请一实施例提出的浓度场计算模块并行化方法示意图;
[0030] 图4是本申请一实施例提出的面向应急的大气扩散模型的并行计算方法的硬件结构图。

具体实施方式

[0031] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申
请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施
例,都属于本申请保护的范围。
[0032] 相关技术中,传统的大气扩散模型程序通常采用串行计算的方式,对于计算量较大的案例,其计算耗时往往过长,而应急模拟算例要求较高的时间分辨率与空间分辨率,导
致其计算量也很大。传统方法难以满足应急响应需要尽快得到结果的需求。而现有的大气
扩散模型并行计算方法缺乏对应急算例的支持,由于应急算例通常具有单一污染源、较短
模拟期间、较小实验区域等特征,一些传统的实验算例层面的并行化方法不再适用,而程序
层面的并行化方法应用于复杂的模型系统时较为困难。
[0033] 有鉴于此,本申请提供的面向应急的大气扩散模型的并行计算方法,通过对风场采用空间分割方法,将计算区域均匀分割为多个子区域并分配给云计算平台的各个计算节
点,各个计算节点并行计算每个子区域的风场数据,再由主节点对这些子区域风场进行拼
接得到完整的风场;对浓度场采用受体点分层方法,将计算区域沿Z轴方向设置不同高度的
各受体点层并分配给云计算平台的各个计算节点,各个计算节点并行计算每个受体点层的
浓度场数据,再由主节点对这些受体点层的浓度场进行拼接得到完整的浓度场。该方法对
应急响应算例具有良好的加速效果,能够将模型计算时间大幅度缩短,对于将大气扩散模
型拓展至应急领域具有重要意义,解决了传统的大气扩散模型程序计算耗时长、难以满足
应急响应需要尽快得到结果的需求的问题。
[0034] 实施例一
[0035] 参照图1,示出了本申请面向应急的大气扩散模型的并行计算方法的流程图,如图1所示,本申请实施例一提供一种面向应急的大气扩散模型的并行计算方法,包括:
[0036] 获取计算请求数据,计算请求数据包括风场计算请求数据和浓度场计算请求数据。风场计算请求数据至少包括计算区域坐标和计算区域划分数;浓度场计算请求数据至
少包括受体点的层数和层间距。
[0037] 参照图2,示出了本申请风场计算模块并行化方法示意图,如图2所示,主节点收到计算请求数据后,根据风场计算请求数据沿Y轴方向将计算区域均匀分割为多个子区域,并
计算得到各子区域的坐标数据;子区域的个数根据风场计算请求数据中的计算区域划分数
来确定,计算区域划分数由用户根据自身需求设定。
[0038] 参照图4,示出了本申请面向应急的大气扩散模型的并行计算方法的硬件结构图,如图4所示,主节点将各子区域的坐标数据分配给各个计算节点,分配的方法包括:主节点
将各子区域的坐标作为消息发送至消息队列软件的交换机的公共队列中,所有空闲状态的
计算节点监听该队列,并从中获取一条消息,即一个子区域的坐标。
[0039] 每个计算节点计算得出子区域的风场数据,并将子区域的风场数据的统一资源定位器(Uniform Resource Locator,以下简称URL)发送至主节点;主节点通过URL下载所有
的子区域风场数据。
[0040] 主节点将获取到的所有子区域的风场数据拼接为完整风场数据。
[0041] 参照图3,示出了本申请浓度场计算模块并行化方法示意图,如图3所示,在一个三维算例中,在Z轴方向上通常具有多层受体点,主节点根据受体点的层数和层间距沿Z轴方
向设置不同高度的各受体点层,得到各受体点层的高度数据。
[0042] 主节点将各受体点层的高度数据和完整风场数据分配给各个计算节点,如图4所示,分配的方法包括:主节点将各层的高度及完整风场数据的URL作为消息发送至交换机的
公共队列中,所有空闲状态的计算节点监听该队列,并从中获取一条消息,即一层受体点的
高度值。
[0043] 各个计算节点计算得出受体点层的浓度场数据,并将受体点层的浓度场数据的URL通过特定的回复队列发送至主节点;主节点通过URL下载所有的单层受体点层的浓度场
数据。
[0044] 主节点将获取到的所有受体点层的浓度场数据整合为完整浓度场数据。
[0045] 本申请提供的面向应急的大气扩散模型的并行计算方法,通过对风场采用空间分割方法,将计算区域均匀分割为多个子区域并分配给云计算平台的各个计算节点,各个计
算节点并行计算每个子区域的风场数据,再由主节点对这些子区域风场进行拼接得到完整
的风场;对浓度场采用受体点分层方法,将计算区域沿Z轴方向设置不同高度的各受体点层
并分配给云计算平台的各个计算节点,各个计算节点并行计算每个受体点层的浓度场数
据,再由主节点对这些受体点层的浓度场进行拼接得到完整的浓度场。该方法对应急响应
算例具有良好的加速效果,能够将模型计算时间大幅度缩短,对于将大气扩散模型拓展至
应急领域具有重要意义,解决了传统的大气扩散模型程序计算耗时长、难以满足应急响应
需要尽快得到结果的需求的问题。
[0046] 基于上述面向应急的大气扩散模型的并行计算方法,本申请提供以下一些具体可实施方式的示例,在互不抵触的前提下,各个示例之间可任意组合,以形成又一种面向应急
的大气扩散模型的并行计算方法,应当理解的,对于由任意示例所组合形成的又一种面向
应急的大气扩散模型的并行计算方法,均应落入本申请的保护范围。
[0047] 在本实施方式中,各计算节点上均配置有CALPUFF大气扩散模型作为研究例子,CALPUFF模型是美国西格玛研究公司研发的开源大气扩散模型,经过美国环境保护署认证,
并且是中国生态环境部发布的《环境影响评价技术导则大气环境》(HJ 2.2‑2018)中的推荐
模型,是应用较为广泛的主流环境质量法规模型之一。
[0048] CALPUFF模型包括风场计算模块和浓度场计算模块,风场计算模块用于计算风场数据,由于风场计算模块与污染源和受体点无关,现有的并行化方法通常是分割模拟期间,
即时间分割。但由于风场计算模块考虑大气的昼夜变化并且要求模拟开始时间必须早于当
地时间早上5点,现有方法无法应用于模拟期间小于一天的算例。在许多应急情况下,模拟
周期不到一天,因此我们采用了分割模拟区域的方法,即空间分割。这种方法提高了对应急
算例的适用性。
[0049] 浓度场计算模块用于计算浓度场数据,对于浓度场计算模块,根据模型的原理,模拟过程是连续的,难以进行并行计算。但对于一些特殊的算例,仍有一些并行化的策略。目
前,在环境领域浓度场计算模块主要应用于地面浓度计算,而三维浓度场计算比较少见。实
际上,浓度场计算模块可以输出三维浓度场,而应急响应中三维浓度场是十分必要的。在一
个三维算例中,在Z轴方向上通常具有多层受体点,它们可以在计算集群上被并行计算。对
于这一模块,现有的并行化方式通常是在一个多源环境模拟案例中分割污染源,而我们为
许多只有一个污染源的应急算例提供了并行化方法。
[0050] 每个计算节点计算得出子区域的风场数据,包括:
[0051] 计算节点将获取到的数据进行识别并转换成预设格式,包括:计算节点执行CALPUFF模型系统中的各种预处理器,包括地面站气象数据预处理器、探空气象数据预处理
器、地形高程数据预处理器、土地利用数据预处理器、地理数据最终预处理器等,将不同类
型的数据文件进行识别并转换成风场计算模块能够读取的格式。
[0052] 计算节点将子区域的坐标信息、地理数据、气象数据输入风场计算模块,风场计算模块读入预处理器生成的网格化地理、气象数据文件,计算并输出子区域的网格化的三维
风场及温度场数据,同时输出对应的二维风场数据。其中,二维风场数据至少包括对应的混
合层高度、地表参数等。
[0053] 在本实施方式中,各个计算节点计算得出受体点层的浓度场数据,包括:
[0054] 各个计算节点对各受体点层执行浓度场模块程序,浓度场模块是一个输运和扩散模型,浓度场模块读入完整风场数据和指定的污染源参数,计算并输出各受体点层的原始
浓度场数据,其中,原始浓度场数据至少包括:网格化的三维浓度场及干湿沉降通量;
[0055] 各个计算节点执行后处理器,后处理器对浓度场模块生成的原始浓度场数据进行处理,得到浓度场数据。此外浓度场模块根据得到浓度场数据还可以进行能见度模拟。
[0056] 在其中一种实施例中,浓度场数据至少包括:时段均值、峰值、时间序列、线性拉伸。用户可以根据自身需求指定浓度场模块输出不同类型的浓度场数据。
[0057] 在其中另一种实施例中,主节点将获取到的所有子区域的风场数据拼接为完整风场数据,方法包括:
[0058] 风场计算模块通过文件拼接算法将所有子区域的风场数据拼接为完整风场数据,由于风场计算模块中预设风场数据的格式为二进制格式,根据各子区域的大小确定每个风
场数据的字节数,按照预设格式写入对应的文件头并顺次写入各风场数据,以此将所有子
区域的风场数据拼接为完整风场数据。
[0059] 在本实施方式中,主节点将获取到的所有受体点层的浓度场数据整合为完整浓度场数据,方法包括:
[0060] 根据各受体点层的高度顺序依次整理各受体点层的浓度场数据,以将所有受体点层的浓度场数据整合为完整浓度场数据,完整浓度场数据可以用于后续的三维可视化。
[0061] 应当理解地,本申请说明书尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所
以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修
改。
[0062] 以上对本申请所提供的一种面向应急的大气扩散模型的并行计算方法,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说
明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据
本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不
应理解为对本申请的限制。