Files
PolyWeather/docs/TAF_SIGNAL_ZH.md
T

287 lines
6.4 KiB
Markdown
Raw Normal View History

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