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 ...
随机推荐
- Java IO(十一) DataInputStream 和 DataOutputStream
Java IO(十一) DataInputStream 和 DataOutputStream 一.介绍 DataInputStream 和 DataOutputStream 是数据字节流,分别继承自 ...
- 缓冲区(Buffer)的数据存取
缓冲区(Buffer) 1. 缓冲区(Buffer):一个用于特定基本数据类 型的容器. 由 java.nio 包定义的,所有缓冲区 都是 Buffer 抽象类的子类.2. Java NIO 中的 B ...
- C实现进程间通信(管道; 共享内存,信号量)
最近学习了操作系统的并发:以下是关于进程间实现并发,通信的两个方法. 例子: 求100000个浮点数的和.要求: (1)随机生成100000个浮点数(父进程). (2)然后创建4个后代进程,分别求25 ...
- parrot os 创建swap分区&swapon failed invalid argument解决
parrot os(不仅仅是debian系统),分区提示,查看系统格式为btrfs,需要注意的是btrfs无法添加swap分区,但是可以在5.0内核以上添加 以下命令,完成创建8g的swap分区 to ...
- 关于vue的多页面标签功能,对于嵌套router-view缓存的最终无奈解决方法
最近写我自己的后台开发框架,要弄一个多页面标签功能,之前有试过vue-element-admin的多页面,以为很完美,就按它的思路重新写了一个,但发现还是有问题的. vue-element-admin ...
- k-means聚类分析 python 代码实现(不使用现成聚类库)
一.实验目标 1.使用 K-means 模型进行聚类,尝试使用不同的类别个数 K,并分析聚类结果. 2.按照 8:2 的比例随机将数据划分为训练集和测试集,至少尝试 3 个不同的 K 值,并画出不 ...
- Java实现 LeetCode 52 N皇后 II
52. N皇后 II n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回 n 皇后不同的解决方案 ...
- java代码(3)----guava复写Object常用方法
guava复写Object常用方法 Guava是一个Google的基于java1.6的类库集合的扩展项目,这个库提供用于集合,缓存,支持原语,并发性,字符串处理,I/O和验证的实用方法, 这些高质量的 ...
- 无监督LDA、PCA、k-means三种方法之间的的联系及推导
\(LDA\)是一种比较常见的有监督分类方法,常用于降维和分类任务中:而\(PCA\)是一种无监督降维技术:\(k\)-means则是一种在聚类任务中应用非常广泛的数据预处理方法. 本文的 ...
- js原型链、继承、this指向等老生常谈却依然不熟的知识点——记录解析
开始记录学习过程—— 很详细的解析过程——https://juejin.im/post/5c72a1766fb9a049ea3993e6 借鉴阅读——https://github.com/KieSun ...