当前位置: 首页 > 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 命令 学…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...