【WRF工具】cmip6-to-wrfinterm工具概述:生成WRF中间文件

cmip6-to-wrfinterm工具概述

  • cmip6-to-wrfinterm工具安装
  • cmip6-to-wrfinterm工具使用
    • 快速启动(Quick start)
      • 情景1:MPI-ESM-1-2-HR(默认):
      • 情景2:BCMM
      • 情景3:EC-Earth3
    • 更改使用(Usage)
      • 修改 config.ini ( MPI-ESM1-2-HR)
      • [可选] 修改 Vtable
      • [高级] cmip_handler.py
  • 参考

cmip6-to-wrfinterm工具介绍及下载可参见GitHub-cmip6-to-wrfinterm
在这里插入图片描述
CMIP6-to-WRFInterim 使用纯 Python 实现将 CMIP6 亚日尺度输出转换为 WRF 中间文件,这些中间文件用于驱动 WRF 模型进行区域动力降尺度应用。目前支持的模型如下:
在这里插入图片描述

如果您希望使用其他模型,需要进行相应的修改。

cmip6-to-wrfinterm工具安装

请使用Anaconda3发行版安装Python3。已经对Anaconda3中包含的Python3.8和3.9进行了深入测试,较低版本的Python3也可能可以使用(未经测试)。如果NumPy、Pandas、SciPy、XArray和NetCDF4已正确安装,可以跳过安装步骤。

建议在Anaconda中创建一个新的环境并安装requirements.txt文件。
安装代码如下:

conda create -n test_c2w python=3.9
conda activate test_c2w
pip install -r requirements.txt

cmip6-to-wrfinterm工具使用

快速启动(Quick start)

情景1:MPI-ESM-1-2-HR(默认):

python3 run_c2w.py

请使用类 Unix (Linux) 系统运行上述命令,看到一些 FutureWarnings 是正常的。如果成功,您应该会在文件夹中看到CMIP6:2100-01-02_00和。(如果您是 Windows 子系统用户,请参阅故障排除。)CMIP6:2100-01-02_06./output

将两个中间文件复制或链接到您的 WPS 文件夹,准备好geo_em文件并正确设置namelist.wps,现在您就可以运行metgrid.exe以下 WRF 程序了。

文件夹中有一个涵盖东亚地区的简单示例namelist.wps和供测试。如果您在计算节点上操作,您还可以修改以自动执行从到的程序。namelist.input./sample/MPI-ESM-1-2-HRwps_wrf_pipeline.shmetgrid.exewrf.exe

如果您成功运行示例案例,您将会看到初始条件下以及 6 小时 WRFv4.3 运行后的皮肤温度快照,如上所示。
在这里插入图片描述

情景2:BCMM

python3 run_c2w.py -m BCMM

情景3:EC-Earth3

python3 run_c2w.py -m EC-Earth3

文件夹中有一个简单的示例namelist.wps,namelist.input涵盖了中美洲,./sample/EC-Earth3供测试之用。

如果您成功运行示例案例,则应看到初始条件下和 6 小时 WRFv4.3 运行后的皮肤温度快照,如下所示:
在这里插入图片描述

更改使用(Usage)

修改 config.ini ( MPI-ESM1-2-HR)

当您正确下载MPI-ESM1-2-HR数据时,首先./conf/config.MPI-ESM1-2-HR.ini正确编辑文件。

[INPUT]
input_root=./sample/MPI-ESM1-2-HR/
model_name=MPI-ESM1-2-HR
scenario = ssp585
esm_flag=r1i1p1f1
grid_flag=gn
#YYYYMMDDHHMM
cmip_strt_ts = 210001020000
cmip_end_ts = 210001020600[OUTPUT]
#YYYYMMDDHHMM, please seperate your ETL processes if request very long-term simulation
etl_strt_ts = 210001020000
etl_end_ts = 210001020600
output_root = ./output/
  • [INPUT][‘input_root’]是CMIP6数据的根目录,这里指向的是./sample/文件夹。
  • [INPUT][‘model_name’]是模型的名称。目前仅MPI-ESM-1-2-HR支持该模型。如果您计划使用其他模型,则需要设置自己的变量映射表(见下文)。
  • [INPUT][‘scenario’] [‘esm_flag’] [‘grid_flag’]用于形成 netCDF 文件名。
  • [INPUT][‘cmip_strt_ts’]和[INPUT][‘cmip_end_ts’]是 CMIP6 数据的开始和结束时间。
  • [OUTPUT][‘etl_strt_ts’]和[OUTPUT][‘etl_end_ts’]是您所需 ETL 周期的开始和结束时间。

