空气污染扩散模型-高斯烟羽烟团模型原理及GIS应用示例

这篇具有很好参考价值的文章主要介绍了空气污染扩散模型-高斯烟羽烟团模型原理及GIS应用示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 在线模拟示例

在线示例https://simu.cool/vue/
高斯烟羽扩散模型,GIS行业模型,java

2 高斯模型

2.1 高斯烟团模型

   突发性泄漏事故中,经常发生污染源在短时间内突然释放大量的有害气体,此时对地面污染浓度的求解适合采用高斯烟团模型。烟团模型假定污染气云的体积沿水平和垂直方向增长,模拟污染气云在时间和空间上的变化。

2.2 高斯烟羽模型

  高斯烟羽模式是计算释入大气中的气载污染物下风向浓度的应用最广的方法。此模式假定烟羽中污染物浓度分布在水平方向和垂直方向都遵循高斯分布。对于在恒定气象条件(指风向、风速、大气稳定度不随时间而变)高架点源的连续排放,在考虑了烟羽在地面的全反射后,下风向任一点的污染物浓度C (r,y,z)可由高斯烟羽公式进行模拟。

高斯扩散公式的建立有如下假设:
①风的平均流场稳定,风速均匀,风向平直;
②y、z轴方向符合正态分布;
③污染物在输送扩散中质量守恒;
④污染源的源强均匀、连续

高斯烟羽扩散模型,GIS行业模型,java

    如图所示,有效源位于坐标原点o处,平均风向与x轴平行,并与x轴正向同向。假设点源在没有任何障碍物的自由空间扩散,不考虑下垫面的存在。大气中的扩散是具有y与z两个坐标方向的二维正态分布,当两坐标方向的随机变量独立时,分布密度为每个坐标方向的一维正态分布密度函数的乘积。
    经过推理得出计算公式:

高斯烟羽扩散模型,GIS行业模型,java
C—空间点(x,y,z)的污染物的浓度,mg/m3;
σy、σz—分别为水平、垂直方向的标准差,即y、x方向的扩散参数
u —为平均风速
x —为风向轴上空间点到源的距离
y —为风向轴垂直方向上空间点到源的距离
z —为空间点的高度

σy、σz与大气稳定度和水平距离x有关,并随x的增大而增加。通过理论或经验的方法可得σ=f(x),可求出最大浓度点离源的距离x,具体可查阅我国GB384091《制定地方大气污染物排放标准的技术方法》。

2.2.1 方程

高斯烟羽扩散模型,GIS行业模型,java

式中c为污染物浓度(单位:mg/m3)
Q为源强(单位:mg/s)
u为泄漏高度的平均风速(单位:m/s)
y、z分别用浓度标准偏差表示的y轴及z轴上的扩散参数
H为泄漏有效高度(单位:m) 

2.2.2 适用条件

(1)污染物浓度在y、z轴上的分布符合高斯分布(正态分布);

(2)在全部空间中风速是均匀的、稳定的;

(3)源强是连续均匀的;

(4)在扩散过程中污染物质量是守恒的(不考虑转化)。

3 高斯羽烟模型参数

3.1 坐标系

高斯模式的坐标系如下图所示,其原点为排放点(无界点源或地面源)或高架源排放点在地面的投影点,x轴正向为平均风向,y轴在水平面上垂直于x轴,正向在x轴的左侧,z轴垂直于水平面xoy,向上为正向,即为右手坐标系。

高斯烟羽扩散模型,GIS行业模型,java

3.2 烟气抬升

有效源高H,等于烟囱的几何高度与烟气抬升高度△H之和,即

高斯烟羽扩散模型,GIS行业模型,java

对于一确定的烟囱,其几何高度H是确定值,只要计算出抬升高度△H值,就可以求出有效源高H。我国“制订地方大气污染物排放标准的技术方法”(GB/T13201-91)中规定选用Briggs 公式作为适用计算模型,请参考相关文献。

3.3 大气稳定度

大气稳定度指大气中某一高度上的气团在垂直方向上的相对稳定程度。如果给一团空气一个初始作用力,使其作向上的垂直运动,垂直运动的气块在外力消失后,又逐渐回到原来的位置,这种状况的大气是稳定的;当外力消失后,气块仍继续上升,甚至加速前进,这种状况的大气是不稳定的;当外力消失后,气块停留在其已到达的位置,既不上升也不下降,这种状况的大气处于中性状态。

