WRF进阶:使用ERA5-land数据驱动WRF/WRF撰写Vtable文件添加气象场

这篇具有很好参考价值的文章主要介绍了WRF进阶:使用ERA5-land数据驱动WRF/WRF撰写Vtable文件添加气象场。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

想用WRF模拟地气交换过程,对于WRF的地表数据,尤其是土壤温湿度数据要求便会很大,传统使用ERA5-singledata数据精度也许不足以满足需求,为此,本文尝试使用ERA5-land数据替换驱动WRF。

数据下载

ERA5-land的数据下载与ERA5其他数据并无不同,只不过需要注意一点:当下载grib格式时,部分变量是以grib2形式储存。而有些则是以grib1格式,下载时请注意分开下载,切勿混合,否则将无法解码与读取。
关于变量的格式,请参看:ERA5-landParameterlistings

同时还请注意:在ungrib解码时,地面数据与高空数据存在重合,即地面气温、10m风速、10m相对湿度等(写作UU VV TT RH)解码时是一起解码的,这就要求它们之间的分辨率等匹配,换句话说,在使用ERA5-land数据时,我们不使用它的地面温湿度数据,而是只使用精度更高更准确的土壤温湿度数据,其他数据依然使用ERA5-single,否则极有可能出现WRF无法运行的情况。
数据下载脚本如下:

import cdsapi
import calendar
from subprocess import call


def idmDownloader(task_url, folder_path, file_name):
    """
    IDM下载器
    :param task_url: 下载任务地址
    :param folder_path: 存放文件夹
    :param file_name: 文件名
    :return:
    """
    # IDM安装目录
    idm_engine = "C:\\Program Files (x86)\\Internet Download Manager\\IDMan.exe"
    # 将任务添加至队列
    call([idm_engine, '/d', task_url, '/p', folder_path, '/f', file_name, '/a'])
    # 开始任务队列
    call([idm_engine, '/s'])


if __name__ == '__main__':
    c = cdsapi.Client()  # 创建用户

    # 数据信息字典
    dic = {
        'product_type': 'reanalysis',  # 产品类型
        'format': 'grib',  # 数据格式
        'variable':  [
            'soil_temperature_level_1', 'soil_temperature_level_2', 'soil_temperature_level_3',
            'soil_temperature_level_4', 'surface_latent_heat_flux', 'surface_net_solar_radiation',
            'surface_net_thermal_radiation', 'surface_pressure', 'surface_sensible_heat_flux',
            'surface_solar_radiation_downwards', 'surface_thermal_radiation_downwards', 'volumetric_soil_water_layer_1',
            'volumetric_soil_water_layer_2', 'volumetric_soil_water_layer_3', 'volumetric_soil_water_layer_4',],
        'year': [],  # 年,设为空
        'month': [],  # 月,设为空
        'day': [],  # 日,设为空
        'time': [  # 小时
             '00:00', "03:00","06:00",'12:00','15:00',"18:00","21:00"
        ],
        'area': [90, -180, 45, 180],
    }

grib2=[]
 # 通过循环批量下载1979年到2020年所有月份数据

    for y in range(2020, 2021):  # 遍历年
        for m in range(1, 13):  # 遍历月
        
            day_num = calendar.monthrange(y, m)[1]  # 根据年月,获取当月日数
            # 将年、月、日更新至字典中
            dic['year'] = str(y)
            dic['month'] = str(m).zfill(2)
            dic['day'] = [str(d).zfill(2) for d in range(1, day_num + 1)]
            r = c.retrieve('reanalysis-era5-land', dic, )  # 文件
            url = r.location  # 获取文件下载地址
            path = 'F:\\ERA5\\hf\\'  # 存放文件夹
            filename = 'land'+str(y) + str(m).zfill(2) + '.grib'  # 文件名
            idmDownloader(url, path, filename)  # 添加进IDM中下载

#day_num = calendar.monthrange(2018, 5)[1]  # 根据年月,获取当月日数
#dic['day'] = [str(d).zfill(2) for d in range(1, day_num + 1)]


#day_num = calendar.monthrange(2018, 5)[1]  # 根据年月,获取当月日数
#dic['day'] = [str(d).zfill(2) for d in range(1, day_num + 1)]

修改VTABLE文件