编辑完文件后config.ini,您可以再次运行脚本并运行所需的时间。中间文件将生成在[OUTPUT][‘output_root’]文件夹中。

请注意,对于MPI-ESM1-2-HR,模型未提供 10-200cm 之间的土壤属性,我们用 0-10cm 土壤属性覆盖了它,2d-soilr变量映射表中提供了特殊类型标记。如果您的研究需要准确的土壤属性,您可能需要长期(约 1 个月)的启动运行。

对于历史运行,MPI-ESM1-2-HR不提供大气数据集中的皮肤温度输出,我们tas在这里使用它来表示皮肤温度,这在陆地上是可以接受的,因为陆地特性是从陆地表面模型预测的,但它可能对规定的有偏差SST。我们建议用户tos从海洋数据集下载数据并将其转换为大气数据集格式,并修改Vtable以摄取真实的 SST。

[可选] 修改 Vtable

./db/${MODEL_NAME}.csv记录模型指定的变量映射表。如果您计划使用其他模型或在某些情况下涉及 SST(例如 MPI-ESM1-2-HR 的历史运行),则需要设置自己的变量映射表。

src_v,aim_v,units,type,lvlmark,desc
ta,TT,K,3d,PlevPt,3-d air temperature
hus,SPECHUMD,kg kg-1,3d,PlevPt,3-d specific humidity
ua,UU,m s-1,3d,PlevPt, 3-d wind u-component
va,VV,m s-1,3d,PlevPt, 3-d wind v-component
zg,GHT,m,3d,PlevPt, 3-d geopotential height
ps,PSFC,Pa,2d,Lev, Surface pressure
tas,TT,K,2d,PlevPt, 2-m temperature
uas,UU,m s-1,2d,PlevPt, 10m wind u-component
vas,VV,m s-1,2d,PlevPt, 10m wind v-component
ts,SKINTEMP,K,2d,PlevPt, Skin temperature
psl,PMSL,Pa,2d,PlevPt, Mean sea-level pressure
huss,SPECHUMD, kg kg-1,2d,PlevPt, 2-m relative humidity
mrsos,SM000010, kg/m-3,2d-soil,PlevPt, 0-10 cm soil moisture
tsl,ST000010,K,2d-soil,PlevPt, 0-10 cm soil temp 
mrsos,SM010200, kg/m-3,2d-soilr,PlevPt, 10-200 cm soil moisture
tsl,ST010200,K,2d-soilr,PlevPt, 10-200 cm soil temp 
  • src_v是CMIP6数据中变量的名称,也用于形成netCDF文件名。
  • aim_v是存档在WRF中间文件中的变量的名称,由 使用metgrid.exe。
  • units是变量的单位。
  • type表示变量的类型。3d表示三维变量,2d表示二维变量,2d-soil表示土壤层中的二维变量。注意,对于MPI-ESM-1-2-HR,模型没有提供 10-200cm 之间的土壤属性,我们用 0-10cm 土壤覆盖了它,2d-soilr这里提供了一个特殊的类型标记。
  • lvlmark是变量的级别标记。PlevPt表示该变量是具有压力级别的三维变量。
  • desc是变量的描述。

[高级] cmip_handler.py

转换器的核心是cmip_handler.py。它是一个处理 CMIP6 数据并将其转换为 WRF 中间文件的 Python 模块。该模块首先根据config.ini文件加载 CMIP6 数据,然后将其插入到常规 latXlon 网格中。最后将数据转换为 WRF 中间文件。该模块包括以下函数和类:


