之前常用的sunsetbot看火烧云预测最近G了,前景自此变得不明朗,而我真正想要的其实很简单:一个打开就能用的网页,告诉我今天和明后天,全国哪些城市可能烧起来。现在AI那么发达,我就想尝试自己写一个,于是就诞生了本项目。

很多人觉得晚霞美不美纯看运气,其实它是相当"讲道理"的自然现象。
太阳落到地平线附近时,阳光要斜穿过厚得多的大气层,短波的蓝紫光被瑞利散射得差不多,剩下红橙光抵达地面。但这时候如果天上一片云都没有,红光没有"屏幕"可打,天空只是单调的渐变;云太厚太满,光又透不过来。真正出彩的条件是:有云,但必须是能被照亮的那部分云。
这条物理链是可以拆成变量去算的:云有多少、云在哪个高度、太阳方向的地平线有没有被堵、空气够不够通透、有没有降水。既然能拆,就能建模。
本项目全程使用WorkBuddy + Hy4 preview + Step-5-Preview 生成。
数据来源:

评分因子:

方案对比:

实测误差:

这里必须诚实:这个项目至今没有做过一次实测,没有把历史预报和实况对照过,所以我给不出"准确率 87%"这种数字。硬编一个是骗人。
但我做了一件能部分回答这件事的事——拿和风的真实观测,去对同一时刻的模式预报,25 个城市,把误差量化出来。
把这些偏差代入评分函数,得到的分数偏差是:平均 10.1 分,最大 46 分。乌鲁木齐那一晚,实况能见度 28.2 km 而模式报 3.5 km,同一份预报算出 99 分和 53 分之差。
等级每 15 分一档,10 分的平均偏差意味着——实际经常差出一个等级。
而这个误差的绝大部分来自数据源(25 km 格距看不清局地云团边界),不是评分结构。这也解释了行业里一个有点讽刺的现象:
厂商普遍宣称 80–87% 的准确率,但有摄影师做了长期逐日对照实测,Skyfire 是"略高于 50%",SunsetWx 是"约 50%"。
所以这个赛道的真实水平大概在 50–70%,而不是宣传页上的 87%。本项目我估计落在 50–65% 区间——这是推断,得等实测数据出来才算数。
优点
- 算法透明。每个因子多少分、被扣了多少,页面上都列出来,不像商业产品只给个数字。
- 光路建模。多数产品要么没有,要么不公开做法,而这恰恰是火烧云成立的第一要素——太阳方向被堵死,本地云再好也白搭。
- 降水的处理更细。之前只看平均降水量,一场阵雨被平均后几乎不触发,会出现"明明在下雨却给高分"。现在按天气代码、累计量、概率峰值三重判定。
- 接了真实地面观测。这是不少商业产品没做的。"今天"的准确度因此明显提升。
- 完全自建、零调用成本,使用的开源数据。
缺点
- 数据源分辨率最低。25 km 对 4 km,这是物理层面的差距,再好的评分函数也补不回来。
- 零校准。权重目前是拍脑袋定的,没有观测数据验证过——这是最大的短板。
- 没有雷达和卫星云图,局地短时阵雨抓不到,只能靠地面观测站事后修正。
- 没有云底高度和光学厚度,只能用云量加降水代码间接推断"云厚不厚"。
- 只有中国 46 城,也没有地形和视野数据——你家西边那栋楼挡不挡光,模型不知道。
眼下最要紧的一件,是把实测建起来。每次预告要对比实际情况,长期观察校正数据。—把主观权重换成数据拟合出来的。业内这个做法叫 MOS(Model Output Statistics)。
最后一句实话:做了这个项目之后我明白了一件事——预报再准,也不如抬头看看窗外。火烧云这东西,有时候它来了,你正好在,就够了。
评论(0)