关于评分

我们如何把云量、月光与天文黑暗压缩成一个 0–10 的数字——以及哪些因素被有意排除。

核心问题

今晚是否值得出门取决于三件事:能看到多少天空(云)、有多黑(太阳与月亮)、以及你在哪里(光污染)。评分只融合前两项。光污染决定了在你所处位置能看到什么,但本身不参与计算这个数字。

每晚三个分值

  • 总评在整个天文黑暗窗口(太阳低于地平线 18° 以上)取平均。诚实地回答“今晚整体如何”。
  • 峰值 2 小时夜间最佳的两小时窗口。当你只能短暂出门时使用。
  • 黄金时段 21–01不论天文黑暗何时开始,若你在 21:00 左右出门、01:00 左右回房,你实际能体验到的状况。

公式

评分综合了清晰度(不被云覆盖的天空比例)和黑暗度(月亮对天空的提亮程度),并加入一个柔性可见度门槛。

score      = visibility × (clearness × 0.6 + darkness × 0.4) / 10
clearness  = 100 − cloudCover%
darkness   = 100 − moonPenalty
visibility = min(1, clearness / 30)

可见度因子承认云会决定一切:若大部分天空被云覆盖,再完美的黑暗也无法得分。清晰度高于 30% 时,visibility = 1,公式回退为普通加权平均。低于 30% 时,评分线性下降至零。

月亮惩罚

月光按亮度分级处理;后半夜的窗口因月亮通常已开始下落而获得折扣。

  • 亮度低于 25%(新月或细月牙):无惩罚。
  • 亮度 25–75%(接近上下弦月):惩罚 = 亮度 × 0.5。
  • 亮度高于 75%(盈/亏凸月或满月):惩罚 = 亮度 × 1.0。
  • 若窗口起始于 00:00 至 03:00 之间,且亮度高于 50%,惩罚再乘以 0.6。

评分不包含的因素

  • 光污染(基于 VIIRS 卫星数据估算的 Bortle 等级)影响的是“今晚可见”深空清单,而非这个数字。
  • 风、湿度和降水会出现在向下滚动后的时间轴中,但不会改变评分。
  • 预报置信度。当天气模型不确定时我们不会调低评分——我们信任预报,让下一次刷新自行修正。

算例:完全阴天的夜晚

阿姆斯特丹 · 2026 年 5 月 5 日

云量(平均)
100%
月亮
Waning Gibbous · 83%
计算
moonPenalty(83, 23) = 83 × 1.0 = 83
clearness  = 100 − 100 = 0
darkness   = 100 − 83  = 17
visibility = min(1, 0 / 30) = 0
raw        = 0 × (0×0.6 + 17×0.4) / 10 = 0.0
评分
0.0
待在室内。可见度门槛把评分压到零——透过 100% 云层什么也看不见。

算例:极佳的夜晚

同地点 · 晴空、月牙

云量(平均)
8%
月亮
Waxing Crescent · 15%
计算
moonPenalty(15, 23) = 0     (< 25% bracket)
clearness  = 100 − 8   = 92
darkness   = 100 − 0   = 100
visibility = min(1, 92 / 30) = 1
raw        = 1 × (92×0.6 + 100×0.4) / 10 = 9.52
评分
9.5
放下一切,出门去。月牙、几乎晴朗的天空、完整的天文黑暗。

数据来源

  • Open-Meteo:逐小时云量、日月时刻、风、湿度。
  • VIIRS Day/Night Band:光污染,用于为“今晚可见”清单估算 Bortle 等级。

更新频率

上游预报每 30 分钟刷新。评分接口在边缘缓存 30 分钟(s-maxage=1800)。七夜预报每天更新。

返回首页
StarsOut 评分如何计算