CMAQ排放清单工具:ISAT.M Linux版本的使用

2 篇文章 0 订阅
2 篇文章 0 订阅

上一篇记录了Windows搭建Linux环境用来运行ISAT.M的linux版本,这里就具体写一下ISAT.M的运行。(注:这里网格化的排放清单已经准备好了(可以通过处理MEIC清单得到),只是将清单转为CMAQ可用的格式)

2022.12.2
ISAT新版在github上传了:ISAT_github

2023.6.5
王堃老师2023年4月20日介绍了新版ISAT的使用方法:ISAT工具介绍

ISAT对小白来说很友好,软件更易获得,也要比SMOKE更易懂,推荐大家使用。
版权所有权归:北京市科学技术研究院城市安全与环境科学研究所 王堃(wkty@mail.bnu.edu.cn)所有
!!该工具仅用于学术交流不得用于商业及盈利目的!!


P.S.想学SMOKE的话,可以看下面这个视频入门,大佬讲解的很详细:
给师弟的SMOKE模型基础讲解

参考资料

ISATv2017使用说明.pdf
(在ISAT排放清单工具群的群文件里可以找到,这里就不上传了)

软件安装包

安装包大家去ISAT排放清单工具群下载吧,或者直接联系王堃老师(wkty@mail.bnu.edu.cn),这里只介绍用法,不提供工具,感谢王堃老师的分享。

Windows版

最新修改:

本版本主要完成在线清单制作。
1.area_inline取代其他area面源制作模块。双击即可生成不同面源的nc文件。
2.若需要将不同面源文件合并成一个面源文件,将所需合并的面源nc文件放置于addnc文件夹中,双击“addnc.exe”即可。
#版权所有归 北京市劳动保护科学研究所王堃所有

Linux版

ISAT.M(V20220330)By: 北京市科学技术研究院城市安全与环境科学研究所 王堃(wkty@mail.bnu.edu.cn)

!!该工具仅用于学术交流不得用于商业及盈利目的!!

需知:

①该工具采用python 2.7, 需提前安装numpy,pandas,netCDF4,pyproj等库;

(注python2环境前一篇博客已经搭建好了:Win10 子系统(Ubuntu)安装迁移和Ubuntu Python环境配置,大家可以参考)

②该模块中的AR,AG,IN,PP,TR分别代表居民,农业,工业,电厂,交通源,用户可以自行增加及命名排放源并提供相关speciate,stack_groups,temporay等文件并设置一致的后缀名,工具中的物种及分配系数仅供参考;

这里我使用的物种和分配系数均为默认参数,大家有需要可以根据自己的需求修改

③当前仅支持inline格式清单;
④ISATM.csh 为自动运行脚本案例,并反映了如何运行ISAT.M的具体步骤;
⑤特别感谢中国科学院东北地理与农业生态研究所高超博士、童清清以及University of California, Davis吴锴博士的鼎力支持。

主要更新:

① 根据MCIP输出文件直接确定STIME,不再设置默认0点或12点运行
② 修复了一些报告Bug

下一步工作:

①2022年将ISAT区域排放清单空间分配功能放入ISATM,实现快速高效的区域排放清单降尺度功能

期待这个功能

Windows版本使用方法

ISATv2017使用说明.pdf
里面很详细,这里不再赘述,大家有需要可以自行去群文件下载阅读。

Linux版本的使用

By: 北京市科学技术研究院城市安全与环境科学研究所 王堃 (wkty@mail.bnu.edu.cn)
!!该工具仅用于学术交流不得用于商业及盈利目的!!

Linux版本需要准备的文件基本与Windows相同

ISAT.M主要由 3部分构成, src文件夹中主要是针对排放源的物种分配、时间分配等参数;py文件是主要的执行文件; creat_smoke_to_cmaq.ini是配置文件;

注意:群里下载的这个creat_smoke_to_cmaq.ini文件,多了一个.ini,记得删掉就行,不然后面运行会出错