Functions:gen_wrf_mid_template():Generate a WRF-Mid template dict for the WRF-Intermediate data.write_record(out_file, slab_dic):Write a record to a WRF intermediate file--------------------Classes:CMIPHandler():Construct CMIP Handler Methods-------__init__:   initialize CMIP Handler with config and loading datainterp_data: interpolate data to common meshwrite_wrfinterm: write wrfinterm file

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/438490.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫——爬取小音乐网站

爬虫有几部分功能??? 1.发请求,获得网页源码 #1.和2是在一步的 发请求成功了之后就能直接获得网页源码 2.解析我们想要的数据 3.按照需求保存 注意:开始爬虫前,需要给其封装 headers {User-…

Redis:初识Redis

Redis:初识Redis Redis 介绍分布式架构Redis特性安装Redis Redis 介绍 在官网中,是如下介绍Redis的: in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and messag…

使用Electron将vue项目改桌面程序

1,一个简单的实现案例 # 切换镜像,其他镜像:https://registry.npm.taobao.org/ npm config set registry https://registry.npmmirror.com/ # 推荐使用yarn来管理依赖包,相对于Node.js自带的npm包管理工具来说,它具有…

【Linux】进程周边之优先级

目录 一、优先级 1.为什么要有进程优先级? 2.什么是进程优先级? 3.优先级的初始设定 3.1 PRI 和 NI 3.2如何修改优先级?(sudo/root) 3.2.1 概念: 3.2.2 如何查看进程的优先级? 3.3.3 或…

第十七章:c语言内存函数

1. memcpy使⽤和模拟实现 2. memmove使⽤ 3. memset函数的使⽤ 4. memcmp函数的使⽤ 天行健 君子以自强不息一、memcpy的使用和模拟实现 作用: 1. 函数memcpy从source的位置向后复制num个字节的数据到destination指向的内存位置。 2. 这个函数在遇到‘\0’的时…

进程状态及优先级

目录 一、进程状态 二、进程优先级 三、Linux内核进程调度队列 一、进程状态 在一般的教科书中,都会对进程有以下的分类: 至于落实到Linux,进程的状态是什么样子的呢? //这是Linux中对进程状态的描述 /* * The task state arra…

【二十七】【QT开发应用】VS如何复制项目,QT无边窗窗口Pro版本,信号与信号槽的应用,背景图片自适应控件大小

VS复制项目 在使用VS的过程中,有的时候我们需要复制我们已经存在的项目. 我们可以先创建一个新的项目. 接着把需要复制的项目的文件复制粘贴到新的项目文件夹中. 不要忘记添加现有项目. CFrameLessWidgetBase.h #pragma once #include <QWidget> class CFrameLessWi…

系统架构设计师④:计算机网络

系统架构设计师④&#xff1a;计算机网络 TCP/IP协议族 模型如下&#xff1a; 常用的协议及端口号&#xff1a; 各个协议能力介绍&#xff1a; TCP与UDP的对比&#xff1a; DNS协议 DSN&#xff1a;域名系统( Domain Name System) 支持两种查询方式 &#xff1a; ①递…

elasticsearch设置账号和密码

1、es安装&#xff0c;挂载路径根据实际情况修改 docker run -d --restart always \ --name es \ -e "ES_JAVA_OPTS-Xms512m -Xmx512m" \ -e "discovery.typesingle-node" \ -e "TZAsia/Shanghai" \ -v /mnt/data/efk/es/data:/usr/share/elast…

uniapp使用字体图标 ttf svg作为选项图标,还支持变色变图按

在staic目录下有一些ttf文件&#xff0c;如uni.ttf&#xff0c;iconfont.ttf 这些文件中保存这字体svg的源码们&#xff0c;我们也可以在网上找其他的。这些就是我们要显示的突图标的 显示来源。这样不用使用png图标&#xff0c;选中不选中还得用两个图片 我的具体使用如下 &q…

