天气预报下雨几率?
这个问题我十年前研究过,也写过相关论文。不过现在看可能有些问题,请见谅 首先统计方法一定要正确。这是非常重要的一个问题。很多气象爱好者、乃至一些专业工作者在统计降水概率的时候犯的一个最基本的错误是,将“某地今天是否下雨”看作是一个随机事件。也就是把“晴”和“雨”看作是两个互斥的事件。事实上,一个地理区域在某段时间内是以一种状态为主的连续变化过程。比如“今天上海是否下雨”不是两个互斥事件组成的,而是以下雨概率为横轴,以时间为纵轴构成的一个连续的变化曲线。
如图1中,t=0表示时间0时,上海处于“非降雨区”;随着时间的增加,上海进入了“弱降雨区”(40%>P>20%);继续流逝的时间后,上海进入了“强降雨区”(P>60%);又过了一段时间,上海进入了“弱降雨区”.....如此循环往复的。如果想知道“明天上海会不会下雨”的话就需要知道现在的“降雨状态”是什么。如果是“强降雨区”那就基本可以肯定“明日降雨”;而如果在“弱降雨区”的话就还需要进一步分析。
图1 中采用的方法是计算某一时段内(本例中为10天)上海平均每天的降雨量。这种方法有一个前提假设——各天的降水量是独立同分布的。也就是说需要这10天内没有大的天气系统经过沪浙地区,否则用平均值来计算概率会出现很大误差。
当然还有其他的计算方法,比如用最大累积雨量来计算,或者对一次强降水过程中(如台风到来期间)的日降雨量求取平均值等等。这些都是计算概率常用的方法,各有优缺点。需要根据数据的情况具体选择合适的方法。 确定如何计算概率之后,接下来就需要统计资料了。对于长时间观测而言,这些资料很容易得到。但是对于短期的预测来说,资料的获取就比较困难了。如果正好你在的地方有观测站且刚好开始观测了相当一段时间(通常大于30年),那么可以直接使用本站的历史资料来估计未来情况。但如果站点资料不能满足要求,则可以借助其他的方法。
我个人比较喜欢用的是“合成暴雨法”(简称SBMA),这个方法是模拟产生大量符合某个概率模型的样本,然后将这些样本中的大量暴雨过程进行合成,最后利用合成的暴雨过程来估计目标概率。因为每次合成的过程中都包含了大量的随机数,因此这种方法具有很高的可靠性。 为了写出完整的代码实现这个过程,我建立了一个小的开源项目,欢迎你的关注与参与!