python绘图 | 国家气象局开源预报检验库(多图预警)
时间:2022-07-26
本文章向大家介绍python绘图 | 国家气象局开源预报检验库(多图预警),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Meteva介绍
Meteva程序库由国家气象中心预报技术研发室检验科负责研发,是面向气象预报产品及中间产品进行全面检验评估所需要用到函数和功能的集成。它是国内第一款专门用于气象预报检验的Python程序库。
目前该程序提供了可供复用的函数达200多个,集成了开展检验所需的基础函数(包括数据的读写、插值、累加、平均、选取、分组等)、检验算法(包括各类二分类、多分类、连续型变量、概率预报和集合预报的检验等)和检验图形产品(包括空间对比图、时间序列对比、误差序列分析图、误差空间分布图等)。
有无预报检验
- 综合检验图
performance()
绘制二分类预报的综合检验图,其横坐标为成功率,纵坐标为命中率,并绘制了等bias和等ts曲线辅助线,检验结果以圆点方式显示在图中,从而可以直接浏览成功率、命中率、bias和ts等检验指标。
多分类预报检验
- 频率统计图
frequency_histogram()
统计观测和预报分别为各种类别的样本数,并以柱状图形式绘制成图片
连续型预报检验
- 散点回归图
scatter_regress()
绘制观测-预报散点图和线性回归曲线,横坐标为观测值,纵坐标为预报值,横坐标和纵坐标取值范围自动设为一致,在图形中间添加了完美预报的参考线。
- 频率关系图
pdf_plot()
将观测和预报值分别从小到大排序,将排序后的两组数据绘制成包含两幅子图的频率匹配关系图。第一幅子图为观测和预报的概率分布函数对比图,第二幅子图频率匹配映射关系图。图中横坐标和纵坐标取值范围自动设为一致,并在图形中间添加了完美预报的参考线。
- 频率对比箱须图
box_plot_continue()
分别绘制了观测和预报的频率箱须图,横坐标为”观测”、”预报”,纵坐标为数据值, 箱须图包含了第一四分位数、中位数、第三四分位数与异常值(离群值)等不同等级。
概率预报检验
- 区分能力图
discrimination()
绘制预报概率为不同区间下观测样本事件发生和不发生的样本占总样本的比例。
- ROC图
roc()
绘制ROC曲线,曲线以空报率(pofd)作为横坐标,以命中率(pod)为纵坐标。其中曲线描点为预报概率设置不同阈值作为预报发生的条件下,对应的(空报率,命中率)。
- 可靠性图
reliability()
绘制可靠性图,其中横坐标为预报概率。纵向分为主次两幅子图,主图纵坐标为同一预报概率区间下实况样本事件发生的比例。次图为每个预报区间对应的预报样本数。
- 综合检验图
comprehensive_probability()
可靠性图、ROC图和区分能力图的组合图。
集合预报检验
- 排序柱状图
rank_histogram()
反映集合预报的发散时候和其不确定性一致。
- 频率对比箱须图
box_plot_ensemble()
分别绘制了观测和预报的频率箱须图,横坐标为”观测”、”预报”,以及预报成员编号,纵坐标为数据值,包含了第一四分位数、中位数、第三四分位数与异常值(离群值)
空间分布对比
- 降水预报和观测分布综合对比图
rain_24h_comprehensive_sg()
根据输入的站点观测数据和网格预报数据,绘制对比图
- 温度预报和零场分布综合对比图
temper_comprehensive_gg()
误差序列分析
- 误差综合分析图(绝对值)
error_boxplot_abs()
根据输入的站点数据,选择部分数据,将选择的数据进行进行分组检验,绘制误差综合分析图
时间序列对比
- 多模式多时效对比图
time_list_line()
将不同时刻起报的预报和实况在同一张图中进行显示对比,便于及时发现问题,以曲线的方式叠加显示。
- 多时效预报误差和稳定性对比图
time_list_mesh()
可以便于同时展示要素对比图和误差图,误差图的误差分布更显眼,更便于发现问题。
官方文档
全流程检验程序官方说明文档网址: https://www.showdoc.cc/meteva Github开源代码网址: https://github.com/nmcdev/meteva
尾声
总体来说,这个全流程检验库包括的内容非常丰富,也考虑了很多细节,囊括了基本所有主流的检验方式和检验内容,避免了重复造轮子。 对检验工作有着强需求的小伙伴赶快来试试吧。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Three.js教程(5):光源
- Three.js教程(6):几何体
- Three.js教程(7):材质
- Keep APP技术研究
- Canvas系列(15):实战-小球拖拽
- Canvas系列(16):实战-小球与斜面碰撞
- Three.js教程(3):场景
- Three.js教程(4):相机
- 使用GithubActions自动部署应用到自己的服务器(ECS)
- Nuxt项目给script标签添加crossorigin属性
- Canvas系列(12):动画高级
- Canvas系列(13):实战--星空连线图
- VSCode支持Vue自动保存格式化的配置
- 构造方法或new返回该对象
- 使用Node在浏览器打开某个网页