> ## Documentation Index
> Fetch the complete documentation index at: https://worldmonitor-spike-bun-package-manager.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 热力升级方法论

> WorldMonitor 热力升级方法论详解：如何对 NASA FIRMS/VIIRS 卫星热点探测数据进行时空聚类、按区域标签分组，并与本地历史基线对比以剔除噪声，最终为每个聚类分配升级状态、置信度评分与地缘政治相关性，用于野火、军事打击与工业事故的早期识别与追踪。

## 从这里开始

气象卫星能探测热量。它们每天在全球记录数千个热点——其中绝大多数是农民烧秸秆、炼油厂的火炬，以及普通的野火。真正重要的那些，就埋在这片噪声里：燃烧的油库、被击中的炼油厂、本不该起火的地方。

热力升级就是这道过滤器。它对每一次热探测只问一个问题：**对这个地方而言，这异常吗？**

### 它如何判断"异常"

卫星的单个像素首先被归并成**聚类**——时间相近、位置相邻的探测几乎必然是同一起事件，而不是十五起。随后，每个聚类会与那片地面平时的样子作比较，以过去七天作为标尺。

一片每周都在烧的地方起火，是正常的。同样一场火，出现在一个月都没烧过的地方，就不正常。这个比较，就是全部的核心思想。

每个聚类最终得到一个状态：

| 状态           | 含义                       |
| ------------ | ------------------------ |
| `spike`      | 相对本地基线的突然、剧烈偏离。有事刚刚发生。   |
| `persistent` | 已燃烧 12 小时以上且仍高于基线。有事在持续。 |
| `elevated`   | 高于本地常态，但幅度不剧烈。           |
| `normal`     | 与该区域平常的表现一致。             |

还有两个字段决定什么会浮到面板顶部。当一个聚类既异常、又位于活跃冲突区域时，**相关性**会被提高——这个组合最常意味着基础设施而非农业活动。**置信度**则说明这一判断背后有多少证据：有多少次探测、有多少颗不同的卫星看到了它、以及有多少历史基线可供比较。

<Note>
  **术语说明。** *FRP*（火辐射功率）是探测到的能量输出——粗略地说，是"烧得多猛"，而不是"亮了多少个像素"。两者都会用到，因为一处小而极热的事件与一处大而阴燃的事件，是完全不同的情况。
</Note>

<Warning>
  **探测到的是热量，不是原因。** 这些卫星无法区分被击中的油库和一场焚烧秸秆。这里的一切都是"值得去看一眼"的提示，绝不是关于发生了什么的结论。冲突邻近性判断也只是区域标签匹配，而非针对已确认冲突事件的实时距离计算。
</Warning>

热力升级将 FIRMS/VIIRS 热点探测转化为聚类的、感知基线的关注条目，供 `thermal-escalation` 面板使用。其实现位于 `scripts/lib/thermal-escalation.mjs`。

## 聚类

探测结果按观测时间排序，并按区域标签分组。当一次探测落在 `20km` 范围内时，它会加入同一区域中最近的现有聚类；否则新建一个聚类。随着探测的加入，聚类质心会增量更新。

每个聚类通过将纬度和经度四舍五入到最接近的 0.5 度，被分配到一个 0.5 度的基线单元格。

## 基线与持续性

评分器保留 30 天的单元格历史，并使用最近 7 天作为比较基线。对每个聚类，它计算：

| 指标                      | 含义                  |
| ----------------------- | ------------------- |
| `baselineExpectedCount` | 单元格中先前观测计数的平均值      |
| `baselineExpectedFrp`   | 单元格中先前火辐射功率总量的平均值   |
| `countDelta`            | 当前观测计数减去基线计数        |
| `frpDelta`              | 当前 FRP 总量减去基线 FRP   |
| `zScore`                | 计数增量除以基线计数标准差       |
| `persistenceHours`      | 自首次当前或近期先前观测以来的持续时长 |

18 小时内的先前观测会延长持续性。面板显示窗口为 24 小时。

## 状态规则

| 状态           | 规则                                                                                                |
| ------------ | ------------------------------------------------------------------------------------------------- |
| `persistent` | `persistenceHours >= 12` 且 `countDelta >= 3` 或 `totalFrp >= 80` 之一成立                              |
| `spike`      | `zScore >= 2.5`、`countDelta >= 6`、`frpDelta >= 120`，或 `observationCount >= 8` 且 `totalFrp >= 150` |
| `elevated`   | `zScore >= 1.5`、`countDelta >= 3`、`frpDelta >= 50`，或无基线且 `observationCount >= 5`                  |
| `normal`     | 以上均不满足                                                                                            |

## 上下文与相关性

冲突邻近性由聚类的区域标签决定，而非通过对冲突事件的实时距离连接。当前的冲突区域允许列表为：

乌克兰、俄罗斯、以色列/加沙、叙利亚、伊朗、台湾、朝鲜、也门、缅甸、苏丹、南苏丹、埃塞俄比亚、索马里、刚果民主共和国、利比亚、马里、布基纳法索、尼日尔、伊拉克和巴基斯坦。

战略相关性的分配如下：

| 相关性      | 规则                                            |
| -------- | --------------------------------------------- |
| `high`   | 冲突邻近且状态为 `spike` 或 `persistent`               |
| `medium` | 状态为 `persistent`、FRP 总量至少为 `120`，或持续性至少 12 小时 |
| `low`    | 以上均不满足                                        |

当前实现不执行基础设施邻近性匹配。在资产匹配器接入种子器之前，`nearbyAssets` 会作为空数组输出。

## 置信度

| 置信度      | 规则                                  |
| -------- | ----------------------------------- |
| `high`   | 至少 8 次观测、至少 2 个不同的卫星来源，以及至少 4 个基线样本 |
| `medium` | 至少 4 次观测和至少 2 个基线样本                 |
| `low`    | 低于 medium 阈值的任何情况                   |

行按相关性排序，然后是状态严重性、FRP 总量和观测计数。