新手教学系列——用 VSCode 实现高效远程开发

随着软件开发环境日益复杂,远程开发已成为许多开发者的日常工作方式。尤其当项目需要直接在服务器上运行或本地计算资源有限时,能够使用一款便捷、强大的工具至关重要。在众多 IDE 中,VSCode 因其轻量、灵活且支持丰富插件,成为远程开发的理想选择。本文将详细介绍如何通过…

PasteForm最佳CRUD实践,实际案例PasteTemplate详解之3000问(三)

作为“贴代码”力推的一个CRUD实践项目PasteTemplate,在对现有的3个项目进行实战后效果非常舒服&#xff01;下面就针对PasteForm为啥我愿称为最佳CRUD做一些回答: 哪里可以下载这个PasteForm的项目案例 目前“贴代码”对外使用PasteForm的项目有"贴Builder(PasteSpide…

[云服务器18] 搭建AIGC APP?AI绘图不神秘!

好的这是我的第18篇blog了&#xff01;开心max&#xff01; 那么&#xff0c;这次我们来做些什么呢……&#xff08;思考中&#xff09; 此时的我拿起了手机&#xff0c;打开了某APP&#xff0c;然后赫然出现的广告&#xff1a; 现在是AI的时代&#xff0c;为什么不来学习AIGC…

《开题报告》基于SSM框架的电影评论网站的设计与实现源码++学习文档+答辩讲解视频

开题报告 研究背景 随着互联网技术的飞速发展&#xff0c;网络已成为人们获取信息、交流思想、分享体验的重要平台。在电影产业蓬勃发展的今天&#xff0c;观众对于电影的选择不再仅仅依赖于传统的宣传渠道&#xff0c;而是更加倾向于通过在线平台了解影片内容、观看预告片、…

Mybatis的基本使用

什么是Mybatis&#xff1f; Mybatis是一个简化JDBC的持久层框架&#xff0c;MyBatis是一个半自动化框架&#xff0c;是因为它在SQL执行过程中只提供了基本的SQL执行功能&#xff0c;而没有像Hibernate那样将所有的ORM操作都自动化了。在MyBatis中&#xff0c;需要手动编写SQL语…

第十三章 集合

一、集合的概念 集合&#xff1a;将若干用途、性质相同或相近的“数据”组合而成的一个整体 Java集合中只能保存引用类型的数据&#xff0c;不能保存基本类型数据 数组的缺点&#xff1a;长度不可变 Java中常用集合&#xff1a; 1.Set(集):集合中的对象不按特定方式排序&a…

工具模块及项目整体模块框架

文章目录 工具模块logger.hpphelper.hppthreadpool.hpp 核心概念核心API交换机类型持久化⽹络通信消息应答持久化数据管理中心模块虚拟机管理模块交换路由模块消费者管理模块信道管理模块连接管理模块Broker服务器模块消费者管理信道请求模块通信连接模块项⽬模块关系图 工具模…

ScrapeGraphAI 大模型增强的网络爬虫

在数据驱动的动态领域&#xff0c;从在线资源中提取有价值的见解至关重要。从市场分析到学术研究&#xff0c;对特定数据的需求推动了对强大的网络抓取工具的需求。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线…

电脑出现msvcp140.dll丢失的解决方法,总结6种解决方法

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中最常见的就是“msvcp140.dll丢失”的错误。这个错误提示通常出现在运行某个程序时&#xff0c;它意味着计算机无法找到所需的msvcp140.dll文件。那么&#xff0c;msvcp140.dll丢失是怎么回事呢&#…

69 BERT预训练_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录NLP里的迁移学习Bert的动机Bert架构对输入的修改五、预训练任务1、2、3、 六、1、2、3、 七、1、2、3、 八、1、2、3、 NLP里的迁移学习 之前是使用预训练好的模型来抽取词、句子的特征&#xff0c;例如 word2vec 或语言模型这种非深度学习…