Files
PolyWeather/docs/AIRPORT_REALTIME_SOURCES.md
T
2569718930@qq.com 8dd9aa59b3 接入新加坡 MSS 1分钟实时温度及 MGM/JMA/FMI/KNMI 高频源到 airport_primary
- 新建 singapore_mss_sources.py:拉取 data.gov.sg 1分钟干球温度(S24 樟宜站)
- country_networks.py:_airport_primary_from_raw 新增 MGM/JMA/FMI/KNMI/SG_MSS 分支
- weather_sources.py:注入 jma_current/fmi_current/knmi_current/singapore_mss_current
- 前端 MonitorPanel:resolveSourceLabel 根据 airport_primary.source_code 显示数据源标签
- 文档:更新 AIRPORT_REALTIME_SOURCES.md 新增新加坡

Tested: ruff check . ✓  npx tsc --noEmit ✓
2026-05-14 17:12:11 +08:00

5.0 KiB
Raw Blame History

机场高频实时数据源

已接入城市

城市 机场 ICAO/站点 数据源 频率 类型 费用
首尔 仁川国际 RKSI AMOS (global.amo.go.kr) 1 分钟 跑道对温度(2对) 免费
釜山 金海国际 RKPK AMOS (global.amo.go.kr) 1 分钟 跑道对温度(1对) 免费
东京 羽田 RJTT JMA AMeDAS (jma.go.jp) 10 分钟 机场站点实时温度 免费
安卡拉 Esenboğa 17128 MGM (servis.mgm.gov.tr) 5-15 分钟 机场站点实时温度 免费
伊斯坦布尔 伊斯坦布尔机场 17058 MGM (servis.mgm.gov.tr) 5-15 分钟 机场站点实时温度 免费
赫尔辛基 Vantaa EFHK FMI (opendata.fmi.fi) 10 分钟 机场站点实时温度 免费
阿姆斯特丹 Schiphol EHAM KNMI (dataplatform.knmi.nl) 10 分钟 机场站点实时温度 免费(需注册)
巴黎 Le Bourget LFPB AROME HD (api.open-meteo.com) 15 分钟 模型预报(非实测) 免费
新加坡 Changi WSSS Singapore MSS (api.data.gov.sg) 1 分钟 机场站点实时温度 (S24 站) 免费
纽约 LaGuardia KLGA NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
洛杉矶 LAX KLAX NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
芝加哥 O'Hare KORD NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
丹佛 Buckley KBKF NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
亚特兰大 Hartsfield KATL NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
迈阿密 MIA KMIA NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
旧金山 SFO KSFO NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
休斯顿 Hobby KHOU NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
达拉斯 Love Field KDAL NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
奥斯汀 Bergstrom KAUS NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费
西雅图 SeaTac KSEA NOAA MADIS HFMETAR 5 分钟 机场站点实时温度 免费

Singapore MSS: 新加坡气象局(MSS)通过 data.gov.sg 开放数据平台提供全国 15 个站点 的干球温度(1 分钟均值),更新频率 ~1 分钟。选取 S24 Upper Changi Road North 站 作为樟宜机场 (WSSS) 的实时温度锚点。数据公开免费,无需 API 密钥。 后端通过 singapore_mss_sources.py 拉取并注入 airport_primary

NOAA MADIS HFMETAR: 美国 11 个城市的机场高频实时数据通过 NOAA MADIS 公共档案获取。 数据源为 NetCDF 格式(madis-data.ncep.noaa.gov/madisPublic1/data/LDAD/hfmetar/), 每 5 分钟全量更新一次,温度保留一位小数。匿名公开访问,无需 API 密钥。 后端通过 weather_sources.py 拉取并注入 airport_primary,前端市场监控通过 resolveMonitorTemperature 优先读取 airport_primary.temp 获得小数精度温度。

推送机制

  • 每城按原生频率独立推送,不捆绑
  • 首尔/釜山 60s,其余 600s
  • 循环轮询 60s 以匹配最快频率
  • 仅当当前温度距 DEB 预测最高 ≤3°C 时推送
  • 确认过峰值后自动停止

前端市场监控 freshness 契约

后端城市详情接口会在 current.freshness / airport_current.freshness 返回源感知更新时间信息,前端市场监控不再用统一的 obs_age_min 判断所有城市。

关键字段:

{
  "source_code": "amos",
  "source_label": "AMOS",
  "observed_at": "2026-05-14T11:59:10+00:00",
  "observed_at_local": "20:59",
  "native_update_interval_sec": 60,
  "expected_next_update_at": "2026-05-14T12:00:10+00:00",
  "freshness_status": "fresh",
  "freshness_reason": "within_native_fresh_window",
  "age_sec": 50
}

前端刷新规则:

  • 首次进入市场监控:强制刷新全部城市,绕过 30 分钟前端缓存。
  • 定时轮询:仍以 60s tick 检查,但只刷新已到 expected_next_update_atdelayedstale 或缺失的城市。
  • BFF 代理:force_refresh=true 时使用 no-store,避免 Next fetch revalidate 缓存吞掉强刷。
  • 展示:卡片 tooltip 显示源端名称、原生更新间隔和当前 freshness 状态。

消息模板

Seoul / Incheon 16:03

15L/33R 14.6°C
15R/33L 15.2°C
今日DEB预报最高:18.2°C
今日实测最高:16.5°C15:30

环境变量

变量 说明 默认值
TELEGRAM_AIRPORT_PUSH_ENABLED 启用机场推送 true
TELEGRAM_AIRPORT_PUSH_INTERVAL_SEC 循环轮询间隔 60
KNMI_API_KEY KNMI API 密钥(阿姆斯特丹必填)

未接入城市

城市 原因
马德里/Barajas AEMET 注册页面失效
伦敦/Heathrow Met Office 仅 1 小时更新
慕尼黑 DWD 延迟 ~1 小时
米兰/华沙/莫斯科 无已知实时源