爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 19965|回复: 14

mei2wrf.py的应用问题讨论

[复制链接]

新浪微博达人勋

发表于 2021-3-11 08:44:54 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 阿萨德撒 于 2021-3-11 10:25 编辑

关于使用meic源排放清单,向 WRF-Chem 模式网格的插值和分配,选择使用mei2wrf工具方便快捷。
meic2wrf请参考GitHub上引用于jinfan0931
运行meic2wrf.py需要的库有pynio(这个库在linux系统包含win10的linux子系统下可以安装成功)等等,具体参照附件

① 使用bash Miniconda3-latest-Linux-x86_64.sh(安装miniconda,这里自己使用安装包安装anaconda也可以)
② 然后使用conda create -n pyenv -c conda-forge xarray netcdf4 scipy pyngl pynio ncl安装环境
③ 使用conda activate pyenv激活环境pyenv,最后运行mei2wrf.py

(这是Miniconda3-latest-Linux-x86_64.sh文件分享
链接:https://pan.baidu.com/s/1S2ZsKk1K-KCHnr0S-8m7Qg
提取码:l0sp
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V4的分享)

虽然meic2wrf.py很好用,但是程序中应该还是有一些参数需要结合具体下载的排放数据,一一修改的。
比如84行-93行:

  1. act = f_act.variables['z'][:].reshape((200, 320),)[::-1]
  2.         act = np.where(act > 0.0, act*1, 0.0)
  3.         idt = f_idt.variables['z'][:].reshape((200, 320),)[::-1]
  4.         idt = np.where(idt > 0.0, idt*1, 0.0)
  5.         pwr = f_pwr.variables['z'][:].reshape((200, 320),)[::-1]
  6.         pwr = np.where(pwr > 0.0, pwr*1, 0.0)
  7.         rdt = f_rdt.variables['z'][:].reshape((200, 320),)[::-1]
  8.         rdt = np.where(rdt > 0.0, rdt*1, 0.0)
  9.         tpt = f_tpt.variables['z'][:].reshape((200, 320),)[::-1]
  10.         tpt = np.where(tpt > 0.0, tpt*1, 0.0)
复制代码
根据具体的排放文件的格点信息和范围大小做了相应调整:
  1. act = f_act.variables['z'][:].reshape((120, 280),)[::-1]
  2.         act = np.where(act > 0.0, act*1, 0.0)
  3.         idt = f_idt.variables['z'][:].reshape((120, 280),)[::-1]
  4.         idt = np.where(idt > 0.0, idt*1, 0.0)
  5.         pwr = f_pwr.variables['z'][:].reshape((120, 280),)[::-1]
  6.         pwr = np.where(pwr > 0.0, pwr*1, 0.0)
  7.         rdt = f_rdt.variables['z'][:].reshape((120, 280),)[::-1]
  8.         rdt = np.where(rdt > 0.0, rdt*1, 0.0)
  9.         tpt = f_tpt.variables['z'][:].reshape((120, 280),)[::-1]
  10.         tpt = np.where(tpt > 0.0, tpt*1, 0.0)
复制代码
ps:排放文件的变量信息输出结果如下:
Variable: spacing (file variable)
Type: double
Total Size: 16 bytes
            2 values
Number of Dimensions: 1
Dimensions and sizes:   [side | 2]
Coordinates:
Number Of Attributes: 0
(0)     0.25
(1)     0.25


Variable: dimension (file variable)
Type: integer
Total Size: 8 bytes
            2 values
Number of Dimensions: 1
Dimensions and sizes:   [side | 2]
Coordinates:
Number Of Attributes: 0
(0)     280
(1)     120

需要meic排放清单文件练习如何转换的,可以私聊我。希望大家做模式的不要崩溃呀,累的时候出去玩玩运动一下(也是对我自己说的)

MEIC 污染源清单向WRF-Chem 模式网格插值分配工具操作手册.pdf

3.06 MB, 下载次数: 21, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-3-24 17:59:38 | 显示全部楼层
提了个pull request,暂时还没merge。可以先从我的库里下载。https://github.com/IncubatorShokuhou/meic2wrf.git
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-11 09:12:31 | 显示全部楼层
但是之后在52行-54行
  1.         fn_act = ent_dir+'/' + \
  2.             fnmatch.filter(fnmatch.filter(
  3.                 os.listdir(ent_dir), i), '*agr*nc')[0]
复制代码

报错显示如下:
  File "meic2wrf_noGUI.py", line 53, in merge_meic_dept
    fnmatch.filter(fnmatch.filter(
IndexError: list index out of range
有人遇到类似的问题吗?我在这一步卡住了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-11 10:13:42 | 显示全部楼层
感谢分享{:eb511:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-11 10:22:11 | 显示全部楼层

感谢支持{:eb502:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-11 10:27:36 | 显示全部楼层
谢谢分享~~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-3-11 10:35:45 | 显示全部楼层
{:eb511:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-3-11 15:53:47 | 显示全部楼层
阿萨德撒 发表于 2021-3-11 09:12
但是之后在52行-54行

报错显示如下:

你这很明显是meic文件位置不对。之所以list会out of range,是因为这个list本身就是空的,所以对它怎么切片,都会out of range。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-11 15:55:59 | 显示全部楼层
还有,meic的排放源大小不是默认200, 320的吗?怎么会要改大小。。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-12 10:09:23 | 显示全部楼层
astiny 发表于 2021-3-11 15:53
你这很明显是meic文件位置不对。之所以list会out of range,是因为这个list本身就是空的,所以对它怎么切 ...

meic文件是2016年1压缩包解压后的文件,meic文件路径也是对的呀(/mnt/f/meic/meic/1/),并且已经生成了一些文件(如图),但是还是在运行中报错了。
  1. Merging MEIC emission files of different departments...
  2. Traceback (most recent call last):
  3.   File "meic2wrf_noGUI.py", line 265, in <module>
  4.     merge_meic_dept(ent_dir)
  5.   File "meic2wrf_noGUI.py", line 63, in merge_meic_dept
  6.     fnmatch.filter(fnmatch.filter(
  7. IndexError: list index out of range
复制代码
可能是我的meic文件各类排放文件不全吧?
45D)JU@7X}765ZZ4QZ)1MND.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-17 10:33:47 | 显示全部楼层
感谢分享
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表