Calpuff高斯烟团大气扩散模型入门指南:从基础原理到环境模拟实战

1次阅读
没有评论

共计 1771 个字符,预计需要花费 5 分钟才能阅读完成。

image.webp

为什么需要 Calpuff 模型

  1. 在复杂地形和长距离传输场景下,Calpuff 能精准模拟污染物的时空分布,这是传统高斯模型无法实现的。
  2. 其烟团分割算法可处理非稳态气象条件,特别适合突发性排放事件的模拟。
  3. 作为《环境影响评价技术导则》推荐模型,在环评领域具有法定合规性。

模型原理剖析

高斯烟团 vs 点源模型

Calpuff 高斯烟团大气扩散模型入门指南:从基础原理到环境模拟实战

  • 运动方式 :
  • 点源模型:假定污染物沿风向直线传播
  • 烟团模型:将排放过程离散为多个移动烟团

  • 数学表达 :

  • 点源模型使用连续方程 $C=\frac{Q}{2\pi u\sigma_y\sigma_z}exp[-\frac{y^2}{2\sigma_y^2}]$
  • 烟团模型采用叠加原理 $C_{total}=\sum\frac{2Q\Delta t}{(2\pi)^{3/2}\sigma_x\sigma_y\sigma_z}exp[-\frac{(x-ut)^2}{2\sigma_x^2}-\frac{y^2}{2\sigma_y^2}]$

  • 适用场景 :

  • 点源模型适用于平坦地形短期预测
  • 烟团模型适用于复杂地形长时模拟

核心实现步骤

气象数据预处理

  1. 风速处理 :
  2. 使用 10m 高度风速按幂律换算至排放高度

    # 幂律公式换算示例
    u_z = u_10 * (z/10)**p  # p 为地表粗糙度系数 

  3. 稳定度分类 :

  4. 采用 Pasquill-Gifford 分类法
  5. 中国地区建议优先使用国标 HJ2.2-2018 的修订分类标准

浓度场计算实战

import numpy as np

def gaussian_plume(Q, u, sigmas, x, y, z=0, H=0):
    """
    矢量化的高斯烟团计算
    Q: 源强 (g/s)
    u: 风速 (m/s)
    sigmas: [σx,σy,σz] 扩散参数
    x,y,z: 受体点坐标
    H: 有效排放高度 (m)
    """
    sig_x, sig_y, sig_z = sigmas

    # 三维浓度分布计算(避免循环的矢量化实现)C = (Q / (2*np.pi*u*sig_y*sig_z)) * \
        np.exp(-0.5*(y/sig_y)**2) * \
        (np.exp(-0.5*((z-H)/sig_z)**2) + np.exp(-0.5*((z+H)/sig_z)**2))

    return C

# 示例:计算 100x100 网格浓度场
x_grid, y_grid = np.meshgrid(np.linspace(0,1000,100), np.linspace(-500,500,100))
conc_field = gaussian_plume(Q=100, u=3, sigmas=[50,30,20], 
                          x=x_grid, y=y_grid, H=50)

地形数据处理

  1. 高程归一化 :
  2. 使用 DEM 数据提取海拔高度
  3. 按模拟区域最大高差进行 Min-Max 归一化

    dem_normalized = (dem - dem.min()) / (dem.max() - dem.min())

  4. 地形修正系数 :

  5. 复杂地形需增加地形扰动系数 ξ
  6. 建议取值 0.3-1.5(根据 HJ2.2-2018 附录 C)

生产环境避坑指南

网格优化策略

  • 分辨率选择 :
  • 近源区:建议 50-100m 网格
  • 远距离:可放宽至 500-1000m
  • 计算量公式:$N_{cells} \propto \frac{1}{\Delta x^2}$

  • 中国地区参数推荐 :
    | 参数 | 北方城市 | 南方城市 | 高原地区 |
    |—————|———|———|———|
    | 混合层高度 (m) | 800-1200| 600-1000| 1500-2000|
    | 粗糙度长度 (m) | 0.5-1.0 | 0.2-0.5 | 0.1-0.3 |

可视化技巧

  • 等值线陷阱 :
  • 避免直接使用 matplotlib 默认插值
  • 推荐步骤:
    • 先进行高斯滤波预处理
    • 使用 griddata 进行插值
    • 设置 levels=np.logspace(-1,2,10) 实现对数刻度

延伸思考

  1. 在城市冠层效应显著区域,如何修正湍流扩散参数?建议参考《大气边界层物理学》第 4 章给出的城市修正系数。
  2. 当模拟寒潮天气过程时,边界层参数需要怎样动态调整?可结合 WRF 模式输出数据实现耦合。
  3. 对比 CFD 微观模拟,Calpuff 在区域尺度(>10km)的计算效率优势可达 2 - 3 个数量级,但如何量化其精度损失?

实践建议

建议初学者先从单点源稳态模拟开始,逐步过渡到多源非稳态场景。注意保存中间计算结果,便于分析各物理过程的贡献度。遇到不收敛情况时,可优先检查风速场的时空连续性。

正文完
 0
评论(没有评论)