2569718930@qq.com
6c4f43fba6
Aurora→Denver 重命名 + 接入 MADIS HFMETAR 5 分钟数据源
2026-05-14 01:09:17 +08:00
2569718930@qq.com
d97bb76480
移除 city_daily_max 表及 upsert 逻辑,日最高已改用 intraday_path_snapshots_store
2026-05-13 21:14:28 +08:00
2569718930@qq.com
cac84dcc0c
修复今日最高:新增 city_daily_max 表,所有数据源写入日最高
...
- DB: city_daily_max(icao,max_temp,obs_date,max_time) upsert
- AMOS/JMA/KNMI/FMI/HKO/METAR集群/CWA 采集后均写入
- Rust: 读 city_daily_max 获取准确日最高 + 时间
- 卡片恢复 High 行,显示最高温 + 达成时间
- new_high 提醒也基于真实日最高重新生效
Tested: cargo build + ruff check 均通过
2026-05-13 20:50:46 +08:00
2569718930@qq.com
067ee63ba4
首尔/釜山跑道数据:Python 存 RKSI_RWY_0/1,Rust 查询展示
...
- weather_sources: AMOS 采集时每条跑道单独写 airport_obs_log
- Rust: 按 RKSI_RWY_0、RKSI_RWY_1 等 icao 查询跑道温度
- 跑道标签 18L/36R、18R/36L 写死在 config 中
2026-05-13 20:39:15 +08:00
2569718930@qq.com
041c9fb4fa
撤回 METAR 兜底,改走 CWA 10min 实时数据(需配 API key)
2026-05-13 20:20:16 +08:00
2569718930@qq.com
1d3ccbb7cf
台北走 METAR 集群兜底:ICAO 从 CWA 站号 466920 改为 RCSS
...
- weather_sources: 放开 cwa settlement_source 的 METAR 拦截
- Rust: ICAO 改用 RCSS,匹配 METAR 集群数据
- 原因: CWA_OPEN_DATA_AUTH 未配置,CWA 接口静默失败致 airport_obs_log 无数据
2026-05-13 20:17:12 +08:00
2569718930@qq.com
30b289ec8f
修复机场高频推送:东京ICAO不匹配、釜山缺趋势数据、港/流浮频率及obs_time去重
...
- 东京 HIGH_FREQ_AIRPORT_ICAO 从 RJTT 改为 JMA 站号 44166
- 釜山 METAR 集群数据写入 airport_obs_log 供趋势检测
- 香港/流浮山推送间隔从 60s 改为 600s(匹配实际 10min 更新)
- 新增 obs_time 去重:同一观测数据不重复推送
Constraint: JMA AMeDAS 使用站号而非 ICAO 作为站点标识
Tested: ruff check 通过
2026-05-13 13:45:00 +08:00
2569718930@qq.com
7372b7a73f
接入台北松山 RCSS CWA 10分钟实时温度;HKO 显示结算温度
...
台北通过现有 CWA 开放数据 API(站号 466920)接入高频推送。
香港/流浮山消息新增"结算温度"行,显示向下取整后的结算值。
Tested: pytest 176 passed, ruff check 通过
2026-05-13 00:47:58 +08:00
2569718930@qq.com
fe9bf61ad6
接入香港天文台 HKO + 流浮山 LFS 1分钟实时温度
...
HKO 公共天气 API 免费无注册,提供 1 分钟温度 CSV。
两个站点加入高频推送,与首尔/釜山同级。
Station: HK Observatory (HKO) 27.0°C, Lau Fau Shan (LFS) 25.9°C
Interval: 60s
Tested: pytest 176 passed, HKO API 实测通过
2026-05-13 00:33:56 +08:00
2569718930@qq.com
5d630bb910
接入 KNMI 阿姆斯特丹史基浦机场 10 分钟数据源
...
通过 KNMI Open Data API 获取 Schiphol 机场 10 分钟观测数据(NetCDF 格式)。
需设置 KNMI_API_KEY 环境变量。Docker 镜像新增 libhdf5-dev/netCDF4 依赖。
Constraint: KNMI API key 为 JWT 格式,通过 Authorization header 传递
Scope-risk: 中高,新增系统依赖 libhdf5-dev + netCDF4
Tested: pytest 176 passed, KNMI API 连通性验证通过
2026-05-12 20:10:06 +08:00
2569718930@qq.com
a32a49f3c7
接入 FMI 赫尔辛基-万塔机场 10 分钟实时数据源
...
新增 fmi_sources.py,通过 FMI Open Data WFS API 获取 Helsinki-Vantaa
机场观测数据(FMISID 100968, WMO 2974)。每 10 分钟更新,参数含温度/
风速/气压。免费无需 API key。集成至高频机场推送体系。
Constraint: FMI WFS 无 rate limit,无需注册
Scope-risk: 中,新增数据源
Tested: pytest 176 passed, FMI 实测 temp=13.1°C wind=9.5kt pressure=1000.9hPa
2026-05-12 19:51:32 +08:00
2569718930@qq.com
12b0c76caf
@
...
砍掉机场快照,改为 per-city 独立告警;新增安卡拉 MGM 17128 高频监控
快照定时推送无实际价值(没变化也报),改为仅温度急变时触发告警。
各城市独立检测、独立冷却,不再捆绑推送。
同时接入安卡拉 Esenboğa 机场 MGM 站点 17128 的实时温度数据。
Constraint: 快照已运行验证格式无误,砍掉不影响现有急变告警功能
Scope-risk: 中低,仅影响高频通道逻辑,主循环不变
Tested: ruff check 通过
@
2026-05-12 17:51:40 +08:00
2569718930@qq.com
64f8ff21ec
@
...
新增机场高频推送:10分钟级温度监控 + DEB预测快报
为首尔/釜山/东京三大机场城市实现高频温度监控通道:
- 新增 airport_obs_log 表积累观测数据,支持趋势检测
- AMOS/JMA 成功后自动写入观测日志
- 新增 airport_rapid_temp_change 告警规则(20min窗口、0.5°C/10min阈值)
- 10分钟间隔高频子循环 + 30分钟机场快照(含 DEB 预测最高温)
- 最高温锁定后自动跳过,快照仅当地 08:00-20:00 发送
Tested: ruff check 通过
@
2026-05-12 17:04:17 +08:00
AmandaloveYang
e344fae75f
首尔/釜山 AMOS 数据缓存 TTL 从 300s 降至 60s,对齐官网 1 分钟刷新频率
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-11 17:28:53 +08:00
AmandaloveYang
55bb06d213
移除 Masroor Air Base 机场城市(数据源、别名、时区、前端面板、文档、测试)
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-11 16:39:04 +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
5512ebf133
修复 AMOS 数据不显示:移出 include_nearby 条件判断
...
根因:_attach_korean_amos_data 在 include_nearby 块内
面板模式(depth=panel)时 include_nearby=False
→ AMOS 数据从不获取 → detail.amos 始终为空 → 跑道面板不显示
修复:AMOS 调用移到 include_nearby 之外
AMOS 是主观测源,不是 nearby 站网数据
无论 depth 模式都应获取
2026-05-10 19:10:38 +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
27010d5fb3
移除 KMA 数据源:已被更精确的 AMOS 跑道级传感器取代
...
- weather_sources.py:移除 KmaStationSourceMixin 导入和继承
- 移除 _attach_korea_official_nearby() 函数
- 移除 kma_cache 初始化代码
- 首尔/釜山现在使用 AMOS 跑道传感器替代 KMA 地面站
- kma_station_sources.py 保留为参考文件
Replaced-by: AMOS (global.amo.go.kr) runway-level sensor data
2026-05-10 17:59:26 +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
2569718930@qq.com
96dfb4c5b3
This version of Antigravity is no longer supported. Please upgrade to receive the latest features.
2026-04-30 09:50:17 +08:00
2569718930@qq.com
89a71d1bc0
Add Qingdao to the tradable city network
...
Qingdao needs the same airport-settlement path as the other Wunderground-backed APAC cities, so the registry, aliases, timezone, prewarm, official links, market focus, and tests now point to ZSQD / Qingdao Jiaodong International Airport.
Constraint: User supplied Wunderground Qingdao/ZSQD settlement URL.
Rejected: Add a partial registry-only entry | it would show in APIs without frontend links, prewarm coverage, or alias support.
Confidence: high
Scope-risk: narrow
Reversibility: clean
Tested: pytest tests/test_country_networks.py tests/test_web_observability.py::test_cities_endpoint_includes_new_wunderground_cities -q
Tested: npm run build
Not-tested: Live Wunderground fetch for ZSQD in production.
2026-04-28 07:08:33 +08:00
2569718930@qq.com
9ded30b125
feat: implement AI-driven weather scan terminal with decision utilities and forecast visualization
2026-04-27 02:18:34 +08:00
2569718930@qq.com
670c0328c8
feat: add read-only Polymarket data collection layer for market discovery and price tracking
2026-04-26 12:47:24 +08:00
2569718930@qq.com
312b366a50
feat: implement PolyWeather dashboard UI with Leaflet map integration and backend data collection support
2026-04-26 10:22:11 +08:00
2569718930@qq.com
0f23d8af9d
feat: implement dashboard types, Polymarket data collection, and decision utilities for AI-driven city weather analysis
2026-04-26 09:40:02 +08:00
2569718930@qq.com
b25c9312da
feat: add multi-model Open-Meteo data collection and implement scan terminal dashboard service
2026-04-26 06:55:16 +08:00
2569718930@qq.com
3083d6b8fe
feat: implement scan terminal service with caching, background refresh, and AI-driven market analysis support
2026-04-25 04:25:17 +08:00
2569718930@qq.com
77c0597e74
feat: implement Polymarket data collection and dashboard UI for weather market analysis
2026-04-25 03:59:02 +08:00
2569718930@qq.com
0e5a1f2652
feat: implement ScanTerminalDashboard with modular components and backend integration for Polymarket data collection
2026-04-25 03:26:28 +08:00
2569718930@qq.com
62a12257f0
Upgrade V4 scan to city analysis
2026-04-25 02:19:37 +08:00
2569718930@qq.com
99ffa717ef
Use model cluster for tail no scan signals
2026-04-24 15:12:53 +08:00
2569718930@qq.com
42d4a4e198
Simplify scan opportunity list and speed quotes
2026-04-24 14:26:47 +08:00
2569718930@qq.com
c61a3f500d
feat: implement Polymarket read-only data service and add scan terminal dashboard components
2026-04-24 10:19:16 +08:00
2569718930@qq.com
79b58a8b98
Add locale controls and distribution previews to scan terminal
2026-04-24 00:34:09 +08:00
2569718930@qq.com
ddc0180ae6
Implement EMOS scan terminal with REST-only market data
2026-04-23 23:49:52 +08:00
2569718930@qq.com
e2eb5eb429
feat: implement PolymarketReadOnlyLayer for data collection and add comprehensive unit tests
2026-04-23 21:15:47 +08:00
2569718930@qq.com
ca81fda287
feat: implement analysis service, dashboard components, and data collection utilities for PolyWeather
2026-04-23 21:10:22 +08:00
2569718930@qq.com
54b326ff42
feat: implement comprehensive Polymarket weather analysis service with frontend dashboard and market scanning capabilities
2026-04-23 20:45:32 +08:00
2569718930@qq.com
94f1a64522
Use Shenzhen market for Lau Fau Shan
2026-04-23 00:31:31 +08:00
2569718930@qq.com
40564b545d
Optimize probability hub market refresh
2026-04-22 04:54:19 +08:00
2569718930@qq.com
e5facb041c
Handle range-based Polymarket temperature buckets
2026-04-22 00:38:19 +08:00
2569718930@qq.com
5a1610d428
feat: implement Polymarket WebSocket cache and add dashboard panel UI components
2026-04-22 00:09:49 +08:00
2569718930@qq.com
b5c1de1078
Add debug logging for Polymarket market scans
2026-04-21 22:40:51 +08:00
2569718930@qq.com
bb6fe21166
feat: implement read-only Polymarket data collection layer with market discovery and price fetching
2026-04-21 21:54:20 +08:00