我国《环境影响评价技术导则》中推荐了用常规地面观测资料划分大气稳定度的方法。大气稳定度的分类方法采用经过修正的帕斯奎尔(Pasquill)稳定度分级法(Ps),将大气扩散稳定度分为强不稳定、不稳定、弱不稳定、中性、弱稳定和稳定六级,分别用A、B、C、D、E、F来表示。确定等级时首先根据云量与太阳高度角按下表查出太阳辐射等级数,再由太阳辐射等级数与地面风速按下表查找稳定度等级。

高斯烟羽扩散模型,GIS行业模型,java

 高斯烟羽扩散模型,GIS行业模型,java

高斯烟羽扩散模型,GIS行业模型,java

3.4 有风条件下的扩散系数

    1. 有风时扩散参数、:
    扩散参数是大气稳定度和距离的函数,其表达式可写为以下幂指数的

 高斯烟羽扩散模型,GIS行业模型,java

     如无实测值时,上述各指数、系数的值可按下述方法选取:

     (1) 平原地区农村及城市远郊区的扩散参数如下:A、B、C级稳定度直接由表2-9和表2-10查算,D、E、F级稳定度则需向不稳定方向提半级后由表2-9和表2-10查算。
     (2) 工业区或城区中的点源,其扩散参数选取方法如下:
A、B级不提级,C级提到B级,D、E、F级向不稳定方向提一级,再按表2-9和表2-10查算。

高斯烟羽扩散模型,GIS行业模型,java

高斯烟羽扩散模型,GIS行业模型,java文章来源地址https://www.toymoban.com/news/detail-780296.html

4 参考代码

 /**
     * 获取横向扩散参数回归系数
     *
     * @param windSpeed 风速
     * @param Q         大气稳定度
     * @return
     */
    public double getGamma01Light(double windSpeed, final String Q) {
        double gamma = 0;
        if (Q.equalsIgnoreCase("A")) {
            if (windSpeed < 0.5) {
                gamma = 0.93;
            } else if (windSpeed < 1.5) {
                gamma = 0.76;
            }
        } else if (Q.equalsIgnoreCase("B")) {
            if (windSpeed < 0.5) {
                gamma = 0.76;
            } else if (windSpeed < 1.5) {
                gamma = 0.56;
            }
        } else if (Q.equals("C")) {
            if (windSpeed < 0.5) {
                gamma = 0.55;
            } else if (windSpeed < 1.5) {
                gamma = 0.35;
            }
        } else if (Q.equals("D")) {
            if (windSpeed < 0.5) {
                gamma = 0.47;
            } else if (windSpeed < 1.5) {
                gamma = 0.27;
            }
        } else if (Q.equals("E")) {
            if (windSpeed < 0.5) {
                gamma = 0.44;
            } else if (windSpeed < 1.5) {
                gamma = 0.24;
            }
        } else if (Q.equals("F")) {
            if (windSpeed < 0.5) {
                gamma = 0.44;
            } else if (windSpeed < 1.5) {
                gamma = 0.24;
            }
        }

        return gamma;
    }

    /**
     * 获取铅直扩散参数回归系数
     *
     * @param windSpeed 风速
     * @param Q         大气稳定度
     * @return
     */
    public double getGamma02Light(double windSpeed, final String Q) {
        double gamma = 0;
        if (Q.equalsIgnoreCase("A")) {
            if (windSpeed < 0.5) {
                gamma = 0.15;
            } else if (windSpeed < 1.5) {
                gamma = 1.57;
            }
        } else if (Q.equalsIgnoreCase("B")) {
            if (windSpeed < 0.5) {
                gamma = 0.47;
            } else if (windSpeed < 1.5) {
                gamma = 0.47;
            }
        } else if (Q.equals("C")) {
            if (windSpeed < 0.5) {
                gamma = 0.21;
            } else if (windSpeed < 1.5) {
                gamma = 0.21;
            }
        } else if (Q.equals("D")) {
            if (windSpeed < 0.5) {
                gamma = 0.12;
            } else if (windSpeed < 1.5) {
                gamma = 0.12;
            }
        } else if (Q.equals("E")) {
            if (windSpeed < 0.5) {
                gamma = 0.07;
            } else if (windSpeed < 1.5) {
                gamma = 0.07;
            }
        } else if (Q.equals("F")) {
            if (windSpeed < 0.5) {
                gamma = 0.05;
            } else if (windSpeed < 1.5) {
                gamma = 0.05;
            }
        }

        return gamma;
    }
