面向全行业开源共享程序库 或成预报...
本期观点:
作为我国天气预报研究型业务的一项核心内容,预报检验不患“难”而患“杂”,必须克服效率难题才能得到真正开展。
提高效率,第一要义就是“不要重复造轮子”。而面向全行业开源共享的全流程检验程序库或许将成为那个“破壁者”。
说到天气预报,最先会想到什么?“早上听了预报,带了一天伞却没下一滴雨”的调侃?还是 “蓝天白云晴空万里突然暴风雨” 的无奈?
其实,认为天气预报该百分百准确,是对现代科学的“蜜汁自信”。毕竟,由于大气系统的不确定性,天气预报不可能百分百准确已是不争的事实。同时,因为“选择性记忆”的存在,人脑对“不满”的记忆也往往更加深刻。
事实上,近年来,我国的天气预报准确率已经有快速提升,晴雨预报准确率高达90%,台风路径预报误差小于70公里。无论是普通民众、专业用户还是预报员,对预报的感受绝对比十年前准确得多。
其实说到准确率的问题,首先要明确一个关键词——检验标准。譬如对“暴雨”的定义,国标规定是24小时降雨量为50毫米至99.9毫米的降雨,而公众往往认为是“下得猛烈”的急雨,这就造成了理解上的偏差。作为衡量预报是否准确的一把标尺,客观的检验结果,有助于增进我们对天气预报的理解。随着中国气象局研究型业务的推进,满足各方面需求的“全流程检验”应运而生。全流程检验的服务对象可以涵盖从预报员、数值模式研发人员、数值模式后处理订正算法研发人员,到各级气象部门或公司内部负责本部门检验系统研发的人员。
除了熟知的准确率和TS评分,检验到底还能做些什么呢?目前检验工具主要有三类——
用眼睛看。就是把各种预报和实况放在一起显示,眼睛看的同时,大脑里进行着可以意会也可以言传但无法量化的检验操作。优点:检验全面充分,有物理意义;缺点:所需时间太久,毕竟如果你能持续10年认真地做好这项检验工作,基本就能达到首席预报员的水平了。此外,这种方法也没法定量。
上网站查。气象部门基本都有自己的检验平台,把各类预报的检验结果都算好,在网站上展示。用户可以很方便地找到检验评分的结果。优点在于1分钟就能查看到定量结果。缺点是只能看现成的检验指标,想看点定制化的,就要系统升级后再说了。此外,这些检验指标虽然是客观化的表达,但是物理意义不够明晰,不能告诉预报员怎么改进预报。
编程计算。如果你需要一些网站所没有的定量检验信息,那就只能自己编程了。优点是想要啥都能编出来;缺点是检验程序可没想像中那么好编,没个百十行代码,根本做不出一项检验。
面向研究型业务,检验需要率先满足定量的、不按固定套路的变化需求。上述三种方式中基本只有第三种可以满足。
但动辄百行的代码让很多人望而却步,更要命的是稍微切换一下检验内容或思路,以前写的检验代码没法重复使用,基本又得重写。
因为编码的时间成本问题,实际上即使是有很强编程能力的研发人员也通常不会经常变换检验方式方法。一段检验代码用到底,检验的广度和深度受到极大限制。可见,问题的焦点就到了如何提高检验工作的效率上来了。
提高效率,第一个要点就是“不要重复造轮子”。因此,最好的方法就是资源贡献。目前,我们正在努力把造好的轮子全都开源共享给所有同行。当然,一个轮子是不够的,每个人需要用到的轮子是不一样的,为此我们要提供一套大家都用到的各种轮子的全集。我们的预期是将整个行业所有预报制作流程中用到的检验相关的算法和功能集成为一个开源程序库,即全流程检验程序库(简称Meteva)。
Meteva是面向气象预报产品及中间产品进行全面检验评估所需要用到函数和功能的集成。它是国内第一款专门用于气象预报检验的Python程序库,也是一款开源程序。数值模式和客观算法、精细化网格预报、各种应用预报产品等所需的检验算法,都将并入全流程检验。检验作为核心模块,将在整体天气预报链路中发挥重要作用。
目前,该程序提供可供复用的函数超过200个,集成了开展检验所需的基础函数(包括数据的读写、插值、累加、平均、选取、分组等)、检验算法(包括各类二分类、多分类、连续型变量、概率预报和集合预报的检验等)和检验图形产品(包括空间对比图、时间序列对比图、误差序列分析图、误差空间分布图等)。
未来,我们将对Meteva进行持续更新扩展。它会是预报检验的“破壁者”吗?这很令人期待。
(作者分别为国家气象中心天气预报技术研发室高级工程师、国家气象中心天气预报技术研发室正研级高级工程师 )