2569718930@qq.com
|
2af1cf9cd8
|
feat: add observation collector and source gate
|
2026-06-05 14:38:58 +08:00 |
|
2569718930@qq.com
|
05010d20e2
|
feat: implement AMOS real-time weather data collection and add corresponding unit and frontend tests
|
2026-05-27 09:07:48 +08:00 |
|
2569718930@qq.com
|
bbd7c768f8
|
feat: implement live temperature threshold charting component with SSE patch support and data collection logic
|
2026-05-27 08:42:08 +08:00 |
|
2569718930@qq.com
|
3b8098051e
|
将商业核心数据源 URL 从源码迁移到环境变量,VPS .env 已补全
|
2026-05-19 15:42:03 +08:00 |
|
 AmandaloveYangandClaude Opus 4.7
|
e344fae75f
|
首尔/釜山 AMOS 数据缓存 TTL 从 300s 降至 60s,对齐官网 1 分钟刷新频率
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-11 17:28:53 +08:00 |
|
2569718930@qq.com
|
b26ec05b81
|
AMOS 跑道温度范围:城市决策卡头部展示"跑道实况 14.6~15.2℃"
后端:
- amos_station_sources.py 新增 runway_temp_range (跑道温度 min,max)
- 取所有有效跑道温度的最小值和最大值
前端:
- CityCardHeader 新增 observedLabel prop(标签自定义)
- 有 AMOS 数据时显示"跑道实况"替代"当前温度"
- 温度展示格式:14.6~15.2℃(跑道温度范围)
- 无 AMOS 时回退原有 METAR 温度显示
|
2026-05-10 20:19:48 +08:00 |
|
2569718930@qq.com
|
8075fb66b7
|
AMOS 增加 info 级别日志追踪数据流
- weather_sources.py: _attach_korean_amos_data 记录 fetch 开始、成功/失败、温度/跑道数据
- amos_station_sources.py: _amos_get_page 记录页面匹配/不匹配
- amos_station_sources.py: fetch_amos_official_current 记录 HTML 获取和解析
- analysis_service.py: _analyze 记录 AMOS 数据是否到达分析层
重启后端后在日志中搜索 "AMOS" 可追踪完整数据流:
AMOS: fetching for city=seoul
AMOS page matched icao=RKSI length=...
AMOS fetch_amos_official_current: got HTML for RKSI...
AMOS: got data for city=seoul temp_c=... source=...
AMOS _analyze: found amos data for city=seoul temp_c=...
|
2026-05-10 19:46:26 +08:00 |
|
2569718930@qq.com
|
23e5d10f65
|
Fix Korean AMOS runway parsing
|
2026-05-10 19:34:18 +08:00 |
|
2569718930@qq.com
|
f4f613ad02
|
Fix AMOS runway observations
|
2026-05-10 19:20:52 +08:00 |
|
2569718930@qq.com
|
e1d21c6ce3
|
简化 AMOS 获取:仅支持 RKSI(仁川),Busan 回退标准 METAR
原因:AMOS 页面默认始终显示仁川 RKSI,机场切换用 JS 实现
无法通过 URL 参数或 POST form data 切换到其他机场
尝试了 GET ?icao=、?stn=、?airport= 和 POST form data 均无效
变更:
- _amos_get_page 简化为仅处理 RKSI
- 非 RKSI 直接返回 None,走标准 METAR 回退链
- 移除无效的 AMOS_STATION_IDS 和 POST 策略代码
- Busan 通过 aviationweather.gov METAR 正常获取温度/风/气压
- 跑道面板仅在 AMOS 数据存在时显示(即仅 Seoul/仁川)
Known: Busan 无跑道级数据,但标准 METAR 仍然可用
|
2026-05-10 18:53:09 +08:00 |
|
2569718930@qq.com
|
e23a90a961
|
修复釜山 AMOS 数据获取 + 跑道面板容错
AMOS 页面用 JS 切换机场,GET 参数无效。新增策略:
- 先 GET 建立 session,再 POST form data 切换机场
- 尝试多种 form data 组合(icao/stn/airport/code)
- 回退到 GET 参数尝试
跑道面板容错:
- 无温度数据时仍展示跑道风/能见度/RVR
- 温度缺失显示 "--" 而非隐藏整行
- analysis_service 输出条件放宽:有 temp_c 或 runway_obs 即可
Tested: python -m ruff check ., npx tsc --noEmit
|
2026-05-10 18:39:37 +08:00 |
|
2569718930@qq.com
|
bf5e92e656
|
AMOS 温度处理:METAR 优先,跑道中位数兜底
温度优先级:
1. METAR 温度(官方机场传感器,权威值)
2. 跑道传感器中位数(fallback;不同跑道传感器因位置/海拔可能差 0.5-1°C)
- 新增 temp_source 字段标注来源("metar" / "runway_median")
- 新增 runway_temps 数组保留每条跑道的原始 (温度, 露点)
- 回退逻辑用中位数而非第一个值(跑道数据可能是乱序的)
- 温度合理性检查:只取 -50°C ~ 60°C 范围内的值
Tested: python -m ruff check ., npx tsc --noEmit
|
2026-05-10 18:07:33 +08:00 |
|
2569718930@qq.com
|
058ab7a619
|
新增 AMOS 跑道级实时气象数据源(韩国仁川/釜山)
- src/data_collection/amos_station_sources.py:新增 AmosStationSourceMixin
- 从 global.amo.go.kr 爬取跑道级观测:温度/露点/气压/风向风速/能见度/RVR/云层
- 解析 METAR + TAF 报文,提取温/湿/压/风数值
- 解析跑道级表格数据(每跑道独立风分量、侧风、视程)
- 覆盖首尔/仁川 (RKSI) 和釜山/金海 (RKPK)
- weather_sources.py:集成 AmosStationSourceMixin
- fetch_all_sources 中为 seoul/busan 自动追加 AMOS 数据
- 结果存入 results["amos"],包含原始 METAR/TAF 和解析后的跑道数据
Tested: python -m ruff check ., npx tsc --noEmit
|
2026-05-10 17:55:39 +08:00 |
|