package com.planet.engine.air.param;

import lombok.Data;

/**
 * 运算参数
 */
@Data
public class AirProcParam {
    /**
     * 经纬度坐标系:污染点原点x
     */
    private double lon = 108.14D;

    /**
     * 经纬度坐标系:污染点原点y
     */
    private double lat = 36.27D;

    /**
     * 起算点即原点高程
     */
    private Integer startEle = 0;

    /**
     * 投影横坐标
     */
    private double x = 0;

    /**
     * 投影纵坐标
     */
    private double y = 0;

    /**
     * 当前计算点z坐标
     * 不做地形改正时,为计算点离地面高
     * 做地形改正时,为计算点的高程改正值
     */
    private double z = 20;

    /**
     * 模拟时间
     * 单位秒
     */
    private int timeSec = 600;

    /**
     * 扇形开度,算法要求不超过45度
     */
    private double sectorAngle = 90;

    /**
     * 扇形弧段加密点数
     */
    private int pointsNumSector = 6;

    /**
     * 扇形弧段加密点数
     */
    private int pointsNumCircle = 24;

    /**
     * 高斯烟团或者高斯烟羽
     * 分别用0和1表示
     */
    private Integer type = 0;

    /**
     * 网格点间距,单位:米
     */
    private float sideLen = 200f;

    /**
     * 密度阈值,单位mg/m3
     * 超过此值的需要做叠加分析
     */
    private Integer densityThr = 3;
}
package com.planet.controller;

import com.planet.common.annotations.LimitRequest;
import com.planet.engine.air.param.GaussAirParam;
import com.planet.model.SecurityUser;
import com.planet.model.enums.SimuType;
import com.planet.model.enums.StatusType;
import com.planet.service.GaussAirService;
import com.planet.service.SimuHistService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


/**
 * Created by 之乎者也
 * 
 */
@RestController
@RequestMapping("/api/air")
@Api(value = "AirSimuApi", description = "空气污染扩散模拟模型")
public class AirSimuApi extends MyBaseApi {

    @Autowired
    private GaussAirService gaussAirService;

    @Autowired
    private SimuHistService simuHistService;

    @LimitRequest
    @ResponseBody
    @RequestMapping(value = "/gauss", method = RequestMethod.POST)
    @ApiOperation(value = "高斯烟羽扩散模拟接口")
    public Result gaussSimu(@RequestBody GaussAirParam params) {
        // 验证参数有效性,例如风速
        String result = this.gaussAirService.calc(params);

        // 异步保存历史纪录
        SecurityUser securityUser = this.getLoginUser();
        String paramsStr = this.getReqParams(params);
        if(params.getProcParams().getType().equals(1)){
            this.simuHistService.save(securityUser, SimuType.GAUSS_PLUME, paramsStr, StatusType.SUCCESS.code(), result);
        }else{
            this.simuHistService.save(securityUser, SimuType.GAUSS_BALL, paramsStr, StatusType.SUCCESS.code(), result);
        }


        return this.getResult(ResultCode.SUCCESS, result);
    }
}

