Meteva——让预报检验不再重复造轮子

更多精彩,请点击上方蓝字关注我们!
检验是什么?****预报准确率的客观表达
说到天气预报,你最先会想到什么?
早上听了预报,带了一天伞却没下一滴雨的调侃?
还是 “蓝天白云晴空万里突然暴风雨” 的无奈?

其实,认为天气预报该百分百准确,是对现代科学的“蜜汁自信”。毕竟,由于大气系统的不确定性,天气预报不可能百分百准确已是不争的事实。同时,因为“选择性记忆”的存在,人脑对“不满”的记忆也往往更加深刻。
事实上,近年来,我国的天气预报准确率已经有快速提升,晴雨预报准确率高达90%,台风路径误差小于70公里。无论是普通民众、专业用户还是预报员,对预报的感受绝对比十年前准确得多。
其实说到准确率的问题,首先要明确一个关键词——检验标准。
譬如暴雨的定义,国标规定是24小时降雨量为50-99.9毫米的降雨,而公众往往认为是“下得猛烈”的急雨,这就造成了理解上的偏差。作为衡量预报是否准确的一把标尺,客观的检验结果,有助于增进我们对天气预报的理解。随着中国气象局研究型业务的开展,满足各方面需求的“全流程检验”应运而生。
什么是全流程检验程序库
全流程检验程序库(简称Meteva)是面向气象预报产品及中间产品进行全面检验评估所需要用到函数和功能的集成。它是国内第一款专门用于气象预报检验的Python程序库,也是一款开源程序。数值模式和客观算法、精细化网格预报、各种应用预报产品等所需的检验算法,都将并入全流程检验。检验作为核心模块,将在整体天气预报链路中发挥重要作用。
全流程检验主要服务对象
1、预报员
2、数值模式的研发人员
3、数值模式后处理订正算法的研发人员
4、各级气象部门或公司内部负责本部门检验系统研发的人员
检验能做什么?怎么做?
那么,除了熟知的准确率和TS评分, 检验还能做些什么?怎么做?用什么工具做?
第一个问题最重要,如果知道了要做什么,终究会找到做的方法。但是如果这个问题尚不明确,毕竟除了知道准确率和TS评分,就连各级气象从业人员也不太清楚除此之外还能做些什么。有一些在检验方面造诣较深的学者或许能提供一些启发性的示例,但你要是想得到一整套可以直接对照施工的系统指导,怕是多半要会失望的。
如果第一个问题让人沮丧,那我们不如先想想第二个问题,有一句话叫“手里拿着锤子,看哪里都是钉子”,或许我们掌握了有效的工具,才有意识到我们要解决的问题。我们目前检验的工具,归纳一下主要有三类:

用眼睛看
就是把各种预报和实况放在一起显示,眼睛看的同时,大脑里进行着可以意会也可以言传但无法量化的检验操作。如果你能持续10年认真的做好这项检验工作,你就是首席预报员啦。优点:检验全面充分,有物理意义,缺点:10年太久了, 此外也没法定量。

上网站看
气象部门基本都有自己的检验平台,把各类预报的检验结果都算好,在网站上展示。用户可以很方便的找到检验评分的结果。优点:1分钟就能查看到定量结果。缺点是网站上有的检验指标才能看到,想看点定制化的,就要系统升级后再说了。此外,这些检验指标虽然是客观化的表达,但是物理意义不够明晰,不能告诉预报员怎么改进预报。

编程计算
如果你需要一些网站上没有的定量检验信息,那就只能编程咯。优点:想要啥都能编出来,缺点:你以为检验程序没技术含量就很好编吗,没个百十行代码,你根本做不出一项检验。
全流程检验——不要重复造轮子
面向研究型业务,检验需要率先满足定量的、不按固定套路的变化需求。
上述三种方式中似乎只有第三种可以满足。
但动辄百行代码让很多人望而却步,更要命的是稍微切换一下检验内容或思路,以前写的检验代码没法复用,基本又得重写。
因为编码的时间成本问题,实际上即使是有很强编程能力的研发人员也通常不会经常变换检验方式方法,一段检验代码用到黑,检验的广度和深度受到极大限制。可见,问题的焦点就到了如何提高检验工作的效率上来了。
提高效率的第一个要点就是不要重复造轮子,因此我们把我们造好的轮子全都开源共享给所有同行。当然,一个轮子是不够的,每个人需要用到的轮子是不一样的,为此我们要提供一套大家都用到的各种轮子的全集。我们的预期是将整个行业所有预报制作流程中用到的检验相关的算法和功能集成为一个开源程序库,即全流程检验程序库。
全流程检验程序检验算法函数合集
目前该程序提供了可供复用的函数达200多个,集成了开展检验所需的基础函数(包括数据的读写、插值、累加、平均、选取、分组等)、检验算法(包括各类二分类、多分类、连续型变量、概率预报和集合预报的检验等)和检验图形产品(包括空间对比图、时间序列对比提、误差序列分析图、误差空间分布图等),未来还在持续的更新扩展当中。
如果是检验的同道中人,那就先用为快吧:





全流程检验程序基本检验图形产品示例

