【WRF后处理】WRF模拟效果评价及可视化:MB、RMSE、IOA、R
【WRF后处理】模拟效果评价及可视化
- 准备工作
- 模型评价指标
- Python实现代码
- Python处理代码:导入站点及WRF模拟结果
- 可视化图形及评价指标
- 参考
在气象和环境建模中(如使用 WRF 模型进行模拟),模型性能评价指标是用于定量评估模拟值与观测值之间偏差和拟合程度的重要工具。
本博客主要介绍 结合 WRF 模拟结果(wrfout 文件) 和 站点实测数据 进行模拟效果评价。
准备工作
1.1 WRF 模拟结果 (wrfout)
WRF 的输出文件(wrfout_d_YYYY-MM-DD_HH:MM:SS)包含了模拟结果的三维网格数据,需要提取与站点位置匹配的模拟值。提取工具常用 Python 的 NetCDF4 或 xarray 库。
1.2 站点实测数据
站点实测数据通常包含以下内容:
- 站点经纬度:用于找到与站点位置匹配的模拟网格点。
- 时间序列数据:如气温、降水、风速、风向等观测值,与 WRF 输出时间对应。
1.3 时间和空间对齐
- 时间对齐:确保 WRF 输出时间和站点观测时间一致,必要时插值。
- 空间对齐:将站点位置与 WRF 的网格点匹配(最近邻、双线性插值等)。
模型评价指标
以下是常用的四个评价指标,用于评价WRF模拟效果。
1、 Mean Bias(MB,平均偏差)
MB 表示模拟值与观测值之间的平均误差,反映了模型的系统性偏差。
若 MB 为正,表示模拟值总体偏高;若 MB 为负,表示模拟值总体偏低。
缺点:MB 可能会因为正负误差相互抵消而掩盖模型的实际误差大小,因此通常需要结合其他指标(如 RMSE)一起使用。
2、Root Mean Square Error(RMSE,均方根误差)
RMSE 是一个衡量模拟值与观测值之间误差幅度的指标,它反映了模型误差的整体大小。
RMSE 对误差的平方进行加权,因此对较大的误差更加敏感,能够凸显模型的极端误差。
RMSE 单位与变量一致,因此在不同变量之间比较时,需要注意单位问题。
3、Index of Agreement(IOA,一致性指数)
IOA 是一个无量纲指标,用于衡量模拟值与观测值之间的一致性。
IOA 的取值范围为 [0, 1]:
- 1 表示模拟值与观测值完全一致。
- 0 表示模拟值与观测值完全不相关。
缺点:IOA 对极端值较敏感。
4、 Pearson Correlation Coefficient (r,皮尔逊相关系数)
r 越接近 1:表示模拟值与观测值之间的线性关系越强,模型效果越好。
r 越接近 0:表示模拟值与观测值之间的线性关系较弱。
缺点:r 仅反映线性相关性,无法衡量偏差或误差幅度。
Python实现代码
Python处理代码:导入站点及WRF模拟结果
以下为Python处理代码,通过对比站点和WRF模拟结果,评价WRF模拟效果。
import matplotlib.pyplot as plt
import geopandas as gpd
import wrf
import os
from netCDF4 import Dataset# 打开 WRF 输出文件
directory = "C:/Database/wrfout" # 替换为实际的文件夹路径
wrf_file = "wrfout_d03_2020-07-06_12_00_00"# 合并文件夹路径和文件名
file_path = os.path.join(directory, wrf_file)# 打开 WRF 输出文件
ncfile = Dataset(file_path)
print(f"Successfully opened: {file_path}")# 提取经纬度和变量
lats = wrf.getvar(ncfile, "lat", meta=False) # 纬度
lons = wrf.getvar(ncfile, "lon", meta=False) # 经度
temperature = wrf.getvar(ncfile, "T2", meta=False) # 2米温度# 转换为 NumPy 数组
lats_np = wrf.to_np(lats)
lons_np = wrf.to_np(lons)
# 将温度从开尔文转换为摄氏度
temperature_c = wrf.to_np(temperature) - 273.15 # 转换为摄氏度
相关文章:
【WRF后处理】WRF模拟效果评价及可视化:MB、RMSE、IOA、R
【WRF后处理】模拟效果评价及可视化 准备工作模型评价指标Python实现代码Python处理代码:导入站点及WRF模拟结果可视化图形及评价指标参考在气象和环境建模中(如使用 WRF 模型进行模拟),模型性能评价指标是用于定量评估模拟值与观测值之间偏差和拟合程度的重要工具。 本博客…...
ShenNiusModularity项目源码学习(4:身份认证)
ShenNiusModularity项目有两套启动方式,一种是ShenNius.Admin.Mvc项目启动,该项目为MVC模式,带前台页面,也有后台服务,另一种是ShenNius.Admin.Hosting,该项目启动后仅提供后台服务,供其它前台项…...
python+django自动化部署日志采用WebSocket前端实时展示
一、开发环境搭建和配置 # channels是一个用于在Django中实现WebSocket、HTTP/2和其他异步协议的库。 pip install channels#channels-redis是一个用于在Django Channels中使用Redis作为后台存储的库。它可以用于处理#WebSocket连接的持久化和消息传递。 pip install channels…...
flink学习(6)——自定义source和kafka
概述 SourceFunction:非并行数据源(并行度只能1) --接口 RichSourceFunction:多功能非并行数据源(并行度只能1) --类 ParallelSourceFunction:并行数据源(并行度能够>1) --接口 RichParallelSourceFunction:多功能并行数据源(并行度能够>1) --类 【建议使用的】 ——…...
开发常见问题及解决
1.DBeaver 报Public Key Retrieval is not allowed 在使用DBeaver连接数据库时出现“Public Key Retrieval is not allowed”错误,主要是因为数据库连接配置的安全策略导致的。以下是详细的解释和解决方法: 错误原因 这个错误通常出现在连接MySQL数据…...
python excel接口自动化测试框架!
今天采用Excel继续写一个接口自动化测试框架。 设计流程图 这张图是我的excel接口测试框架的一些设计思路。 首先读取excel文件,得到测试信息,然后通过封装的requests方法,用unittest进行测试。 其中,接口关联的参数通过正则进…...
mybatis:You have an error in your SQL syntax;
完整报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near false, false, false, false, false, false, false, false, false, false, false, at line 1 SQL: INSERT INTO user …...
使用 Maven 开发 IntelliJ IDEA 插件
使用 Maven 开发 IntelliJ IDEA 插件的完整流程 1. 创建 Maven 项目 1.1 使用 IntelliJ 创建 Maven 项目 打开 IntelliJ IDEA,点击 File > New > Project。选择 Maven,填写项目名称和 GroupId,例如: GroupId: com.exampl…...
Windows修复SSL/TLS协议信息泄露漏洞(CVE-2016-2183) --亲测
漏洞说明: 打开链接:https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/windows-security/restrict-cryptographic-algorithms-protocols-schannel 可以看到: 找到:应通过配置密码套件顺序来控制 TLS/SSL 密码 我们…...
uniapp生命周期:应用生命周期和页面生命周期
文章目录 1.应用的生命周期2.页面的生命周期 1.应用的生命周期 生命周期的概念:一个对象从创建、运行、销毁的整个过程被称为生命周期 生命周期函数:在生命周期中每个阶段会伴随着每一个函数的出发,这些函数被称为生命周期函数 所有页面都…...
基于SSM的婴幼儿用品商城系统+LW示例参考
1.项目介绍 功能模块:管理员(产品管理、产品分类、会员管理、订单管理、秒杀活动、文章管理、数据统计等)、普通用户(登录注册、个人中心、购物车、我的收藏、各类信息查看等)技术选型:SSM,jsp…...
【工具变量】城市供应链创新试点数据(2007-2023年)
一、测算方式:参考C刊《经济管理》沈坤荣和乔刚老师(2024)的做法,使用“供应链创新与应用试点”的政策虚拟变量(TreatPost)表征。若样本城市为试点城市,则赋值为 1,否则为 0…...
【carla生成车辆时遇到的问题】carla显示的坐标和carlaworld中提取的坐标y值相反
项目需要重新运行了一下generate_car.py的脚本,发现死活生成不了,研究了半天,发现脚本里面生成车辆的坐标值y和carla_ros_bridge_with_example_ego_vehicle.launch脚本打开的驾驶操控界面里面的y值正好是相反数! y1-y2 因为,我运行…...
Jira使用笔记二 ScriptRunner 验证问题创建角色
背景 最近在对公司Jira工作流改造,收到这么一个要求:某些问题类型只有某些角色可以创建。本来是想通过Jira内建的权限控制来处理的。结果点到权限页面,心都凉透了。 好吧,那只能上脚本了。最终使用ScriptRunner的Simple scripte…...
Java线程的使用
Java中的线程是用来实现多任务并发执行的机制。在Java中,主要有两种方式来创建和使用线程:实现Runnable接口和继承Thread类。 实现Runnable接口: 创建一个类,实现Runnable接口,并重写run()方法。在run()方法中定义线程…...
自动化测试工具Ranorex Studio(四十三)-RANOREXPATH编辑器5
代码示例 下面的代码示例将讲解如何使用Ranorex API来编写代码模块,或者是使用用户代码来扩展录制的模块。 在代码中使用对象库 使用对象库等待UI元素 建立Adapter来访问更多的属性和方法 为对象库元素建立一组Adapter 使用Validate类 强制一个测试用例失败 设置aut…...
超高流量多级缓存架构设计!
文章内容已经收录在《面试进阶之路》,从原理出发,直击面试难点,实现更高维度的降维打击! 文章目录 电商-多级缓存架构设计多级缓存架构介绍多级缓存请求流程负载均衡算法的选择轮询负载均衡一致性哈希负载均衡算法选择 应用层 Ngi…...
数据结构(Java)—— ArrayList
1.线性表 线性表( linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在…...
实习冲刺第三十三天
102.二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]示例…...
Uniapp开发下拉刷新功能onPullDownRefresh/onReachBottom
文章目录 1.onPullDownRefresh2.onReachBottom 1.onPullDownRefresh 在 js 中定义 onPullDownRefresh 处理函数(和onLoad等生命周期函数同级),监听该页面用户下拉刷新事件。 需要在 pages.json 里,找到的当前页面的pages节点&am…...
什么是 C++ 中的函数对象?函数对象与普通函数有什么区别?如何定义和使用函数对象?
1) 什么是 C 中的函数对象?它有什么特点? 在 C 中,函数对象(也称为仿函数或 functor)是一种重载了 operator() 的对象。这意味着这些对象可以像函数一样被调用。函数对象通常用于需要传递行为(即代码&…...
PointNet++论文复现
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
【VUE】el-table表格内输入框或者其他控件规则校验实现
1、封装组件 1、规则校验一般基于form表单实现,因此需要给具体控件套一层form表单 新建组件input-required.vue,内容如下 <template><div><el-form ref"formRef" :model"form" :rules"formRules" label-…...
django开发中html继承模板样式
存在问题: django开发中,不同页面样式相同,如何共用一套母版,避免每个页面都重复写样式; 解决方案: 添加一个母版,如“layout.html”,在需要继承的位置添加{% block content %}{% e…...
MT6769/MTK6769核心板规格参数_联发科安卓主板开发板方案
MT6769安卓核心板具有集成的蓝牙、FM、WLAN和GPS模块,是一个高度集成的基带平台,结合了调制解调器和应用处理子系统,以支持LTE/LTE-A和C2K智能手机应用。 该芯片集成了两个工作频率高达2.0GHz的ARMCortex-A75内核、六个工作频率高达1.70GHz的…...
鸿蒙进阶篇-状态管理之@Provide与@Consume
大家好,这里是鸿蒙开天组,今天我们来学习一下状态管理中的Provide与Consume。 一、概述 嘿!大家还记得这张图吗?不记得也要记得哦,因为这张图里的东西,既是高频必考面试题,也是实际开发中&…...
java集合及源码
目录 一.集合框架概述 1.1集合和数组 数组 集合 1.2Java集合框架体系 常用 二. Collection中的常用方法 添加 判断 删除 其它 集合与数组的相互转换 三Iterator(迭代器)接口 3.0源码 3.1作用及格式 3.2原理 3.3注意 3.4获取迭代器(Iterator)对象 3.5. 实现…...
GraphRAG访问模式和知识图谱建模
GraphRAG访问模式和知识图谱建模 GraphRAG访问模式和知识图谱建模什么是GraphRAG了解文本分块检索模式图谱建模相关概念图结构 GraphRAG访问模式和知识图谱建模 graphrag.com是一个开源项目,收集了围绕GraphRAG的相关资源,目前正在快速收集大家的投稿。深…...
TCP/IP协议攻击与防范
一、TCP/IP协议攻击介绍 1.1 Internet的结构 LAN:局域网 WAN:广域网 WLAN:无线局域网 私有IP地址与公有IP地址? 私有地址:A类:10.0.0.0~10.255.255.255 B类:172.16.0.0~172.31.255.255…...
Java基于 SpringBoot+Vue的口腔管理平台(附源码+lw+部署)
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
网站建设管理系统免费网站/推广平台收费标准
上个月初的时候,华硕ROG产品线升级,推出了一款性价比非常高的游戏本,它就是华硕ROG魔霸新锐,这款笔记本很多地方延续了魔霸3的设计,同时核心配置又做了升级,升级之后不足9000元的售价堪称厚道,不…...
如何做网站怎么赚钱/google关键词搜索量
前言 关于流式调用,熟悉Java的小伙伴可能第一时间都会想到Java8关于stream相关的API,类似这种的代码list.stream().map(item->item1).colletion(Collector::toList),流式调用带给我们的直接感受是代码量的减少。但是由于Java的特性导致一…...
外贸做编织袋常用网站/seo百度排名优化
12.6.1 RequestDispatcher接口RequestDispatcher 对象由 Servlet 容器创建,用于封装一个由路径所标识的服务器资源。利用RequestDispatcher对象,可以把请求转发给其他的Servlet或JSP页面。在RequestDispatcher接口中定义了两种方法。public void forwar…...
wordpress 4.7.2 被黑/东莞关键词优化推广
Simscape Electrical基础快捷键CtrlL 快速定位模块在库中位置;CtrlR 模块右转CtrlShiftR 模块左转空白处双击,搜索模块名/添加AnnotationSpecialized Power Systems一般需要powergui block或solver configuration;使用sum block叠加多个信号&…...
网站生成海报功能怎么做/网站如何快速收录
1。确定c:\windows\system32\下有xcopy.exe文件 2。我的电脑---右键---属性----高级----环境变量----在系统变量中找到path(不分大小写)---双击它----在其变量值 (V)中添加“c:\windows\system32”!,添加方法为:在原变量值后面加英…...
wordpress技巧:开启wordpress多站点功能/企业推广网站有哪些
第一种方法,安装虚拟机。现在的硬件,虚拟机也能跑很多程序了。第二种方法,真正的双系统。有点麻烦。因为windows必须在主分区中。所在要在linux中安装windows1、必须先清空一个主分区,最后在硬盘前面开始位置的主分区,…...