到了这里,关于空气污染扩散模型-高斯烟羽烟团模型原理及GIS应用示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 生成模型(四):扩散模型02【第一单元:扩散模型简介】

    生成模型(四):扩散模型02【第一单元:扩散模型简介】

    欢迎来到 Hugging Face 扩散模型课程第一单元!在本单元中,你将学习有关扩散模型如何工作的基础知识,以及如何使用 🤗 diffusers 库。 扩散模型是「生成模型」算法家族的新成员通过学习给定的训练样本,生成模型可以学会如何  生成  数据,比如生成图片或者声音。一个好

    2024年02月13日
    浏览(30)
  • 【AIGC】2、扩散模型 | 到底什么是扩散模型?

    【AIGC】2、扩散模型 | 到底什么是扩散模型?

    参考论文:A Survey on Generative Diffusion Model github:https://github.com/chq1155/A-Survey-on-Generative-Diffusion-Model 1.1 现有生成模型简介 已经有大量的方法证明深度生成模型能够模拟人类的想象思维,生成人类难以分辨真伪的内容,主要方法如下: 1、GAN:用神经网络训练生成器和判别器 G

    2024年02月10日
    浏览(17)
  • 【扩散模型】2、DDPM | 去噪扩散概率模型开山之作

    【扩散模型】2、DDPM | 去噪扩散概率模型开山之作

    论文:Denoising Diffusion Probabilistic Models 代码:https://github.com/hojonathanho/diffusion stable diffusion 代码实现:https://github.com/CompVis/stable-diffusion/blob/main/ldm/models/diffusion/ddpm.py 出处:伯克利 时间:2020.06 假设均值为 0,方差为 1 的高斯分布,则对应的噪声示例如下,就是在 0 附近分布的

    2024年02月07日
    浏览(13)
  • 2023年美赛数学建模E题思路模型分析(光污染)

    2023年美赛数学建模E题思路模型分析(光污染)

    光污染用于描述人造光的任何过度或不良使用。一些我们所说的光污染现象包括光侵入、过度照明和光杂乱。这些现象最容易被观察到,就像太阳落山后天空中的辉光一样。设置在大城市:但是,它们也可能发生在更偏远的地区。光污染改变了我们对夜空的看法,对环境产生

    2024年02月10日
    浏览(11)
  • 番外篇Diffusion&Stable Diffusion扩散模型与稳定扩散模型

    番外篇Diffusion&Stable Diffusion扩散模型与稳定扩散模型

    本篇文章为阅读笔记,,主要内容围绕扩散模型和稳定扩散模型展开,介绍了kl loss、vae模型的损失函数以及变分下限作为扩展部分。扩散模型是一种生成模型,定义了一个逐渐扩散的马尔科夫链,逐渐项数据添加噪声,然后学习逆扩散过程,从噪声中构建所需的数据样本。稳

    2024年02月03日
    浏览(13)
  • AIGC原理:扩散模型diffusion综述一:面向视觉计算的扩散模型研究进展

    AIGC原理:扩散模型diffusion综述一:面向视觉计算的扩散模型研究进展

    论文地址:State of the Art on Diffusion Models for Visual Computing 👉 贴一幅SGM(Score-based Generative Model)的原因是宋飏博士将他2019年提出的SMLD模型和2020年Jonathan Ho提出的DDPM采用SDE进行一统这两大极为相似的生成式模型。殊途同归,基于概率的扩散模型DDPM和基于分数的扩散模型SMLD都是

    2024年02月05日
    浏览(12)
  • 扩散模型与生成模型详解

    扩散模型与生成模型详解

    扩散模型的简介 生成建模是理解自然数据分布的开创性任务之一。VAE、GAN和Flow系列模型因其实用性能而在过去几年中占据了该领域的主导地位。尽管取得了商业上的成功,但它们的理论和设计缺陷(棘手的似然计算、限制性架构、不稳定的训练动力学等)导致了一类名为“

    2024年02月05日
    浏览(6)
  • 【生成模型】DDPM概率扩散模型(原理+代码)

    【生成模型】DDPM概率扩散模型(原理+代码)

    AI 作画从 18 年的 DeepDream噩梦中惊醒过来,在 2022 年 OpenAI 的 DALL·E 2达到惊人效果,见图: AI + 艺术涉及到 Transformer、VAE、ELBO、Diffusion Model 等一系列跟数学相关的知识。 Diffusion Models 跟 VAE 一样原理很复杂 。 扩散模型 (论文: DDPM 即 Denoising Diffusion Probabilistic Model)2020年发

    2023年04月18日
    浏览(9)
  • 探讨自回归模型和扩散模型的发展应用

    探讨自回归模型和扩散模型的发展应用

    在当前大模型驱动的内容创新浪潮中,人工智能产业正以前所未有的力度拥抱一场由大模型技术策动的科技革新运动。这场革命不仅重塑了人机交互的边界,使其跃升至更高层次的认知协作,而且正在颠覆传统的计算思维与执行模式,催生出全新的计算范式,从而深刻地渗透

    2024年04月25日
    浏览(15)
  • 图像融合、Transformer、扩散模型

    图像融合、Transformer、扩散模型

            在这篇博客中,主要是收集到一些图像融合框架中引入Transformer结构的文章,提供给大家参考学习,目前图像融合领域引入Transformer结构的文章比较少(我所看到的比较少,也看可能我看的比较少?),主要作用就是把它作为一种提取特征的方式,或者说更倾向于

    2024年02月05日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包