WRF主要是使用ungrib解码数据,而ungrib文件的解码依赖于Vtable文件中描述的grib数据格式,当我们想添加新的气象场时,一定要链接正确的Vtable文件。
对于ERA5-land而言,直接使用默认的Vtable-ECWMF,需要注意的是,有时我们还下载了地面温湿度等数据,但我们并不需要使用它,为了避免ungrib将不需要的数据解码,我们只需删除Vtable文件中对应的部分,只保留需要的数据描述即可,比如这是我新建的Vtable-land文件:

GRIB | Level| Level| Level| metgrid  |  metgrid | metgrid                                  |
Code | Code |   1  |   2  | Name     |  Units   | Description                              |
-----+------+------+------+----------+----------+------------------------------------------+

 139 | 112  |   0  |   7  | ST000007 | K        | T of 0-7 cm ground layer                 |
 170 | 112  |   7  |  28  | ST007028 | K        | T of 7-28 cm ground layer                |
 183 | 112  |  28  | 100  | ST028100 | K        | T of 28-100 cm ground layer              |
 236 | 112  | 100  | 255  | ST100289 | K        | T of 100-289 cm ground layer             |
  39 | 112  |   0  |   7  | SM000007 | fraction | Soil moisture of 0-7 cm ground layer     |
  40 | 112  |   7  |  28  | SM007028 | fraction | Soil moisture of 7-28 cm ground layer    |
  41 | 112  |  28  | 100  | SM028100 | fraction | Soil moisture of 28-100 cm ground layer  |
  42 | 112  | 100  | 255  | SM100289 | fraction | Soil moisture of 100-289 cm ground layer |
@                                                                                                                                         1,1           Top

指解码土壤温湿度。

修改METGRID.TBL

WRF前处理时需要将输入的数据插值到对应的模拟域,此时使用的便是metgrid.exe,metgrid.exe则通过METGRID.TBL文件中规定的变量特点:如,缺失值、覆盖、层数、变量描述等对各种变量进行插值。
当我们使用ERA5-land中的土壤温湿度数据时,我们的土壤温湿度数据变量名称与ERA5-single中不同,而在METGRID.TBL中,缺少对于缺失值missing_value的描述,导致直接插值时为误将缺失值插值从而出现异常值导致无法完成初始化,在此,我们需要在METGRID.TBL文件中添加缺失值信息。
打开METGRID.TBL,找到变量ST SM开头的对应部分,查看是否缺失miss_value这一行,如果缺失就添加:` missing_value=-1.E30,如下图:

`WRF进阶:使用ERA5-land数据驱动WRF/WRF撰写Vtable文件添加气象场

修改namelist.wps

由于我们的ERA5-land是独立于single和pressure输入的,此时我们最好将其作为单独的中间文件输入,打开namelist.wps&ungrib部分,修改解码输出前缀为SOIL,并添加读取前缀名,如:

&ungrib
 out_format = 'WPS',
 prefix = 'SOIL',
/

&metgrid
 fg_name = 'FILE','SEAICE','ALBSI','ICEDEPTH','SNOWSI','SNOW',"SOIL"
 opt_output_from_metgrid_path="/public/home/zhangzilu/Build_WRF/WPS-4.3/met_2020/"
/


这样ungirb解码是会单独输出以SOIL开头ERA5-LAND土壤数据,metgird插值时也会读取包含ERA5-single和ERA5-PRESSURE的FILE和ERA5-LAND的SOIL文件插值。
之后metgrid.exe,得到met_em*。提交WRF初始化运行即可。
需要注意的是:我个人虽然可以正常运行,但是对应的计算时间却长了很多,这可能与我的分辨率>ERA5-LAND的0.1°有关,如果对分辨率要求高的人可以另外试试看。文章来源地址https://www.toymoban.com/news/detail-484980.html

