当前位置: 首页 > news >正文

【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

参考

相关文章:

【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 更改使用&#x…...

大厂面试真题:阿里经典双重检测DCL对象半初始化问题

阿里面试题中提到的双重检测DCL(Double-Checked Locking)对象半初始化问题,是Java多线程编程中一个经典的问题。以下是对这一问题的详细解析: 一、双重检测锁(DCL)概述 双重检测锁是一种用于实现单例模式…...

20款奔驰CLS300升级原厂抬头显示HUD 23P智能辅助驾驶 触摸屏人机交互系统

以下是为您生成的一份关于 18 款奔驰 CLS 老款改新款的改装文案: 18 款奔驰 CLS 老款改新款:科技升级,畅享极致驾驶体验 在汽车改装的世界里,每一次的升级都是对卓越的追求。今天,让我们一同探索 18 款奔驰 CLS 老款改…...

GoogleNet原理与实战

在2014年的ImageNet图像识别挑战赛中,一个名叫GoogLeNet 的网络架构大放异彩。以前流行的网络使用小到11,大到77的卷积核。本文的一个观点是,有时使用不同大小的卷积核组合是有利的。 回到他那个图里面你会发现,这里的一个通过我们最大的池化…...

MongoDB 数据库服务搭建(单机)

下载地址 下载测试数据 作者:程序那点事儿 日期:2023/02/15 02:16 进入下载页,选择版本后,右键Download复制连接地址 下载安装包 ​ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.14.tgz​ …...

