简化机场温度急变消息:只报当前温度和 DEB 预测最高温

去掉温度变化幅度、风、emoji 等冗余信息,消息只保留两行核心数据。

Constraint: 触发规则不变(0.5°C/10min 阈值、20min 窗口、3 样本最低)
Scope-risk: 极低,仅改消息格式
Tested: ruff check 通过
@
This commit is contained in:
2569718930@qq.com
2026-05-12 17:53:22 +08:00
parent 12b0c76caf
commit 2061dfe8b5
+4 -15
View File
@@ -756,27 +756,16 @@ def _build_airport_rapid_change_message(
rule: Dict[str, Any],
deb_pred: Optional[float],
) -> str:
city_display = city.title()
airport_label = {"seoul": "首尔/仁川", "busan": "釜山/金海", "tokyo": "东京/羽田", "ankara": "安卡拉/Esenboğa"}.get(city, city_display)
emoji = "🔥" if rule.get("direction") == "up" else "❄️"
first = rule.get("first_temp", 0)
airport_label = {"seoul": "首尔/仁川", "busan": "釜山/金海", "tokyo": "东京/羽田", "ankara": "安卡拉/Esenboğa"}.get(city, city.title())
last = rule.get("last_temp", 0)
delta = rule.get("delta_temp", 0)
delta_min = rule.get("delta_min", 0)
sign = "+" if delta >= 0 else ""
lines = [
f"🚨 {airport_label} 温度急变 {emoji}",
f"🚨 {airport_label} 温度急变",
"",
f"跑道温度 {first:.1f}°C → {last:.1f}°C ({sign}{delta:.1f}°C / {delta_min:.0f}min)",
f"当前 {last:.1f}°C",
]
wind_kt = rule.get("wind_kt")
if wind_kt is not None:
lines.append(f"{wind_kt:.0f}kt")
if deb_pred is not None:
gap = last - deb_pred
gap_sign = "+" if gap >= 0 else ""
lines.append(f"DEB 预测今日最高 {deb_pred:.1f}°C | 差距 {gap_sign}{gap:.1f}°C")
lines.append(f"DEB 预测最高 {deb_pred:.1f}°C")
return "\n".join(lines)