到了这里,关于WRF进阶:使用ERA5-land数据驱动WRF/WRF撰写Vtable文件添加气象场的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 专利进阶(二):专利撰写常用技术及算法汇总(持续更新中)

    专利撰写过程中使用已有技术或算法解决新问题非常常见,本篇博文主要梳理软件发明专利撰写过程中涉及的常用技术及算法。 2.1 区跨链技术 2.2 聚类算法 2.3 边缘算法 2.4 蚁群算法 蚁群算法 是受到对真实蚂蚁群觅食行为研究的启发而提出。生物学研究表明:一群相互协作的

    2024年02月02日
    浏览(45)
  • 大气环境相关模型WRF、MCM/OBM、PMF源解析、WRF/Chem、CMAQ、SOLAR、Hydro、SMOKE模式、 NCL、FLEXPART、Calpuff、未来大气污染、cmip6数据处理等

    推荐一些大气环境相关的实用模型:WRF模式、MCM模型、PMF源解析、EKMA曲线、WRF/Chem模式、WRF-CMAQ模式、camx模式、CLM陆面过程模式、SMOKE及EDGAR/MEIC清单制作、WRF-Hydro、 R语言水文+气象、FVCOM、NCL、WRFDA资料同化、FLEXPART、Calpuff、WRF-SOLAR、LEAP模型、CGE模型、碳排放生命周期评价、

    2024年02月12日
    浏览(60)
  • CMIP6数据处理:WRF模式动力降尺度、单点降尺度、统计方法区域降尺度、SWAT数据、Biome-BGC数据制备

    查看原文CMIP6:WRF模式动力降尺度、单点降尺度、统计方法区域降尺度 气候变化关系到农业、生态系统、社会经济和人类生存与发展,是当今世界关注的重点问题之一。IPCC(Intergovernmental Panel on Climate Change)第6次评估报告指出,自 20 世纪 50 年代以来,从全球平均气温和海温

    2024年02月07日
    浏览(30)
  • STM32进阶:使用STM32驱动ST7735S(内附核心源码)

    感觉很久很久没有来博客更新了,历经千难万阻,终于做出来了TFT显示屏的SPI驱动,这里分享以下核心源码,接下来一段时间开始准备考科一了,后面有时间了再来更新,有三种模式下的驱动。 实验环境:正点原子 STM32F103ZET6 小型系统板 实验工具:STM32F103ZET6 芯片与 ST7735S芯

    2024年02月01日
    浏览(50)
  • WRF模型教程(ububtu系统)-WPS(WRF Pre-Processing System)概述

          WRF 预处理系统 (WRF Pre-Processing System,WPS) ,集成了基于 Fortran 和 C 编写的程序,这些程序主要用于处理输入到 real.exe 的数据。WPS主要有三个程序和一些辅助程序。       主要的程序为 geogrid.exe、ungrib.exe、metgrid.exe ,输入到这些程序的配置在“ namelist.wps ”中,每个主

    2024年04月12日
    浏览(34)
  • 【AI工具】bing chat 使用--三种模式+撰写功能

    bing chat:三种模式+撰写功能 以下为点击复制后粘贴的内容 Bing Chat提供三种对话模式可选择:创造力、平衡和精确。更多创造力(Creative):Bing Chat回答的内容将带有更多语气和情绪,更像一个真实的人类与用户对话。更多平衡(Balanced):Bing Chat回答的内容将是事实和娱乐性

    2024年02月03日
    浏览(56)
  • 使用 OpenSSL 工具撰写 Bash 脚本进行密码明文的加密与解密

    Written By: Xinyao Tian 本文档描述了使用 OpenSSL 工具在 Bash 脚本中对密码进行加密和解密的简单方式。 使用 Base64 算法进行密码的加密 脚本名称为 encryptPasswd.sh , 脚本内容如下: 使用 Base64 算法进行密码的解密 脚本名称为 decryptPasswd.sh , 脚本内容如下: 使用方法 检视目录中的脚本

    2024年02月06日
    浏览(148)
  • [玩转AIGC]LLaMA2训练中文文章撰写神器(数据准备,数据处理,模型训练,模型推理)

    好久没更新这个专栏的文章了,今天抽空写了一篇。————2023.12.28 摘要:文体包括新闻,法律文书,公告,广告等,每种文体的书写风格不一样,如果拥有自己的数据集,想针对特定文体来训练一个内容生成的工具,来帮助自己写点文章,如果没接触过AIGC,可能一开始会

    2024年01月17日
    浏览(55)
  • ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写

    熟练地掌握ChatGPT4.0在数据分析、自动生成代码等方面的强大功能,同时更加系统地学习人工智能(包括传统机器学习、深度学习等)的基础理论知识,以及具体的代码实现方法,掌握ChatGPT4.0在科研工作中的各种使用方法与技巧,以及人工智能领域经典机器学习算法(BP神经网

    2024年04月16日
    浏览(51)
  • ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写教程

    原文链接:ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写教程 https://mp.weixin.qq.com/s?__biz=MzUzNTczMDMxMg==mid=2247601506idx=2sn=5dae3fdc3e188e81b8a6142c5ab8c994chksm=fa820c85cdf58593356482880998fc6eb98e6889b261bf621e1d43038ed0376b68fefe8703dftoken=1175537617lang=zh_CN#rd 第一:2024大语言模型最新进展

    2024年04月17日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包