基于springboot+小程序的智慧物业平台管理系统(物业1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 智慧物业平台管理系统按照操作主体分为管理员和用户。 1、管理员的功能包括报修管理、投诉管理管理、车位管理、车位订单管理、字典管理、房屋管理、公告管理、缴费管理、维修指派管理、…...

[SpringBoot] 苍穹外卖--面试题总结--上

前言 1--苍穹外卖-SpringBoot项目介绍及环境搭建 详解-CSDN博客 2--苍穹外卖-SpringBoot项目中员工管理 详解(一)-CSDN博客 3--苍穹外卖-SpringBoot项目中员工管理 详解(二)-CSDN博客 4--苍穹外码-SpringBoot项目中分类管理 详…...

[C#]使用onnxruntime部署yolov11-onnx实例分割模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 在C#中使用ONNX Runtime部署YOLOv11-ONNX实例分割模型,涉及到模型的加载、数据预处理、模型推理和后处理几个关键步骤。 首先,需要确保已经安装了ONNX Runtime的NuGe…...

Polars的Config

Config Config 内容使用示例设置并行执行设置日志详细程度指定null值设置推断schema的行数启用低内存模式获取当前配置选项的值 在Polars的Python API中,Config部分提供了配置选项,允许用户自定义Polars的行为。以下是一些可配置的选项及其使用示例&…...

【面试官】 多态连环问

以下是一些关于封装的常见面试题及答案: 封装 1. 什么是封装? 答案:封装是面向对象编程的三大特性之一,它是将数据和操作数据的方法绑定在一起,并且通过访问修饰符限制对数据的直接访问,只提供特定的方法来…...

Vue 路由设置

为了防止遗忘,记录一下用Vue写前端配置路由时的过程,方便后续再需要用到时回忆。 一、举个例子 假如需要实现这样的界面逻辑: 在HomePage中有一组选项卡按钮用于导航到子页面,而子页面Page1中有一个按钮,其响应事件是…...

力扣110:判断二叉树是否为平衡二叉树

利用二叉树遍历的思想编写一个判断二叉树,是否为平衡二叉树 示例 : 输入:root [3,9,20,null,null,15,7] 输出:true思想: 代码: int getDepth(struct TreeNode* node) {//如果结点不存在,返回…...

Chromium 中JavaScript Fetch API接口c++代码实现(一)

Fetch API主要暴露了三个接口一个方法。 三个接口 Request(资源请求)Response(请求的响应)Headers(Request/Response头部信息)一个方法 fetch()(获取资源调用的方法更多介绍参考 Fetch API - Web API | MDN (mozilla.org) 一、 来看一段前端代码 <!DOCTYPE html> <h…...

ARM(5)内存管理单元MMU

一、虚拟地址和物理地址 首先&#xff0c;计算机系统的内存被组成一个由M个连续的字节大小组成的数组。每字节都会有一个唯一的物理地址。CPU访问内存最简单的方式就是使用物理地址。如下图&#xff1a; 图 1 物理地址,物理寻址 而现在都是采用的都是虚拟寻址的方法。CPU生成一…...

文件上传漏洞原理

原理&#xff1a;\n应用中存在上传功能&#xff0c;但是上传的文件没有经过严格的合法性检验或者检验函数存在缺陷&#xff0c;导致可以上传木马文件到服务器&#xff0c;并且能够执行其中的恶意代码。\n\n危害&#xff1a;\n服务器的网页篡改&#xff0c;网站被挂马&#xff0…...

Web安全 - 安全防御工具和体系构建

文章目录 安全标准和框架1. 国内安全标准&#xff1a;等级保护制度&#xff08;等保&#xff09;2. 国际安全标准&#xff1a;ISO27000系列3. NIST安全框架&#xff1a;IDPRR方法4. COBIT与ITIL框架 防火墙防火墙的基本作用防火墙的三种主要类型防火墙的防护能力防火墙的盲区 W…...

服务器数据恢复—raid磁盘故障导致数据库文件损坏的数据恢复案例

服务器存储数据恢复环境&故障&#xff1a; 存储中有一组由3块SAS硬盘组建的raid。上层win server操作系统层面划分了3个分区&#xff0c;数据库存放在D分区&#xff0c;备份存放在E分区。 RAID中一块硬盘的指示灯亮红色&#xff0c;D分区无法识别&#xff1b;E分区可识别&a…...

requests 中data=xxx、json=xxx、params=xxx 分别什么时候用

如果是要做爬虫模拟一个页面提交&#xff0c;看原页面是post还是get&#xff0c;以及Content-Type是什么。 GET 请求 使用 paramsxxx&#xff0c;查询参数会被编码到 URL 中。POST 请求&#xff0c;Content-Type为 application/x-www-form-urlencoded的&#xff0c;使用 dataxx…...

毕设 大数据抖音短视频数据分析与可视化(源码)

文章目录 0 前言1 课题背景2 数据清洗3 数据可视化地区-用户观看时间分界线每周观看观看路径发布地点视频时长整体点赞、完播 4 进阶分析相关性分析留存率 5 深度分析客户价值判断 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕…...

【SQL】深入理解SQL:从基础概念到常用命令

目录 1. SQL基础概念1.1 数据库与表1.2 行与列1.3 数据库与表结构示意图 2. 常用SQL命令3. DML 命令3.1 SELECT语句3.2 INSERT语句3.3 UPDATE语句3.4 DELETE语句 4. DDL 命令3.4.1 CREATE 命令3.4.2 ALTER 命令3.4.3 DROP 命令 5. DCL 命令3.6.1 GRANT 命令3.6.2 REVOKE 命令 学…...

一文看懂计算机中的大小端(Endianess)

文章目录 前言一、什么是大小端二、如何判断大小端三、大小端的转换3.1 使用标准库函数3.2 手动实现大小端转换 前言 本文主要探讨计算机中大小端的相关概念以及如何进行大小端的判断和转换等。 一、什么是大小端 大小端&#xff08;Endianess&#xff09;是指计算机系统在存…...

如何给父母安排体检?

总结&#xff1a;给父母安排体检&#xff0c;常规项目针对项目。 其中针对项目是根据父母自身的病史来设计。 如何快速了解这些体检项目&#xff1f;我自己认为最快的方式&#xff0c;自己去医院体检两次&#xff0c;这样对体检的项目有一定的了解&#xff0c;比如这个项目怎么…...

C++之模版进阶篇

目录 前言 1.非类型模版参数 2.模版的特化 2.1概念 2.2函数模版特化 2.3 类模板特化 2.3.1 全特化和偏特化 2.3.2类模版特化应用实例 3.模版分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 4. 模板总结 结束语 前言 在模版初阶我们学习了函数模版和类…...

Vue3 中的 `replace` 属性:优化路由导航的利器

嘿&#xff0c;小伙伴们&#xff01;今天给大家带来一个Vue3中非常实用的小技巧——replace属性的使用方法。在Vue Router中&#xff0c;replace属性可以帮助我们在导航时不留下历史记录&#xff0c;这对于一些特定的应用场景非常有用。话不多说&#xff0c;让我们直接进入实战…...

vite学习教程06、vite.config.js配置

前言 博主介绍&#xff1a;✌目前全网粉丝3W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容&#xff1a;Java后端、大数据、算法、分布式微服务、中间件、前端、运维等。 博主所有博客文件…...

【大数据】Flink CDC 实时同步mysql数据

目录 一、前言 二、Flink CDC介绍 2.1 什么是Flink CDC 2.2 Flink CDC 特点 2.3 Flink CDC 核心工作原理 2.4 Flink CDC 使用场景 三、常用的数据同步方案对比 3.1 数据同步概述 3.1.1 数据同步来源 3.2 常用的数据同步方案汇总 3.3 为什么推荐Flink CDC 3.4 Flink …...

JavaEE: 深入解析HTTP协议的奥秘(1)

文章目录 HTTPHTTP 是什么HTTP 协议抓包fiddle 用法 HTTP 请求响应基本格式 HTTP HTTP 是什么 HTTP 全称为"超文本传输协议". HTTP不仅仅能传输文本,还能传输图片,传输音频文件,传输其他的各种数据. 因此它广泛应用在日常开发的各种场景中. HTTP 往往是基于传输层的…...

OpenStack Yoga版安装笔记(十六)Openstack网络理解

0、前言 本文将以Openstack在Linux Bridge环境下的应用为例进行阐述。 1、Openstack抽象网络 OpenStack的抽象网络主要包括网络&#xff08;network&#xff09;、子网&#xff08;subnet&#xff09;、端口&#xff08;port&#xff09;&#xff0c;路由器&#xff08;rout…...

PEFT库和transformers库在NLP大模型中的使用和常用方法详解

PEFT&#xff08;Parameter-Efficient Fine-Tuning&#xff09;库是一个用于有效微调大型预训练语言模型的工具&#xff0c;尤其是在计算资源有限的情况下。它提供了一系列技术&#xff0c;旨在提高微调过程的效率和灵活性。以下是PEFT库的详细解读以及一些常用方法的总结&…...

静止坐标系和旋转坐标系变换的线性化,锁相环线性化通用推导

将笛卡尔坐标系的电压 [ U x , U y ] [U_x, U_y] [Ux​,Uy​] 通过旋转变换(由锁相环角度 θ P L L \theta_{PLL} θPLL​ 控制)转换为 dq 坐标系下的电压 [ U d , U q ] [U_d, U_q] [Ud​,Uq​]。这个公式是非线性的,因为它涉及到正弦和余弦函数。 图片中的推导过程主要…...