2569718930@qq.com
|
9b9f548de9
|
从系统彻底移除 Lagos 城市
该城市已不再需要,从城市注册表、时区映射、缓存巡检脚本、测试
中全部清理。52 城市 → 51 城市。
Tested: pytest test_country_networks.py (19/19), ruff check
|
2026-05-21 14:30:18 +08:00 |
|
2569718930@qq.com
|
8ba9567f64
|
移除深圳宝安机场跑道数据采集,深圳市场结算使用流浮山 HKO 数据
|
2026-05-20 19:38:07 +08:00 |
|
2569718930@qq.com
|
10a0788398
|
修复 AMSC 风向取第一条跑道可能为空的问题
|
2026-05-20 18:35:35 +08:00 |
|
2569718930@qq.com
|
9b2ac614cb
|
重构跑道观测系统:全跑道展示、结算跑道标注、热力模型、风场分析
|
2026-05-20 18:16:27 +08:00 |
|
2569718930@qq.com
|
a6e7d6682d
|
移除俄罗斯 pogodaiklimat 数据源:周边观测站不需要
|
2026-05-19 16:57:00 +08:00 |
|
2569718930@qq.com
|
3ca5b71299
|
移除 NMC(中国国家气象中心)数据源:无实际使用价值
|
2026-05-19 16:20:48 +08:00 |
|
2569718930@qq.com
|
6b741cc1ec
|
修复 Russia 数据源 f-string 嵌套引号语法错误
|
2026-05-19 15:44:52 +08:00 |
|
2569718930@qq.com
|
3b8098051e
|
将商业核心数据源 URL 从源码迁移到环境变量,VPS .env 已补全
|
2026-05-19 15:42:03 +08:00 |
|
2569718930@qq.com
|
7e0d955d22
|
修复语法错误:多余括号
|
2026-05-19 15:19:32 +08:00 |
|
2569718930@qq.com
|
4c6a93498c
|
移除源码中硬编码的 API token:NOAA MesoWest 密钥和 CWA 占位符
|
2026-05-19 15:18:49 +08:00 |
|
2569718930@qq.com
|
b93a75516d
|
移除未使用的 Groq 和 Meteoblue 服务代码及配置
|
2026-05-19 00:05:07 +08:00 |
|
2569718930@qq.com
|
1c4287380e
|
修复 KNMI 维度名称为字符串类型的兼容性问题
|
2026-05-18 18:30:12 +08:00 |
|
2569718930@qq.com
|
8c640b8616
|
适配 KNMI netCDF 新数据布局:(station,time) 替代 (time,station)
|
2026-05-18 18:28:18 +08:00 |
|
2569718930@qq.com
|
8a5e8957c5
|
适配 KNMI station ID 格式变更:3位码→5位WMO码,修复前导零丢失
|
2026-05-18 18:23:57 +08:00 |
|
2569718930@qq.com
|
06ac6bab32
|
修复 KNMI S3 下载被 Auth header 污染导致 netCDF 解析失败
|
2026-05-18 18:19:05 +08:00 |
|
2569718930@qq.com
|
abdce3cd3b
|
适配 NOAA MADIS HFMETAR netCDF 新格式:stationId 替代 icaoId,开尔文转摄氏度,气压 Pa 转 hPa
|
2026-05-18 17:48:56 +08:00 |
|
2569718930@qq.com
|
c6321253fe
|
修复 MADIS HFMETAR 目录路径:NOAA 已将文件迁移到 netCDF 子目录
|
2026-05-18 17:33:35 +08:00 |
|
2569718930@qq.com
|
4a8eeaae5e
|
修复 KNMI API key 未传递到 HTTP 请求的 bug
|
2026-05-18 17:28:56 +08:00 |
|
2569718930@qq.com
|
fd59cd018d
|
Harden Open-Meteo rate limiting
|
2026-05-18 00:13:51 +08:00 |
|
2569718930@qq.com
|
22e2409e13
|
修复 Open-Meteo 冷却期无限循环导致多模型数据缺失
- fetch_all_sources 新增 om_from_cache_only 模式:force_refresh_observations_only
时直接从内存缓存取 OM 数据,不发起 HTTP 请求。缓存未命中则跳过,
避免机场推送 60s 周期持续触发 429 限流
- nws_open_meteo_sources 三类 fetch 函数冷却期加磁盘缓存兜底:
内存未命中时 force-reload SQLite 磁盘缓存再查一次
- 预热停止后冷却期自然过期(900s),下一次正常请求会填充缓存
|
2026-05-17 22:31:10 +08:00 |
|
2569718930@qq.com
|
a83200d505
|
Fix Ankara decision chart model coverage
|
2026-05-17 19:12:28 +08:00 |
|
2569718930@qq.com
|
d39534dff4
|
机场推送重构:观测缓存分离 + 全城市覆盖 + 四路并发
- 新增 force_refresh_observations_only 模式:机场推送仅刷新 METAR/AMOS
观测缓存,多模型预报缓存保留 15 分钟,杜绝 Open-Meteo 429 限流后
DEB 回退到实测温度的 bug
- 砍掉夜间静默和温度状态机,每条新观测无条件推送
- HIGH_FREQ_AIRPORT_CITIES 从 19 城扩到 30 城(新增 11 个美国城市)
- 美国城市走 airport_primary (MADIS) 优先取温
- 机场周期从串行改为 ThreadPoolExecutor(max_workers=4),周期时间从
~120s 压缩到 ~33s
Constraint: 单核 VPS 安全并发上限
Tested: docker compose up -d --build polyweather 重建后推送正常
|
2026-05-17 18:04:05 +08:00 |
|
2569718930@qq.com
|
2e02133696
|
修复图表时间轴不全与城市决策卡模型补齐卡顿
- 后端 Open-Meteo 请求加 past_days=1,小时数据从 00:00 开始
- 前端图表层填充完整 00:00-23:00 时间轴,缺失时段置空
- 城市深度分析门槛从 >1 降为 >=1,单模型城市不再被拦
- hydration 队列加最大重试 3 次,防止永久卡在等待模型补齐
- 移除右侧面板历史对账按钮
|
2026-05-16 20:14:05 +08:00 |
|
2569718930@qq.com
|
f47ea93ec1
|
AMSC 重命名 _http_get_json 为 _amsc_http_get_json,避免 MRO 被 WeatherDataCollector 的同名方法覆盖
|
2026-05-15 03:47:15 +08:00 |
|
2569718930@qq.com
|
856e9aa6d1
|
AMSC 添加 stderr 调试输出,确认 urllib 代码路径被执行
|
2026-05-15 03:42:14 +08:00 |
|
2569718930@qq.com
|
e981188bf8
|
AMSC 请求从 httpx 改为 urllib,彻底绕过代理干扰
|
2026-05-15 03:33:06 +08:00 |
|
2569718930@qq.com
|
d8639f40f9
|
AMSC 请求绕过代理 trust_env=False,修复容器内 SSL 验证失败
|
2026-05-15 03:19:33 +08:00 |
|
2569718930@qq.com
|
6655476fd4
|
AMSC SSL 硬编码 verify=False,跳过证书验证环境变量依赖
|
2026-05-15 03:13:30 +08:00 |
|
2569718930@qq.com
|
06df0a87dd
|
AMSC 请求添加调试日志,排查 SSL verify 状态
|
2026-05-15 03:03:26 +08:00 |
|
2569718930@qq.com
|
00400f1392
|
AMSC 请求添加 app: AMS header,对齐浏览器完整请求头
|
2026-05-15 02:49:34 +08:00 |
|
2569718930@qq.com
|
bbb47b1634
|
AMSC sessionId 从 Cookie 改为自定义 header,对齐浏览器请求格式
|
2026-05-15 02:46:56 +08:00 |
|
2569718930@qq.com
|
189a77d03d
|
AMSC SSL 改用 httpx.Client(verify=False) 确保跳过证书验证
|
2026-05-15 02:42:03 +08:00 |
|
2569718930@qq.com
|
9f7bbffca1
|
AMSC AWOS 请求添加 SSL 验证开关,兼容国内证书
|
2026-05-15 02:25:33 +08:00 |
|
2569718930@qq.com
|
4cc579ccb3
|
feat: add AMSC runway observations
|
2026-05-15 01:41:49 +08:00 |
|
2569718930@qq.com
|
3bca2093f0
|
修复高频机场数据源:AMOS接入airport_primary、Taipei CWA补充mgm_nearby、Paris AROME缓存
- Seoul/Busan: AMOS 跑道传感器纳入 airport_primary 链路(MADIS之后、MGM之前)
- Seoul/Busan: 跑道温度生效时同步更新 current_obs_time,去重不再依赖慢速METAR
- Taipei: 新增 _attach_cwa_settlement_nearby,将CWA数据注入 mgm_nearby(icao=RCSS)
- Paris: AROME HD 抓取新增 10分钟内存缓存(模型15分钟更新),obs_time 为空时补 UTC 时间
- Istanbul/Ankara MGM 链接修复为直接跳转机场站点页面
Scope-risk: LOW — 170 测试通过,ruff 零告警
Tested: python -m pytest -q (170 passed), ruff check .
|
2026-05-15 00:10:03 +08:00 |
|
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 |
|
2569718930@qq.com
|
96676e7097
|
修正市场监控温度数据源:接入 NOAA MADIS 5分钟高频数据并优化展示
- 首尔/釜山:隐藏大号跑道温度值,改为"跑道温度"标签(跑道表面温度 ≠ 空气温度)
- US 城市:MADIS HFMETAR 5分钟小数温度接入 airport_primary,前端优先读取
- 其他城市:整数值不再强制 toFixed(1) 追加虚假 .0 精度
- 后端:weather_sources.py 注入 madis_hfmetar_current 到 results
- 后端:country_networks.py 的 _airport_primary_from_raw 新增 MADIS 优先分支
- 文档:更新 AIRPORT_REALTIME_SOURCES.md 新增 11 个 US 城市
- 文档:更新 CLAUDE.md 补充市场监控、高频数据管道、Country Network Provider 架构
Tested: npx tsc --noEmit ✓ ruff check . ✓
|
2026-05-14 16:00:55 +08:00 |
|
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 |
|