AERMOD
AERMOD模型介绍
理论基础
AERMOD基于行星边界层(PBL)湍流理论,采用高斯扩散方程的改进形式,其核心理论包括:
-
湍流结构:模型将大气边界层分为地表层(Surface Layer)和混合层(Mixed Layer),分别采用不同的湍流参数化方案。
- 地表层:采用Monin-Obukhov相似理论,考虑热力稳定度对湍流的影响
- 混合层:采用湍流动能(TKE)方法描述湍流扩散
-
扩散机制:
- 水平扩散:采用非均匀扩散系数,考虑风速切变和湍流强度
- 垂直扩散:采用非高斯垂直分布,考虑浮力效应和稳定度条件
- 反射和沉降:考虑地面反射和干沉降过程
-
特殊物理过程:
- 建筑物下洗:采用PRIME(Plume Rise Model Enhancements)算法处理建筑物对烟羽的干扰
- 复杂地形:采用地形调整的高斯模型,考虑地形对流场的影响
- NOx化学转化:支持PVMRM(光解速率法)和OLM(臭氧限制法)两种NO2转化机制
- 海岸线熏烟:考虑海陆风环流对污染物扩散的影响
-
稳定度分类:采用连续稳定度参数(而非传统的Pasquill-Gifford分类),更准确地反映大气湍流状态。
模型构成和下载
模型系统组成
AERMOD建模系统包含以下核心组件:
- AERMOD主程序:核心扩散模型,执行污染物浓度计算
- AERMET:气象数据预处理器,将原始气象数据转换为模型输入格式
- AERMAP:地形数据预处理器,处理数字高程模型(DEM)数据
- AERSURFACE:地表特征预处理器,生成地表参数文件
- BPIPPRIM:建筑物数据处理器,处理建筑物下洗计算
- AERSCREEN:筛选版本,用于快速评估最大浓度
下载地址
- 官方下载:EPA SCRAM网站
- 最新版本:AERMOD Version 24142(2024年12月发布)
- 文件内容:
- 可执行文件(64-bit和32-bit版本)
- 源代码(Fortran语言)
- 用户手册和技术文档
- 测试案例和示例文件
系统要求
- 操作系统:Windows 7/10/11,或通过Wine在Linux/Mac上运行
- 内存:至少4GB RAM(复杂项目建议8GB以上)
- 存储空间:500MB以上(包含测试案例约需1GB)
控制文件介绍
AERMOD(AMS/EPA Regulatory Model)是目前应用最广泛的大气扩散模型系统之一。其核心运行依赖于一个扩展名为 .inp 的控制文件(Control File)。
这个文件本质上是一个文本文件,指导模型"在哪里、排放什 么、天气如何、在哪里计算以及输出什么"。
AERMOD 控制文件的基本结构
AERMOD 控制文件采用模块化设计,分为五个核心路径(Pathways)。每个路径都以 ** STARTING 开始,以 ** FINISHED 结束。
| 路径代码 | 路径名称 | 主要功能 |
|---|---|---|
| CO | Control (控制) | 设置模拟标题、模型选项、平均时间、污染物类型等。 |
| SO | Source (源) | 定义排放源的类型(点、面、体)、位置、排放速率及物理参数。 |
| RE | Receptor (受体) | 定义计算网格或特定关注点的位置及高程。 |
| ME | Meteorology (气象) | 指定由 AERMET 处理生成的气象数据文件路径及站点信息。 |
| OU | Output (输出) | 规定输出结果的格式、类型(如浓度、沉降)及存储路径。 |
CO (Control)——全局设置
这是模型的"大脑",决定了模拟的基本逻辑。
-
TITLEONE / TITLETWO: 模拟的标题,显示在输出报告顶部。
-
MODELOPT: 模型选项。常用参数包括:
DFAULT: 使用 EPA 标准默认选项。CONC: 计算浓度。FLAT: 忽略地形(仅在平坦地区使用)。ELEV: 考虑地形影响(最常用)。
-
AVERTIME: 平均时间(如 1-hr, 8-hr, 24-hr, MONTH, PERIOD, ANNUAL)。
-
POLLUTID: 污染物名称(如 SO2, NO2, PM10)。
-
RUNORNOT: 填
RUN表示执行计算,填NOT仅进行输入检查。 -
COORDSYS: 坐标系统(CARTESIAN, POLAR, UTM等)。
-
UNITS: 单位系统(METRIC或ENGLISH)。
SO (Source)——源项参数
在此定义所有的污染源。AERMOD 支持多种源类型:POINT(点源)、AREA(面源)、VOLUME(体源)、LINE(线源)和 BUOYLINE(浮力线源)。
-
LOCATION: 定义源 ID、类型及坐标。
- 点源示例:
LOCATION [SourceID] POINT [X] [Y] [Z_ground] - 面源示例:
LOCATION [SourceID] AREA [X] [Y] [Length] [Width] [Z_ground] - 浮力线源示例:
LOCATION [SourceID] BUOYLINE [X1] [Y1] [X2] [Y2] [Z_ground]
- 点源示例:
-
SRCPARAM: 排放参数。
- 点源示例:
SRCPARAM [SourceID] [排放速率] [烟囱高度] [烟气温度] [烟气速度] [烟囱内径]。
- 点源示例:
-
BLPINPUT: 浮力线源参数(从AERMOD 15181版本开始支持)。
BLPINPUT [GroupID] [Blavgblen] [Blavgbhgt] [Blavgbwid] [Blavglwid] [Blavgbsep] [Blavgfprm]
-
BLPGROUP: 浮力线源分组。
BLPGROUP [GroupID] [SourceID]
-
BUILDHGT / BUILDWID: 建筑下洗参数(如果考虑建筑物对扩散的影响,需配合 BPIPPRIM 软件生成)。
-
HOUREMIS: 如果排放随时间变化,可引用外部逐时排放文件。
RE (Receptor)——受体网格
定义你想在哪里得到浓度值。
-
GRIDCART: 笛卡尔网格。定义起始点、网格数量及间距。
GRIDCART [Xmin] [Ymin] [Xmax] [Ymax] [Xincrement] [Yincrement]
-
DISCCART: 离散受体点。常用于环境敏感点(如学校、医院)。
DISCCART [X] [Y]
-
RADIAL: 径向网格受体。
RADIAL [Xcenter] [Ycenter] [Distance1] [Distance2] ... [Angle1] [Angle2] ...
-
ELEV / HILL: 受体的高程和地形尺度(由 AERMAP 预处理得到)。
ME (Meteorology)——气象
模型需要经过 AERMET 处理后的两个关键文件。
- SURFFILE: 地面气象文件(
.sfc)。 - PROFFILE: 廓线气象文件(
.pfl)。 - SURFDATA / UAIRDATA: 地面站和高空站的站点编号及年份。
- PROFBASE: 气象站的海拔高度。
- METFN: 气象文件路径(可多次使用指定不同文件)。
OU (Output) —结果
- RECTABLE: 输出受体点浓度排名表。
- MAXTABLE: 输出最高值表。
- PLOTFILE: 生成可用于绘图软件(如 Golden Surfer 或 GIS)的网格数据文件。
- SUMMFILE: 生成总结报告。
- AVEPER: 输出平均时段(1, 3, 8, 24小时等)。
- PLOTFLG: 生成绘图文件(.plt格式)。
- DEPOS: 计算干湿沉降。
编写注意事项与格式规范
- 不区分大小写:AERMOD 指令通常不区分大小写,但为了易读性,建议关键词大写。
- 空行与注释:以
**开头的行被视为注释,不会被模型读取。 - 严格的路径顺序:必须按照
CO -> SO -> RE -> ME -> OU的顺序排列,否则模型可能报错。 - 单位统一:
- 坐标和距离:米 (m)。
- 排放速率:克/秒 (g/s)。
- 温度:开尔文 (K)。
- 速度:米/秒 (m/s)。
- 关键字依赖关系:
BLPINPUT必须在BLPGROUP之前出现- 污染源定义中的
SrcID必须在LOCATION和SRCPARAM中保持一致 - 多个相同类型的受体定义会合并到同一计算域中
示例片段
CO STARTING
TITLEONE Sample Dispersion Modeling Study
MODELOPT DFAULT CONC ELEV
AVERTIME 1 24 PERIOD
POLLUTID SO2
RUNORNOT RUN
COORDSYS CARTESIAN
CO FINISHED
SO STARTING
** 定义一个点源: ID, 类型, X, Y, 海拔
LOCATION STACK1 POINT 500000.0 4500000.0 10.0
** 速率(g/s), 高度(m), 温度(K), 速度(m/s), 直径(m)
SRCPARAM STACK1 15.5 50.0 420.0 12.0 2.5
** 定义浮力线源
BLPINPUT 1 100.0 20.0 30.0 5.0 50.0 0.5
LOCATION BL01 BUOYLINE 0.0 0.0 100.0 0.0 10.0
LOCATION BL02 BUOYLINE 0.0 10.0 100.0 10.0 10.0
BLPGROUP 1 BL01
BLPGROUP 1 BL02
SO FINISHED
RE STARTING
** 定义矩形网格受体
GRIDCART -5000 -5000 5000 5000 100 100
** 定义离散受体点
DISCCART 2000 3000
RE FINISHED
ME STARTING
SURFFILE met_data.sfc
PROFFILE met_data.pfl
SURFDATA 722900 2020
UAIRDATA 72290 2020
PROFBASE 10.0
ME FINISHED
OU STARTING
AVEPER 1 8 24
PLOTFLG
RECTABLE
MAXTABLE
OU FINISHED
注意:实际应用中,还需要指定地形文件(通过AERMAP预处理)和建筑物文件(通过BPIPPRIM预处理),具体取决于项目需求和地形复杂程度。
如何运行
准备工作
-
收集输入数据:
- 气象数据:至少1年的地面和高空气象观测数据
- 地形数据:数字高程模型(DEM)文件
- 污染源数据:排放参数、位置、高度等
- 地表特征数据:土地利用类型、粗糙度长度等
-
数据预处理:
# 运行AERMET处理气象数据
aermet.exe < meteorological.inp > meteorological.out
# 运行AERMAP处理地形数据
aermap.exe < terrain.inp > terrain.out
运行步骤
- 创建控制文件:根据项目需求编写
.inp文件 - 执行AERMOD:
aermod.exe < project.inp > project.out - 检查输出:
project.out:主要结果文件,包含各受体点的浓度值project.plt:绘图文件(如启用PLOTFLG)- 错误日志:检查是否有警告或错误信息
结果分析
- 浓度分布:分析最大浓度、超标区域、影响范围
- 敏感性分析:评估关键参数对结果的影响
- 验证:与监测数据对比,验证模型准确性
- 报告生成:根据导则要求整理结果
常见问题处理
- 收敛问题:检查气象数据质量和地形数据分辨率
- 内存不足:减少受体点数量或使用分块计算
- 结果异常:验证源参数和气象参数的合理性
- 建筑物下洗:确保建筑物数据格式正确且位置准确
质量保证
- 数据验证:确保所有输入数据符合质量标准
- 模型验证:使用历史监测数据进行模型验证
- 不确定性分析:评估关键参数的不确定性对结果的影响
- 文档记录:详细记录所有假设、参数和处理步骤