福利
全流程检验程序官方说明文档网址https://www.showdoc.cc/meteva
Github开源代码网址https://github.com/nmcdev/meteva
往期精选




·END·
天气有我 科技为你
中央气象台“艾天气”小程序发布,欢迎试用

中央气象台科技创新服务
创新·绿色·共享

微信号:kjcx_nmc
我就知道你“在看”

Meteva——让预报检验不再重复造轮子的更多相关文章
- 避免重复造轮子的UI自动化测试框架开发
		
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
 - GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
		
1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...
 - 第27篇  重复造轮子---模拟IIS服务器
		
在写程序的时候,重复造轮子是程序员的一个大忌,很多人对重复造轮子持有反对的态度,但是我觉得这个造轮子的过程,是对于现有的知识的一个深入的探索的过程,虽然我们不可能把轮子造的那么的完善,对于现在有的东西 ...
 - 重复造轮子,编写一个轻量级的异步写日志的实用工具类(LogAsyncWriter)
		
一说到写日志,大家可能推荐一堆的开源日志框架,如:Log4Net.NLog,这些日志框架确实也不错,比较强大也比较灵活,但也正因为又强大又灵活,导致我们使用他们时需要引用一些DLL,同时还要学习各种用 ...
 - Light libraries是一组通用的C基础库,目标是为减少重复造轮子而写(全部用POSIX C实现)
		
Light libraries是一组通用的C基础库,目标是为减少重复造轮子而写实现了日志.原子操作.哈希字典.红黑树.动态库加载.线程.锁操作.配置文件.os适配层.事件驱动.工作队列.RPC.IPC ...
 - 重复造轮子系列——基于Ocelot实现类似支付宝接口模式的网关
		
重复造轮子系列——基于Ocelot实现类似支付宝接口模式的网关 引言 重复造轮子系列是自己平时的一些总结.有的轮子依赖社区提供的轮子为基础,这里把使用过程的一些觉得有意思的做个分享.有些思路或者方法在 ...
 - 重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印
		
重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印 一.引言 桌面端系统经常需要对接各种硬件设备,比如扫描器.读卡器.打印机等. 这里介绍下桌面端 ...
 - 答应我,用了这个jupyter插件,别再重复造轮子了
		
1 简介 在使用Python.R等完成日常任务的过程中,可能会经常书写同样或模式相近的同一段代码,譬如每次使用matplotlib绘制图像的时候可以在开头添加下面两行代码来解决中文乱码等显示问题: p ...
 - 54 个官方 Spring Boot Starters 出炉!别再重复造轮子了…….
		
在之前的文章,栈长介绍了 Spring Boot Starters,不清楚的可以点击链接进去看下. 前段时间 Spring Boot 2.4.0 也发布了,本文栈长再详细总结下最新的 Spring B ...
 
随机推荐
- 【Ubuntu】Ubuntu系统启动过程中,输入用户名与密码后登录一直卡在紫色界面问题(未解决,最后通过重装系统)
			
0. 前言 由于本电脑为公用电脑,可能由于其他人点了图像界面中推荐的内核更新,导致原来安装的NVIDIA显卡驱动 430 与升级后的 5.0 内核不兼容,从而导致输入用户名后登录一直卡在紫色界面.在排 ...
 - Spring_管理bean的生命周期
			
Spring IOC 容器对 Bean 的生命周期进行管理的过程:通过构造器或工厂方法创建 Bean 实例为 Bean 的属性设置值和对其他 Bean 的引用将 Bean 实例传递给 Bean 后置处 ...
 - 值得注意的Java基础知识
			
1)Java语言中默认(即缺省没写出)的访问权限,不同包中的子类不能访问. 中有4中访问修饰符:friendly(默认).private.public和protected. public :能被所有的 ...
 - ASP.NET Core 依赖注入最佳实践与技巧
			
ASP.NET Core 依赖注入最佳实践与技巧 原文地址:https://medium.com/volosoft/asp-net-core-dependency-injection-best-pra ...
 - Rocket - tilelink - Bits vs. UInt
			
https://mp.weixin.qq.com/s/lzDmIHkUph3b1Fxgx66ySg 分析移位/取反操作在Intellij中提示错误的问题. 1. 问题 用到移位/取反的地方 ...
 - SpringCloud Eureka Client和Server侧配置及Eureka高可用配置
			
一.Eureka注册中心和客户端配置Demo. 1.Server端 a.使用Idea创建Spring项目,如下所示: b.相关配置 application.yaml配置文件如下: # eureka本身 ...
 - Java实现 蓝桥杯VIP 基础练习 完美的代价
			
package 蓝桥杯VIP; import java.util.Scanner; public class 完美的代价 { public static int sum = 0; public sta ...
 - Java实现 LeetCode 327 区间和的个数
			
327. 区间和的个数 给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper. 区间和 S(i, j) 表示在 nums 中,位置从 i ...
 - Java实现 蓝桥杯VIP 算法训练 麦森数
			
算法训练 麦森数 时间限制:1.0s 内存限制:256.0MB 问题描述 形如2P-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2P-1不一定也是素数.到1998年底, ...
 - PAT 程序运行时间
			
要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间.这个时间单位是 clock ...