python 高斯烟羽模型_高斯扩散模型-高斯烟羽大气污染扩散模型
高斯,大名鼎鼎
约翰·卡尔·弗里德里希·高斯(德语:Johann Carl Friedrich Gauß; ,英语:Gauss,拉丁语:Carolus Fridericus Gauss,1777年4月30日-1855年2月23日),生于布伦瑞克,卒于哥廷根。德国著名数学家、物理学家、天文学家、几何学家,大地测量学家。享有“数学王子”的美誉。
这个人太厉害了,今天用到的核心便是高斯正态分布
正态分布概念是由德国的数学家和天文学家Moivre于1733年首次提出的,但由于德国数学家Gauss率先将其应用于天文学研究,故正态分布又叫高斯分布,高斯这项工作对后世的影响极大,他使正态分布同时有了“高斯分布”的名称,后世之所以多将最小二乘法的发明权归之于他,也是出于这一工作。
连续点源扩散
连续点源一般指排放大量污染物的烟囱、放散管、通风口等。排放口安置在地面的称为地面点源,处于高空位置的称为高架点源。
1. 大空间点源扩散
高斯扩散公式的建立有如下假设:
①风的平均流场稳定,风速均匀,风向平直;
②y、z轴方向符合正态分布;
③污染物在输送扩散中质量守恒;
④污染源的源强均匀、连续
如图所示,有效源位于坐标原点o处,平均风向与x轴平行,并与x轴正向同向。假设点源在没有任何障碍物的自由空间扩散,不考虑下垫面的存在。大气中的扩散是具有y与z两个坐标方向的二维正态分布,当两坐标方向的随机变量独立时,分布密度为每个坐标方向的一维正态分布密度函数的乘积。
经过推理得出计算公式:
C—空间点(x,y,z)的污染物的浓度,mg/m3;
σy、σz—分别为水平、垂直方向的标准差,即y、x方向的扩散参数
u —为平均风速
x —为风向轴上空间点到源的距离
y —为风向轴垂直方向上空间点到源的距离
z —为空间点的高度
σy、σz与大气稳定度和水平距离x有关,并随x的增大而增加。通过理论或经验的方法可得σ=f(x),可求出最大浓度点离源的距离x,具体可查阅我国GB384091《制定地方大气污染物排放标准的技术方法》。
2. 高架点源扩散
在点源的实际扩散中,污染物可能受到地面障碍物的阻挡,因此应当考虑地面对扩散的影响。处理的方法是,或者假定污染物在扩散过程中的质量不变,到达地面时不发生沉降或化学反应而全部反射;或者污染物在没有反射而被全部吸收,实际情况应在这两者之间。
(1) 高架点源扩散模式
点源在地面上的投影点o 作为坐标原点,有效源位于z 轴上某点, z = H。高架有效源的高度由两部分组成,即H=h+Δ h,其中h为排放口的有效高度, Δh 是热烟流的浮升力和烟气以一定速度竖直离开排放口的冲力使烟流抬升的一个附加高度
经过推理得出计算公式:
C—空间点(x,y,z)的污染物的浓度,mg/m3;
σy、σz—分别为水平、垂直方向的标准差,即y、x方向的扩散参数
u —为平均风速
x —为风向轴上空间点到源的距离
y —为风向轴垂直方向上空间点到源的距离
z —为空间点的高度
H—为烟囱高度
近期用高架点源扩散模式做了个效果,大概实现还有很大的优化空间
(2) 地面全部反射时的地面浓度
实际中,高架点源扩散问题中最关心的是地面浓度的分布状况,尤其是地面最大浓度值和它离源头的距离。
y 方向的浓度以x 轴为对称轴按正态分布;沿x 轴线上,在污染物排放源附近地面浓度接近于零,然后顺风向不断增大,在离源一定距离时的某处,地面轴线上的浓度达到最大值,以后又逐渐减小。
高架点源的地面浓度公式中令y=0则可得到沿x轴线上的浓度分布:
3. 地面点源扩散
对于地面点源,则有效源高度H=0。当污染物到达地面后被全部反射时,可令H=0,即得出地面连续点源的高斯扩散公式:
连续线源扩散
当污染物沿一水平方向连续排放时,可将其视为一线源,如汽车行驶在平坦开阔的公路上。线源在横风向排放的污染物浓度相等,这样,可将点源扩散的高斯模式对变量y积分,即可获得线源的高斯扩散模式。但由于线源排放路径相对固定,具有方向性,若取平均风向为x轴,则线源与平均风向未必同向。所以线源的情况较复杂,应当考虑线源与风向夹角以及线源的长度等问题。
连续面源扩散
当众多的污染源在一地区内排放时,如城市中家庭炉灶的排放,可将它们作为面源来处理。因为这些污染源排放量很小但数量很大,若依点源来处理,将是非常繁杂的计算工作。
大气的稳定度
大气稳定度是指大气中的某一气团在垂直方向上的稳定程度。
一团空气受到某种外力作用而产生上升或者下降运动,当运动到某—位置时消除外力,此后气团的运动可能出现三种情况:
①气团仍然继续加速向前运动,这时的大气称为不稳定大气;
②气团不加速也不减速而作匀速运动,或趋向停留在外力去除时所处的位置,这时的大气称为中性大气;
③气团逐渐减速并有返回原先高度的趋势,这时的大气称为稳定大气。
分类
大气稳定度与天气现象、时空尺度及地理条件密切相关,其级别的准确划分非常困难。
目前国内外对大气稳定度的分类方法已多达10余种,应用较广泛的有帕斯奎尔(Pasquill)法和特纳尔(Turner)法。
帕斯奎尔法用地面风速(距离地面高度10m)、白天的太阳辐射状况(分为强、中、弱、阴天等)或夜间云量的大小将稳定度分为A~F六个级别
帕斯奎尔法虽然可以利用常规气象资料确定大气稳定度等级,简单易行,应用方便,但这种方法没有确切地描述太阳的辐射强度,云量的确定也不准确,较为粗略,为此特纳尔作了改进与补充。
特纳尔方法首先根据某地、某时及太阳倾角的太阳高度θ h 和云量( 全天空为10 分制) ,确定太阳辐射等级,再由太阳的辐射等级和距地面高度10m的平均风速确定大气稳定度的级别。
我国采用特纳尔方法
模型计算:
//获取稳定度对应Qy,x为距离,Q大气稳定度
function GetQy(x, Q) {
var a = 0.0;
var r = 0.0;
if (Q == "A") {
if (x <= 1000) {
a = 0.901074;
r = 0.425809;
}
else {
a = 0.850934;
r = 0.602052;
}
}
else if (Q == "B") {
if (x <= 1000) {
a = 0.914370;
r = 0.281846;
}
else {
a = 0.865014;
r = 0.396353;
}
}
else if (Q == "B-C") {
if (x <= 1000) {
a = 0.919325;
r = 0.229500;
}
else {
a = 0.875086;
r = 0.314238;
}
}
else if (Q == "C") {
if (x <= 1000) {
a = 0.924279;
r = 0.177154;
}
else {
a = 0.885157;
r = 0.232123;
}
}
else if (Q == "C-D") {
if (x <= 1000) {
a = 0.926849;
r = 0.143940;
}
else {
a = 0.886940;
r = 0.189396;
}
}
else if (Q == "D") {
if (x <= 1000) {
a = 0.929418;
r = 0.110726;
}
else {
a = 0.888723;
r = 0.146669;
}
}
else if (Q == "D-E") {
if (x <= 1000) {
a = 0.925118;
r = 0.0985631;
}
else {
a = 0.892794;
r = 0.124308;
}
}
else if (Q == "E") {
if (x <= 1000) {
a = 0.920818;
r = 0.0864001;
}
else {
a = 0.896864;
r = 0.101947;
}
}
else {
if (x <= 1000) {
a = 0.929418;
r = 0.0553634;
}
else {
a = 0.888723;
r = 0.0733348;
}
}
var Qz = Math.pow(x, a) * r;
return Qz;
}
//获取稳定度对应Qz,x为距离,Q大气稳定度
function GetQz(x, Q) {
var a = 0.0;
var r = 0.0;
if (Q == "A") {
if (x <= 300) {
a = 1.12154;
r = 0.0799904;
}
else if (x > 300 || x <= 500) {
a = 1.51360;
r = 0.00854771;
}
else {
a = 2.10881;
r = 0.000211545;
}
}
else if (Q == "B") {
if (x <= 500) {
a = 0.964435;
r = 0.127190;
}
else {
a = 0.109356;
r = 0.057025;
}
}
else if (Q == "B-C") {
if (x <= 500) {
a = 0.941015;
r = 0.114682;
}
else {
a = 1.00770;
r = 0.0757182;
}
}
else if (Q == "C") {
a = 0.917595;
r = 0.106803;
}
else if (Q == "C-D") {
if (x <= 2000) {
a = 0.838628;
r = 0.126152;
}
else if (x > 2000 || x <= 10000) {
a = 0.756410;
r = 0.235667;
}
else {
a = 0.815575;
r = 0.136659;
}
}
else if (Q == "D") {
if (x <= 1000) {
a = 0.826212;
r = 0.104634;
}
else if (x > 1000 || x <= 10000) {
a = 0.632023;
r = 0.400167;
}
else {
a = 0.55536;
r = 0.810763;
}
}
else if (Q == "D-E") {
if (x <= 2000) {
a = 0.776864;
r = 0.111771;
}
else if (x > 2000 || x <= 10000) {
a = 0.572347;
r = 0.5289922;
}
else {
a = 0.499149;
r = 1.03810;
}
}
else if (Q == "E") {
if (x <= 1000) {
a = 0.788370;
r = 0.0927529;
}
else if (x > 1000 || x <= 10000) {
a = 0.565188;
r = 0.433384;
}
else {
a = 0.414743;
r = 1.73241;
}
}
else {
if (x <= 1000) {
a = 0.784400;
r = 0.0620765;
}
else if (x > 1000 || x <= 10000) {
a = 0.525969;
r = 0.370015;
}
else {
a = 0.322659;
r = 2.40691;
}
}
var Qy = Math.pow(x, a) * r;
return Qy;
}
python 高斯烟羽模型_高斯扩散模型-高斯烟羽大气污染扩散模型相关推荐
- python分类预测降低准确率_【火炉炼AI】机器学习011-分类模型的评估:准确率,精确率,召回率,F1值...
[火炉炼AI]机器学习011-分类模型的评估:准确率,精确率,召回率,F1值 (本文所使用的Python库和版本号: Python 3.5, Numpy 1.14, scikit-learn 0.19 ...
- 生命周期模型_建立从思想到价值的生命周期模型
生命周期模型 数据科学家来自火星,软件工程师来自金星(第4部分)(DATA SCIENTISTS ARE FROM MARS AND SOFTWARE ENGINEERS ARE FROM VENUS ...
- android显示3d模型_使用Unity AR Foundation在增强现实中查看模型
本文将分享麻省理工学院的教程-使用Unity AR Foundation在增强现实中查看模型. 在本教程中,我们将介绍如何把3D模型导入Unity,并使用Android设备或iOS设备在AR中查看模型 ...
- seq2seq模型_带你读论文 | 端到端语音识别模型
编者按:过去十年,得益于人工智能与机器学习的突破.算法与硬/软件能力的进步,以及拥有既多样又大量的语音数据库,用以训练多参数的.大规模的语音识别与合成模型,使得语音处理技术获得飞跃性进展. 随着端到端 ...
- seq2seq模型_使用Tensorflow搭建一个简单的Seq2Seq翻译模型
1.背景 首先,这篇博文整理自谷歌开源的神经机器翻译项目Neural Machine Translation (seq2seq) Tutorial.如果你直接克隆这个项目按照Tutorial中的说明操 ...
- 怎么做 空间杜宾模型_企业营销怎么做?深度解析STP模型及案例,一步成高手...
STP模型是整个营销的构建基础,包括了市场细分(Segmenting).目标市场(Targeting)和产品定位(Positioning) 三部分内容 现在企业比拼的是垂直度.做的是差异化.收口的是粉 ...
- reactor线程模型_简单了解Java Netty Reactor三种线程模型
1. Reactor三种线程模型 1.1. 单线程模型 Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下: 1)作为NIO服务端,接收客户端的TCP连接 ...
- babylonjs 分部加载模型_如何使用BabylonJS加载OBJ或STL模型
BabylonJS(也就是babylon.js,这是一个和three.js类似的WebGL开发框架),更多的用在游戏领域. 本文说明和演示如何使用babylon.js来加载一个标准3d模型文件,如OB ...
- bat产品经理能力模型_产品经理如何构建自己的产品能力模型?
在职场中感到迷茫是很多人经常会遇到的一个状态,而对产品经理来说,要先解决这个问题,可以通过产品能力模型进行分析,从知识技能/底层能力/深层能力入手,探寻产品能力之间的内在关联获得成长. 到底应该学什么 ...
- 利用colab保存模型_在Google Colab上训练您的机器学习模型中的“后门”
利用colab保存模型 Note: This post is for educational purposes only. 注意:此职位仅用于教育目的. In this post, I would f ...
最新文章
- Java解压zip文件(文本)压缩包
- docker探索-使用docker service管理swarm(十一 )
- (NO.00002)iOS游戏精灵战争雏形(六)
- python面向对象初识
- 深入了解Oracle ASM(一):基础概念
- 一文搞定面试中的二叉树问题
- PMP 与IPMP区别是什么?
- 如何在 Keras 中开发具有注意力的编码器-解码器模型
- cc=arm-linux,针对基于嵌入式ARM的Linux系统的交叉编译
- js 音乐播放器(audio属性及其使用方法)
- vue项目 报sockjs.js?9be2:1606 GET http://192.168.43.226:8080/sockjs-node/info?t=1584966826465 net::ERR
- 若依框架(一 运行框架)
- Firebug工具的介绍与安装
- Snagit 2019 for Mac如何合并图像+安装方法详解
- 开发一种提供医学药学常用公式图片的文档编辑器插件
- 解耦的好处以及哪来的这么多好处
- 英语语言标准C1,【CEFR】国际通用的学生英语能力水平评测标准
- AGV自动导航控制系统
- git合并分支Pulling is not possible because you have unmerged files.
- 莫比乌斯反演-小总结
热门文章
- 2017华为软件精英挑战赛思路分析
- SourceTree git 工作流
- win10无法安装软件,点击大部分exe文件无反应,无提示(安装了火绒)
- Linux上的tomcat版本升级
- flask 接收文件
- JavaWeb图书管理系统.rar(毕业设计(论文)+毕业设计指导书+大学毕业设计任务书+图书管理系统+毕业论文答辩)
- 让VSCode字体性感起来
- 已知三点求圆心 c语言,转 已知两点坐标和半径求圆心坐标程序C++
- html网页url伪静态,动态url 静态url 伪静态url页面的区别
- Graph Theory 离散数学第五章