2026-03-24 04:21:23 +08:00
|
|
|
|
# PolyWeather TAF 信号说明(TAF_SIGNAL_ZH)
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
本文档说明 PolyWeather 当前如何把 `TAF`(机场终端预报)接入“今日日内分析”,以及这些信号在交易判断里到底代表什么。
|
|
|
|
|
|
|
|
|
|
|
|
本文档只描述**当前实现**,不夸大、不脑补。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 一、TAF 在项目中的定位
|
|
|
|
|
|
|
|
|
|
|
|
在 PolyWeather 里,`TAF` 不是主温度模型,也不是结算源。
|
|
|
|
|
|
|
|
|
|
|
|
它的定位是:
|
|
|
|
|
|
|
|
|
|
|
|
1. **机场侧确认层**
|
|
|
|
|
|
- 用来补充说明机场在峰值窗口附近会不会出现云、雨、雷暴或风向切换。
|
|
|
|
|
|
|
|
|
|
|
|
2. **压温 / 扰动风险提示层**
|
|
|
|
|
|
- 用来判断“机场最高温是否可能因为天气扰动被压低”。
|
|
|
|
|
|
|
|
|
|
|
|
3. **走势图时间轴联动层**
|
|
|
|
|
|
- 用来在温度走势图上标出 `FM / TEMPO / BECMG / PROB30/40` 对应的时段。
|
|
|
|
|
|
|
|
|
|
|
|
它**不负责**:
|
|
|
|
|
|
|
|
|
|
|
|
1. 直接提供多模型最高温数值
|
|
|
|
|
|
2. 替代 `DEB`
|
|
|
|
|
|
3. 替代机场实况 `METAR`
|
|
|
|
|
|
4. 替代官方结算源
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
## 二、后端当前怎么解析 TAF
|
|
|
|
|
|
|
|
|
|
|
|
后端入口在:
|
|
|
|
|
|
|
|
|
|
|
|
- [web/analysis_service.py](/E:/web/PolyWeather/web/analysis_service.py)
|
|
|
|
|
|
|
|
|
|
|
|
核心函数:
|
|
|
|
|
|
|
|
|
|
|
|
- `_build_taf_signal(...)`
|
|
|
|
|
|
|
|
|
|
|
|
当前会解析这些时间片:
|
|
|
|
|
|
|
|
|
|
|
|
1. `BASE`
|
|
|
|
|
|
2. `FM`
|
|
|
|
|
|
3. `TEMPO`
|
|
|
|
|
|
4. `BECMG`
|
|
|
|
|
|
5. `PROB30`
|
|
|
|
|
|
6. `PROB40`
|
|
|
|
|
|
7. `PROB30 TEMPO`
|
|
|
|
|
|
8. `PROB40 TEMPO`
|
|
|
|
|
|
|
|
|
|
|
|
并且只聚焦于:
|
|
|
|
|
|
|
|
|
|
|
|
- **峰值窗口前后**
|
|
|
|
|
|
|
|
|
|
|
|
当前窗口定义是:
|
|
|
|
|
|
|
|
|
|
|
|
- `peak.first_h - 2h`
|
|
|
|
|
|
- 到
|
|
|
|
|
|
- `peak.last_h + 1h`
|
|
|
|
|
|
|
|
|
|
|
|
也就是说,TAF 不是整段报文全量平铺,而是会优先关注**和今天高温兑现最相关的时段**。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 三、当前后端真正产出的核心字段
|
|
|
|
|
|
|
|
|
|
|
|
### 1. `suppression_level`
|
|
|
|
|
|
|
|
|
|
|
|
表示机场端的**压温风险等级**。
|
|
|
|
|
|
|
|
|
|
|
|
当前逻辑来自:
|
|
|
|
|
|
|
|
|
|
|
|
1. 降水 / 雷暴关键词
|
|
|
|
|
|
- `TSRA`
|
|
|
|
|
|
- `TS`
|
|
|
|
|
|
- `VCTS`
|
|
|
|
|
|
- `SHRA`
|
|
|
|
|
|
- `SHSN`
|
|
|
|
|
|
- `SHGS`
|
|
|
|
|
|
- `RA`
|
|
|
|
|
|
- `DZ`
|
|
|
|
|
|
- `SN`
|
|
|
|
|
|
|
|
|
|
|
|
2. 低云底
|
|
|
|
|
|
- 只对 `BKN / OVC` 生效
|
|
|
|
|
|
- 如果最低云底 `<= 4000 ft`
|
|
|
|
|
|
- 会把原本 `low` 的压温风险至少抬到 `medium`
|
|
|
|
|
|
|
|
|
|
|
|
注意:
|
|
|
|
|
|
|
|
|
|
|
|
- 不是所有 `FEW / SCT / BKN / OVC` 都会直接把风险打到 `high`
|
|
|
|
|
|
- 当前实现里,**低云主要是把风险从 `low` 抬到 `medium`**
|
|
|
|
|
|
- 真正更容易触发 `high` 的,还是阵雨 / 雷暴类关键词
|
|
|
|
|
|
|
|
|
|
|
|
### 2. `disruption_level`
|
|
|
|
|
|
|
|
|
|
|
|
表示峰值窗口附近的**扰动程度**。
|
|
|
|
|
|
|
|
|
|
|
|
当前逻辑:
|
|
|
|
|
|
|
|
|
|
|
|
1. 这些时间片会至少把扰动抬到 `medium`
|
|
|
|
|
|
- `TEMPO`
|
|
|
|
|
|
- `BECMG`
|
|
|
|
|
|
- `PROB30`
|
|
|
|
|
|
- `PROB40`
|
|
|
|
|
|
- `PROB30 TEMPO`
|
|
|
|
|
|
- `PROB40 TEMPO`
|
|
|
|
|
|
|
|
|
|
|
|
2. 这些情况会把扰动抬到 `high`
|
|
|
|
|
|
- `PROB30 TEMPO`
|
|
|
|
|
|
- `PROB40 TEMPO`
|
|
|
|
|
|
- 或者该时段本身就出现强降水/雷暴类关键词
|
|
|
|
|
|
|
|
|
|
|
|
注意:
|
|
|
|
|
|
|
|
|
|
|
|
- **`TEMPO` 本身不等于 `high`**
|
|
|
|
|
|
- **`PROB40` 也不等于“确定发生”**
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 四、前端怎么展示
|
|
|
|
|
|
|
|
|
|
|
|
前端主要在:
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
- [frontend/components/dashboard/FutureForecastModal.tsx](/E:/web/PolyWeather/frontend/components/dashboard/FutureForecastModal.tsx)
|
|
|
|
|
|
- [frontend/lib/dashboard-utils.ts](/E:/web/PolyWeather/frontend/lib/dashboard-utils.ts)
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
当前会通过三种方式展示 TAF:
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
### 1. 图表时间轴标记
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
在日内温度走势图上,当前会显示:
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
- `TAF 时段 / TAF Timing`
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
tooltip 会显示该时段摘要,例如:
|
|
|
|
|
|
|
|
|
|
|
|
- `基础时段 13:00-19:00 以稳定为主`
|
|
|
|
|
|
- `明确切换 15:00-21:00 以稳定为主`
|
|
|
|
|
|
- `临时波动 14:00-17:00 有云雨扰动`
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 今日日内结构信号里的 `机场预报`
|
|
|
|
|
|
|
|
|
|
|
|
会显示类似:
|
|
|
|
|
|
|
|
|
|
|
|
- `防压温`
|
|
|
|
|
|
- `看云雨`
|
|
|
|
|
|
- `暂稳`
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 顶部摘要与交易动作
|
|
|
|
|
|
|
|
|
|
|
|
系统会把:
|
|
|
|
|
|
|
|
|
|
|
|
1. 近地面结构
|
|
|
|
|
|
2. 高空结构
|
|
|
|
|
|
3. `TAF`
|
|
|
|
|
|
4. `market_signal / edge_percent / bucket crowding`
|
|
|
|
|
|
|
|
|
|
|
|
合并成更贴近交易的提示,例如:
|
|
|
|
|
|
|
|
|
|
|
|
- `偏暖侧`
|
|
|
|
|
|
- `偏谨慎`
|
|
|
|
|
|
- `先观察`
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
## 五、TAF 关键词当前在项目里的真实含义
|
|
|
|
|
|
|
|
|
|
|
|
| TAF 关键词 | 当前展示词 | 当前项目含义 |
|
|
|
|
|
|
| :-- | :-- | :-- |
|
|
|
|
|
|
| `BASE` | 基础时段 | 在第一个显式变化组出现前的默认背景天气段 |
|
|
|
|
|
|
| `FM` | 明确切换 | 从某个明确时刻开始,机场预报进入一套新的天气阶段 |
|
|
|
|
|
|
| `TEMPO` | 临时波动 | 一段短时、非整段主导的扰动窗口 |
|
|
|
|
|
|
| `BECMG` | 逐步转变 | 天气在该窗口内逐步过渡,不是立刻硬切 |
|
|
|
|
|
|
| `PROB30/40` | 30% / 40% 风险窗 | 有概率触发的扰动窗口,不等于确定发生 |
|
|
|
|
|
|
|
|
|
|
|
|
注意:
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
- `FM` 不是由 `valid_match` 触发,它是按 `FMddhhmm` 独立解析出来的明确切换段
|
|
|
|
|
|
- `PROB40` 不是“确定性信号”,仍然只是概率窗口
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
## 六、怎么理解“机场端压温风险偏高”
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
这句话的意思不是:
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
- 城区一定更冷
|
|
|
|
|
|
- 一定会结算更低
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
真正意思是:
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
**在机场这个结算相关站点上,峰值窗口附近更容易因为云、阵雨或雷暴,导致最终最高温冲不上去。**
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
对于很多按机场报文或机场相关站点结算的市场,这一点很关键。
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
一句话:
|
|
|
|
|
|
|
|
|
|
|
|
- `TAF` 提示压温高
|
|
|
|
|
|
- 不代表一定下雨
|
|
|
|
|
|
- 但代表“机场高温可能被压低”的概率更值得防
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
## 七、怎么和图表一起看
|
|
|
|
|
|
|
|
|
|
|
|
### 情况 A:模型还偏热,但 TAF 给出压温高
|
|
|
|
|
|
|
|
|
|
|
|
这表示:
|
|
|
|
|
|
|
|
|
|
|
|
1. 数值模型仍给出较高高温
|
|
|
|
|
|
2. 但机场端预报提示云雨/雷暴会打断峰值兑现
|
|
|
|
|
|
|
|
|
|
|
|
这种情况下,更适合理解成:
|
|
|
|
|
|
|
|
|
|
|
|
- **机场侧高温兑现有风险**
|
|
|
|
|
|
- 追更高温区间要谨慎
|
|
|
|
|
|
|
|
|
|
|
|
### 情况 B:TAF 没有新增压温,但总判断仍偏降温
|
|
|
|
|
|
|
|
|
|
|
|
这表示:
|
|
|
|
|
|
|
|
|
|
|
|
1. `TAF` 没有提供新的云雨压温利空
|
|
|
|
|
|
2. 但近地面窗口本身已经在走弱
|
|
|
|
|
|
|
|
|
|
|
|
比如:
|
|
|
|
|
|
|
|
|
|
|
|
- 温度走弱
|
|
|
|
|
|
- 风场切换
|
|
|
|
|
|
- 气压回升
|
|
|
|
|
|
- 露点回落
|
|
|
|
|
|
|
|
|
|
|
|
所以:
|
|
|
|
|
|
|
|
|
|
|
|
- `TAF 无压温`
|
|
|
|
|
|
- **不等于**
|
|
|
|
|
|
- `一定继续升温`
|
|
|
|
|
|
|
|
|
|
|
|
当前系统已经会在摘要里把这层关系解释清楚。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 八、当前实现边界
|
|
|
|
|
|
|
|
|
|
|
|
这套 `TAF` 逻辑当前是**交易导向的轻量解码**,不是完整航空专业解码器。
|
|
|
|
|
|
|
|
|
|
|
|
当前做得到:
|
|
|
|
|
|
|
|
|
|
|
|
1. 识别主要时间片
|
|
|
|
|
|
2. 找出峰值窗口附近的扰动
|
|
|
|
|
|
3. 识别云雨压温和风向切换
|
|
|
|
|
|
4. 联动图表时间轴
|
|
|
|
|
|
5. 联动交易动作
|
|
|
|
|
|
|
|
|
|
|
|
当前还没有做:
|
|
|
|
|
|
|
|
|
|
|
|
1. 对全部 TAF 语法做完整航空级严格解释
|
|
|
|
|
|
2. 对每个时段都做完整的逐字段人工预报学解释
|
|
|
|
|
|
3. 把 TAF 当成温度主预测模型
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 九、产品口径总结
|
|
|
|
|
|
|
|
|
|
|
|
最重要的一句:
|
|
|
|
|
|
|
|
|
|
|
|
**在 PolyWeather 里,TAF 是“机场侧扰动确认层”,不是主模型,也不是结算源。**
|
|
|
|
|
|
|
|
|
|
|
|
它最值钱的地方是:
|
|
|
|
|
|
|
|
|
|
|
|
- 帮你判断峰值窗口附近,机场高温会不会被云雨、雷暴、低云或风向切换打断。
|
|
|
|
|
|
|
|
|
|
|
|
对交易来说,更适合把它理解成:
|
|
|
|
|
|
|
|
|
|
|
|
- “机场这边有没有额外的压温风险”
|
|
|
|
|
|
|
|
|
|
|
|
而不是:
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
- “TAF 直接告诉我今天结算温度是多少”
|
2026-03-24 04:03:41 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-24 04:21:23 +08:00
|
|
|
|
_PolyWeather 文档中心_
|