ISATM.csh 为自动运行脚本案例,并反映了如何运行ISAT.M的具体步骤。
在这里插入图片描述
src文件夹下:
在这里插入图片描述

排放源参数的配置

对于排放源的设置主要在src文件中 并主要包括 “ 物种分配谱”、“时间分配参数 ”部分 。 本软件中的排放源类型不限 仅需用户在源参数设置及排放量输入中一一对应即可。

减排参数设置(Linux版本中删掉了此功能)

时间分配参数设置

时间分配参数是将排放源按照时间排放廓线分配到月、日、时的参数,是构建高时空分辨率排放清单的基础,本软件根据文献调研增加了主要典型源的时间分配参数,对于用户需要特别设定本地化时间分配参数的,可在该文件夹下进行修改或增加。

可以参考毛红梅和贺克斌老师的方法进行设置,我这里用的默认参数

物种分配参数设置

物种分配参数是按照排放源排放特征将污染源排放的污染物分配成不同模式组分的参数, 本软件根据文献调研以增加了主要典型源的 CB05、 Aero6的物种分配谱 ,对于用户需要特别设定本地化物种分配参数的,可在该文件夹下进行修改或增加。在增加排放源时也比较方便操作,仅需要添加新的物种分配参数、时间分配参数即可,并在排放源、减排系数中一一对应。

这里我也是直接默认

网格参数及排放文件的准备

网格参数文件的准备

ISAT.M制作的是 on-line排放清单,但需要 MCIP中的 GRIDCRO2D文件提供排放清单的时间及网格 属性信息。将 MCIP输出文件的 GRIDCRO2D放至 met文件夹下即可,且如果研究区域不变动的话,无需更新。
请添加图片描述
图片来自于ISATv2017使用说明.pdf

排放文件的准备

ISAT.M的排放文件分为面源和点源两部分。其中,面源是在 ISAT生成空间分配因子后所得到的网格化后的排放清单 。 同时,要注意的是并不是所有源都需要准备相应的点源或者面源文件,后续会在软件运行配置部分提到。

① 面源清单的准备

面源清单制作时,一个源一个csv文件,每个文件中包括每个网格的经纬度、 so2、 nox、 voc、 co、 pm25、 pm10、 nh3集中污染物的排放量。(注明,表格中 no2代表的是 nox,请按照模板填写污染物的排放量)
请添加图片描述
图片来自于ISATv2017使用说明.pdf
在这里插入图片描述
图片来自于ISATv2017使用说明.pdf

② 点源清单的准备

点源清单的准备与面源清单类似,每个源一个csv文件,每个文件中包括经纬度、烟囱信息及污染物排放量等信息。

在这里插入图片描述
图片来自于ISATv2017使用说明.pdf
在这里插入图片描述
图片来自于ISATv2017使用说明.pdf

其中,烟囱信息对应参数如下:
STKDM 烟囱内径(m)
STKHT 烟囱高度(m)
STKTK 排烟温度(K)
STKVE 烟气流速(m/s)
STKFLW 烟气流量(m3/s)

配置文件准备

ISAT.M运行需要配置文件如下图,解释如下:

#
#   ISAT.M
#
[model]
model:CMAQinline
[inputtype]
inputtype:month
[runtime]
runtime:745
[gridcro2d]
gridcro2d: ./src/met/GRIDCRO2D.nc
[speciate]
speciate: ./src/speciate/speciate_AR.csv,./src/speciate/speciate_AG.csv,./src/speciate/speciate_TR.csv
speciate_groups:./src/speciate/speciate_IN.csv,./src/speciate/speciate_PP.csv

[temporary]
#energy,point,area,mobile,flat
temporary_hour : ./src/temporary/hourly.csv
temporary_week : ./src/temporary/weekly.csv
temporary_month: ./src/temporary/monthly.csv
[emissions]
emissions: ./src/emissions/area/AR.csv,./src/emissions/area/AG.csv,./src/emissions/area/TR.csv
stack_groups: ./src/emissions/point/STACK_GROUP_IN.csv,./src/emissions/point/STACK_GROUP_PP.csv
[outfile]
area:area.nc

