首尔/釜山机场报文优先使用 AMOS(更新更快)
- analysis_service.py:AMOS 数据覆盖 airport_current 的 raw_metar、wind、pressure - source_label 设为 "AMOS"(区别于 aviationweather.gov METAR) - stale_for_today 强制 false(AMOS 数据本身证明了时效性) - observation_time 优先使用 AMOS 时间戳 - AI 读取的 city_snapshot.current.raw_metar 来自 AMOS 跑道传感器 优先级:AMOS raw_metar > aviationweather.gov METAR(首尔/釜山) Reason: AMOS 直连韩国机场系统,延迟更低,更新更快
This commit is contained in:
@@ -1819,6 +1819,10 @@ def _analyze(
|
||||
)
|
||||
except Exception:
|
||||
obs_time_str = str(obs_t)[:16]
|
||||
if not obs_time_str and current_source == "amos":
|
||||
amos_obs_time = amos_data.get("observation_time")
|
||||
if amos_obs_time:
|
||||
obs_time_str = _format_observation_time_local(amos_obs_time, int(utc_offset or 0))
|
||||
if not obs_time_str and current_source == "nmc":
|
||||
nmc_fallback = _fetch_nmc_current_fallback(city, use_fahrenheit=is_f)
|
||||
obs_time_str = _format_observation_time_local(
|
||||
@@ -2458,15 +2462,15 @@ def _analyze(
|
||||
"report_time": metar.get("report_time") if metar else None,
|
||||
"receipt_time": metar.get("receipt_time") if metar else None,
|
||||
"obs_time_epoch": metar.get("obs_time_epoch") if metar else None,
|
||||
"wind_speed_kt": _sf(live_mc.get("wind_speed_kt")),
|
||||
"wind_speed_kt": _sf(amos_data.get("wind_kt")) if current_source == "amos" else _sf(live_mc.get("wind_speed_kt")),
|
||||
"wind_dir": _sf(live_mc.get("wind_dir")),
|
||||
"humidity": _sf(live_mc.get("humidity")),
|
||||
"cloud_desc": metar.get("cloud_desc") if metar else None,
|
||||
"visibility_mi": _sf(live_mc.get("visibility_mi")),
|
||||
"wx_desc": live_mc.get("wx_desc"),
|
||||
"raw_metar": live_mc.get("raw_metar"),
|
||||
"source_label": "METAR",
|
||||
"stale_for_today": bool(metar) and not metar_current_is_today,
|
||||
"raw_metar": amos_data.get("raw_metar") if current_source == "amos" else live_mc.get("raw_metar"),
|
||||
"source_label": "AMOS" if current_source == "amos" else "METAR",
|
||||
"stale_for_today": False if current_source == "amos" else (bool(metar) and not metar_current_is_today),
|
||||
"last_observation_local_date": metar.get("observation_local_date") if metar else None,
|
||||
"current_local_date": local_date_str,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user