① [model]
Model:CMAQinline/CMAQoffline生成
CMAQ在线清单 或离线清单 ,目前生成 off-line清单 只是针对面源清单 。
② [inputtype]
Inputtype:year/month
year指输入的排放量为年排放量 (吨 month指输入的排放量为月排放量 (吨)
③ [runtime]
Runtime:25
25为运行小时时长,用户应根据实际需求设定。
④ [gridcrod]
gridcrod:GRIDCRO2D路径
met:METCRO3D路径( 选择为 CMAQoffline时需要设定)
⑤ [speciate]
Speciate 输入 在点源和面源清单制作过程中设计的排放源类型的物种分配谱路径。
⑥ [temporary]
temporary_hour:逐时刻时间分配谱
temporary_week:逐日时间分配参数
temporary_month:逐月时间分配参数
⑦ [emission]
emissions:涉及的面源排放清单路径
stack_groups:涉及的点源排放清单路径
⑨ [outfile]
area:输出面源清单的路径。

ISAT.M-Linux运行

排放源参数、网格及排放数据准备好后,

改好create_smoke_to_cmaq.ini中的配置:

💡 注:安装包中的create_smoke_to_cmaq.ini文件名多了.ini记得删除
在这里插入图片描述
在这里插入图片描述

再改好ISATM.csh,主要就是改py2环境的位置

#!/bin/csh

mv -f *.nc /data/.Trash/
mkdir EM
cd ./hb/
mv -f *.nc /data/.Trash
cd ..
mpirun /home/.conda/envs/py2/bin/python area_inlinenew.py : /home/.conda/envs/py2/bin/python point_em_inline.py : /home/.conda/envs/py2/bin/python point_inline.py
mv -f *area.nc ./hb/
cd ./hb/
/home/.conda/envs/py2/bin/python addnc_v1.py
mv -f out.nc ../EM/area.nc
mv -f *.nc ../EM/

运行

$ bash ISATM.csh
:: ERROR: Unable to proceed: no support for sourcing from '[dash|sh]' shell.
   This script must be sourced. Did you execute or source this script?
   Can be caused by sourcing from inside a "shebang-less" script.
   Can also be caused by sourcing from ZSH version 4.x or older.
today is  20220603
running
today is  20220603
running
today is  20220603
running
today is  20220603
running

运行结束:

点清单\ISATM目录下:
在这里插入图片描述

面清单\ISATM\EM目录下:
在这里插入图片描述
其中area.nc就是总面源文件。

接下来就可以把这些文件输入CMAQ愉快地使用啦。

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
引用\[1\]是一段PHP代码,用于设置HTTP请求的header头信息。其中包括了Content-Type、Content-Length、Accept、client-id和client-secret等参数。引用\[2\]是一个CurlRequest函数,用于发送HTTP请求。该函数使用了curl库来初始化浏览器、设置浏览器参数、禁止https协议验证域名和ssl安全认证证书等。如果传入了data参数,则将请求方式设置为POST,并设置POST的数据包。如果传入了header参数,则设置header头。最后,通过curl_exec函数发起请求,并返回请求回来的数据。引用\[3\]是一段关于etcd的日志信息,描述了创建静态Pod清单、等待kubelet启动控制平面、检查kubelet是否运行或健康等过程。然后提出了一个问题,即使用curl命令发送HTTP请求时报错的解决思路。 解决思路一是认为kubelet没有启动导致报错。可以尝试启动kubelet来解决问题。 #### 引用[.reference_title] - *1* *2* [PHP使用CURL设置header头传参以及设置Content-Type: application/json类型的后台数据接收...](https://blog.csdn.net/dgnxhpl41065/article/details/102211458)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz‘ failed with error: Get ...](https://blog.csdn.net/qq_35078688/article/details/122903242)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值