WorldMonitor 提供军用船舶与飞行器的专门追踪,通过应答机特征识别资产并监控活动模式。系统检测激增事件、敏感地区的外国军事存在,并评估多个战略战区的打击能力。
系统定义了 10 个活跃冲突区(伊朗、霍尔木兹海峡、乌克兰、加沙、南黎巴嫩、红海、苏丹、缅甸、朝鲜非军事区、巴基斯坦-阿富汗边境)和 4 个军事指挥热点(INDO-PACIFIC、CENTCOM、EUCOM、ARCTIC)。不同子系统根据其具体分析将这些区域归入定制的战区列表,因此本文各处的战区数量因上下文而异。
支撑端点
前端使用生成的 MilitaryService 客户端进行新鲜或限定范围的读取,而部分面板会先消费 bootstrap 或断路器缓存。以下是支撑军事地图图层、姿态卡片、飞行器富化、USNI 舰队视图与国防研发磁贴的公开 REST RPC 路由。
| 方法 | 路由 | 支撑内容 |
|---|
GET | /api/military/v1/list-military-flights | 军机地图图层、激增输入与国家风险信号;前端通过生成客户端按边界框调用,处理器提供 Redis/中继回传的数据。 |
GET | /api/military/v1/get-theater-posture | AI 战略姿态卡片;fetchCachedTheaterPosture() 在回退到此 RPC 之前会检查 bootstrap theaterPosture、断路器缓存与 IndexedDB。 |
GET | /api/military/v1/get-aircraft-details | 用于地图弹窗与飞行器详情查询的单机 Wingbits 富化。 |
POST | /api/military/v1/get-aircraft-details-batch | 面向可见军机的批量 Wingbits 富化;浏览器保留本地缓存,使重复查看不会重新抓取相同的 ICAO24 记录。 |
GET | /api/military/v1/get-wingbits-status | Wingbits 配置检查,在启用依赖富化的 UI 之前使用。 |
GET | /api/military/v1/get-wingbits-live-flight | 针对所选飞行器的按需 Wingbits ECS 实时位置查询。 |
GET | /api/military/v1/get-usni-fleet-report | 解析后的 USNI Fleet Tracker 报告,用于海军作战序列富化与每周舰队上下文。 |
GET | /api/military/v1/list-military-bases | 军事基地地图图层;视口、缩放、类型、类别与国家过滤器在服务端聚类。 |
GET | /api/military/v1/list-defense-patents | 国防专利面板与研发信号磁贴,含 CPC、受让人与结果数限制过滤器。 |
军用船舶识别
船舶通过多种方法被识别为军用:
MMSI 分析:海上移动业务识别码编码了船舶的船旗国。系统维护着 150+ 国家代码的映射,用于识别海军船舶:
| MID 范围 | 国家 | 备注 |
|---|
| 338-339 | 美国 | 美国海军、海岸警卫队 |
| 273 | 俄罗斯 | 俄罗斯海军 |
| 412-414 | 中国 | PLAN 舰艇 |
| 232-235 | 英国 | 英国皇家海军 |
| 226-228 | 法国 | 法国海军 |
已知船舶数据库:一个包含 50+ 命名船舶的精选数据库,当 AIS 传输船舶名称时可实现确切识别:
| 类别 | 追踪船舶 |
|---|
| 美国航母 | 全部 11 艘尼米兹/福特级(CVN-68 至 CVN-78) |
| 英国航母 | 伊丽莎白女王号(R08)、威尔士亲王号(R09) |
| 中国航母 | 辽宁号(16)、山东号(17)、福建号(18) |
| 俄罗斯航母 | 库兹涅佐夫号 |
| 知名驱逐舰 | 朱姆沃尔特号(DDG-1000)、卫士号(D36)、邓肯号(D37) |
| 研究/情报 | 胜利号(T-AGOS-19)、无瑕号(T-AGOS-23)、远望号 |
船舶分类算法:
- 将船舶名称与已知数据库进行核对(船体编号和舰名)
- 若名称匹配失败,则回退至 AIS 船舶类型代码
- 应用 MMSI 模式匹配以识别国家/运营商
- 对于带有海军前缀的船舶(USS、HMS、HMCS、HMAS、INS、JS、ROKS、TCG),推断其军用身份
呼号模式:已知的军用呼号前缀(NAVY、GUARD 等)提供辅助识别。
海军咽喉要道监控
系统监控 12 个关键海上咽喉要道,检测半径可配置:
| 咽喉要道 | 战略意义 |
|---|
| 霍尔木兹海峡 | 波斯湾通道、石油运输 |
| 苏伊士运河 | 地中海-红海连接 |
| 马六甲海峡 | 太平洋-印度洋航线 |
| 台湾海峡 | 两岸紧张局势 |
| 博斯普鲁斯海峡 | 黑海通道 |
| GIUK 航道 | 北大西洋潜艇航线 |
当军用船舶进入这些区域时,会生成接近警报。
海军基地接近监控
系统追踪 12 个主要海军设施附近的活动:
- 诺福克(美国)- 大西洋舰队总部
- 珍珠港(美国)- 太平洋舰队基地
- 塞瓦斯托波尔(俄罗斯)- 黑海舰队
- 青岛(中国)- 北海舰队
- 横须贺(日本)- 美国第七舰队
距离这些基地 50 公里以内的船舶会被标记,从而能够检测异常活动模式。
飞行器追踪(OpenSky)
军用飞行器通过 OpenSky 网络使用 ADS-B 数据进行追踪。OpenSky 会拦截来自云服务商 IP(Vercel、Railway、AWS)的未认证请求,因此飞行器追踪需要带有凭证的中继服务器。
认证:
- 在 opensky-network.org 注册免费账户
- 在账户设置中创建 API 客户端以获取
OPENSKY_CLIENT_ID 和 OPENSKY_CLIENT_SECRET
- 中继使用 OAuth2 客户端凭证流程 获取 Bearer 令牌
- 令牌会被缓存(30 分钟过期)并自动刷新
识别方法:
- 呼号匹配:已知的军用呼号模式(RCH、REACH、DUKE 等)
- ICAO 十六进制范围:军用飞行器按国家使用分配的十六进制代码块
- 高度/速度特征:异常飞行特性
追踪指标:
- 位置历史(5 分钟窗口内的 20 点轨迹)
- 高度和地速
- 航向和航迹
活动检测:
- 编队(多架军用飞行器相互接近)
- 异常模式(盘旋、侦察绕圈)
- 咽喉要道过境
船舶位置历史
系统为追踪中的船舶维护位置轨迹:
- 每个 MMSI 30 点历史
- 针对陈旧数据的 10 分钟清理间隔
- 地图上的轨迹可视化展示近期移动
由此可检测徘徊、绕圈或其他异常行为模式。
军事激增检测
系统持续监控军用飞行器活动以检测激增事件,即显著高于正常行动基线的增加,可能表明动员、演习或危机响应。
战区分类
军事活动在五个地理战区中进行分析(这是系统完整冲突区和热点定义的一个子集,限定于具备可靠 ADS-B 覆盖、可用于激增分析的区域):
| 战区 | 覆盖范围 | 关键区域 |
|---|
| 中东 | 波斯湾、黎凡特、阿拉伯半岛 | 美国 CENTCOM 活动、伊朗领空 |
| 东欧 | 乌克兰、波罗的海国家、黑海 | NATO-俄罗斯边境活动 |
| 西欧 | 中欧、北海 | NATO 演习、空中警巡 |
| 太平洋 | 东亚、东南亚 | 台湾海峡、朝鲜半岛 |
| 非洲之角 | 红海、东非 | 反海盗、胡塞武装活动 |
飞行器分类
飞行器按呼号模式匹配进行分类:
| 类型 | 呼号模式 | 意义 |
|---|
| 运输机 | RCH, REACH, MOOSE, HERKY, EVAC, DUSTOFF | 空运行动、部队调动 |
| 战斗机 | VIPER, EAGLE, RAPTOR, STRIKE | 战斗空中巡逻、拦截 |
| 侦察机 | SIGNT, COBRA, RIVET, JSTARS | 情报收集 |
基线计算
系统按战区维护滚动 48 小时活动基线:
- 需要至少 6 个数据样本才能得到可靠基线
- 数据不足时的默认基线:3 架运输机、2 架战斗机、1 架侦察机
- 活动低于基线的 50% 表明已解除警戒
激增检测算法
surge_ratio = current_count / baseline
surge_triggered = (
ratio >= 2.0 AND
transport >= 5 AND
fighters >= 4
)
激增信号输出
当检测到激增时,系统会生成 military_surge 信号:
| 字段 | 内容 |
|---|
| 位置 | 战区中心坐标 |
| 消息 | ”[战区]军事运输机激增:[X] 架飞行器(基线:[Y])“ |
| 详情 | 飞行器类型、附近基地(150 公里半径)、主要呼号 |
| 置信度 | 基于激增比率(0.6-0.9) |
外国军事存在检测
除激增检测外,系统还监控敏感地区的外国军用飞行器,即一国飞行器出现在其正常行动范围之外、具有地缘政治意义的区域的情况。
敏感地区
系统追踪 18 个具有战略意义的地理区域:
| 地区 | 敏感度 | 监控对象 |
|---|
| 台湾海峡 | 关键 | PLAAF 活动、美国过境 |
| 波斯湾 | 关键 | 伊朗、美国、海湾国家活动 |
| 波罗的海 | 高 | NATO 附近的俄罗斯活动 |
| 黑海 | 高 | NATO 侦察、俄罗斯活动 |
| 南海 | 高 | PLAAF 巡逻、美国 FONOPs |
| 朝鲜半岛 | 高 | DPRK 活动、US-ROK 演习 |
| 东地中海 | 中 | 俄罗斯海军航空兵、NATO |
| 北极 | 中 | 俄罗斯轰炸机巡逻 |
检测逻辑
针对每个敏感地区,系统会:
- 识别区域边界内的所有军用飞行器
- 按运营国家对飞行器进行分组
- 排除”本地区”运营商(例如,波罗的海的俄罗斯 VKS 不计入警报)
- 应用集中度阈值(通常每个运营商 2-3 架飞行器)
关键组合
某些运营商-地区组合会触发关键严重度警报:
| 运营商 | 地区 | 理由 |
|---|
| PLAAF | 台湾海峡 | 潜在入侵演练 |
| 俄罗斯 VKS | 北极 | 核轰炸机巡逻 |
| USAF | 波斯湾 | 潜在打击编组 |
信号输出
外国存在检测会生成 foreign_military_presence 信号:
| 字段 | 内容 |
|---|
| 标题 | ”外国军事存在:[地区]“ |
| 详情 | ”检测到 [运营商] 飞行器:[数量] [类型]“ |
| 严重度 | 根据组合判定为关键/高/中 |
| 置信度 | 0.7-0.95,基于飞行器数量和类型多样性 |
基于基线的激增检测
通过将当前飞行器数量与已定义军事战区内的历史基线进行比较来检测激增:
| 参数 | 值 | 用途 |
|---|
| 激增阈值 | 2.0 倍基线 | 触发警报的最低倍数 |
| 基线窗口 | 48 小时 | 用于比较的历史数据 |
| 最少样本数 | 6 次观测 | 有效基线所需的数据点 |
追踪的飞行器类别:
| 类别 | 示例 | 最低数量 |
|---|
| 运输/空运 | C-17, C-130, KC-135, REACH 航班 | 5 架 |
| 战斗机 | F-15, F-16, F-22, 台风 | 4 架 |
| 侦察机 | RC-135, E-3 AWACS, U-2 | 3 架 |
激增严重度
| 严重度 | 标准 | 含义 |
|---|
| 关键 | 4 倍基线或更高 | 重大部署 |
| 高 | 3 倍基线 | 显著增加 |
| 中 | 2 倍基线 | 活动升高 |
军事战区
激增检测将活动归入四个主要战略战区(这是用于基线比较的简化分组,有别于其他地方使用的 5 战区和 9 战区列表):
| 战区 | 中心 | 关键基地 |
|---|
| 中东 | 波斯湾 | 乌代德、戴夫拉、因吉尔利克 |
| 东欧 | 波兰 | 拉姆施泰因、施潘达勒姆、瓦斯克 |
| 太平洋 | 关岛/日本 | 安德森、嘉手纳、横田 |
| 非洲之角 | 吉布提 | 莱蒙尼尔营 |
外国存在检测
一个独立系统监控在其正常行动区域之外的军用运营商:
| 运营商 | 本土区域 | 出现于此时警报 |
|---|
| USAF/USN | 阿拉斯加 ADIZ | 波斯湾、台湾海峡 |
| 俄罗斯 VKS | 加里宁格勒、北极、黑海 | 波罗的海地区、阿拉斯加 ADIZ |
| PLAAF/PLAN | 台湾海峡、南海 | (增加时警报) |
| 以色列 IAF | 东地中海 | 伊朗边境地区 |
示例警报:
FOREIGN MILITARY PRESENCE: Persian Gulf
USAF: 3 aircraft detected (KC-135, RC-135W, E-3)
Severity: HIGH - Operator outside normal home regions
新闻关联
激增和外国存在警报均会查询焦点检测器以获取上下文:
- 识别涉及的国家(飞行器运营商、地区国家)
- 检查这些国家的焦点
- 若存在新闻关联,附上标题和证据
含关联的示例:
MILITARY AIRLIFT SURGE: Middle East Theater
Current: 8 transport aircraft (2.5x baseline)
Aircraft: C-17 (3), KC-135 (3), C-130J (2)
NEWS CORRELATION:
Iran: "Iran protests continue amid military..."
-> Iran appears in both news (12) and map signals (9)
飞行器增强
军用飞行器追踪通过 Wingbits 增强数据得到增强,提供超越基本应答机数据的详细飞行器信息。
Wingbits 提供的内容
当通过 OpenSky ADS-B 检测到飞行器时,系统会查询 Wingbits 以获取:
| 字段 | 描述 | 用途 |
|---|
| 注册号 | 飞行器尾号(例如 N12345) | 唯一识别 |
| 所有者 | 飞行器的法定所有者 | 军事分支检测 |
| 运营商 | 运营实体 | 区分军用与承包商 |
| 制造商 | 波音、洛克希德·马丁等 | 飞行器类型分类 |
| 型号 | 具体飞行器型号 | 能力评估 |
| 出厂年份 | 制造年份 | 机队年龄分析 |
军用分类算法
增强服务根据精选关键词列表分析所有者和运营商字段:
确认军用(所有者/运营商匹配):
- 政府:“United States Air Force”、“Department of Defense”、“Royal Air Force”
- 国际:“NATO”、“Ministry of Defence”、“Bundeswehr”
可能军用(运营商 ICAO 代码):
AIO(空中机动司令部)、RRR(英国皇家空军)、GAF(德国空军)
RCH(REACH 航班)、CNV(Convoy 航班)、DOD(国防部)
或为军用(国防承包商):
- 诺斯洛普·格鲁曼、洛克希德·马丁、通用原子、雷神、波音防务、L3Harris
飞行器类型匹配:
- 运输机:C-17, C-130, C-5, KC-135, KC-46
- 侦察机:RC-135, U-2, RQ-4, E-3, E-8
- 战斗机:F-15, F-16, F-22, F-35, B-52, B-2
- 欧洲机型:欧洲战斗机、台风、阵风、狂风、鹰狮
置信度等级
每架增强后的飞行器都会获得一个置信度分类:
| 等级 | 标准 | 显示 |
|---|
| 确认 | 直接军用所有者/运营商匹配 | 绿色徽章 |
| 可能 | 军用 ICAO 代码或飞行器类型 | 黄色徽章 |
| 或为 | 国防承包商所有 | 灰色徽章 |
| 民用 | 无军用标志 | 无徽章 |
缓存策略
飞行器详情很少变化,因此积极的缓存可减少 API 负载:
- 服务端:HTTP Cache-Control 头(24 小时 max-age)
- 客户端:每架飞行器 1 小时本地缓存
- 批量优化:每次 API 调用最多 20 架飞行器
这意味着一架飞行器的详情每天最多获取一次,无论它在地图上出现多少次。
航天发射基础设施
航天港图层显示全球发射设施,用于监控航天相关活动及其供应链影响。
追踪的发射场
| 场址 | 国家 | 运营商 | 活动水平 |
|---|
| 肯尼迪航天中心 | 美国 | NASA/太空军 | 高 |
| 范登堡太空军基地 | 美国 | 美国太空军 | 中 |
| 星舰基地 | 美国 | SpaceX | 高 |
| 拜科努尔航天发射场 | 哈萨克斯坦 | Roscosmos | 中 |
| 普列谢茨克航天发射场 | 俄罗斯 | Roscosmos/军方 | 中 |
| 东方港航天发射场 | 俄罗斯 | Roscosmos | 低 |
| 酒泉卫星发射中心 | 中国 | CNSA | 高 |
| 西昌卫星发射中心 | 中国 | CNSA | 高 |
| 文昌卫星发射中心 | 中国 | CNSA | 中 |
| 圭亚那航天中心 | 法国 | ESA/CNES | 中 |
| 萨蒂什·达万航天中心 | 印度 | ISRO | 中 |
| 种子岛航天中心 | 日本 | JAXA | 低 |
为何重要
航天发射具有地缘政治意义:
- 军事影响:许多发射是军民两用的
- 技术竞争:发射节奏反映航天计划的进展
- 供应链:卫星服务影响通信、GPS、侦察
- 事件关联:有关太空碎片、发射失败或政策变化的新闻
战略姿态分析
AI 战略姿态面板汇总已定义战区内的军用飞行器和海军船舶,提供全球兵力集结的一览式态势感知。
战略战区
九个地理战区被持续监控以进行姿态分析(这是一个独立且更细粒度的分组,不同于上文的激增检测战区,专为战略姿态评估量身定制,设有各战区打击能力阈值):
| 战区 | 范围 | 升级阈值 | 关键阈值 |
|---|
| 伊朗战区 | 波斯湾、伊拉克、叙利亚(20N-42N, 30E-65E) | 50 架 | 100 架 |
| 台湾海峡 | 台湾、东海(18N-30N, 115E-130E) | 30 架 | 60 架 |
| 朝鲜半岛 | 朝鲜/韩国(33N-43N, 124E-132E) | 20 架 | 50 架 |
| 波罗的海战区 | 波罗的海国家、波兰、斯堪的纳维亚(52N-65N, 10E-32E) | 20 架 | 40 架 |
| 黑海 | 乌克兰、土耳其、罗马尼亚(40N-48N, 26E-42E) | 15 架 | 30 架 |
| 南海 | 菲律宾、越南(5N-25N, 105E-121E) | 25 架 | 50 架 |
| 东地中海 | 叙利亚、塞浦路斯、黎巴嫩(33N-37N, 25E-37E) | 15 架 | 30 架 |
| 以色列/加沙 | 以色列、加沙地带(29N-33N, 33E-36E) | 10 架 | 25 架 |
| 也门/红海 | 曼德海峡、胡塞武装地区(11N-22N, 32E-54E) | 15 架 | 30 架 |
打击能力评估
除原始数量外,系统还评估战区内的兵力是否构成进攻性打击编组,即持续作战行动所需的资产组合。
具备打击能力的标准:
- 空中加油机(KC-135、KC-10、A330 MRTT)
- 空中指挥与控制(E-3 AWACS、E-7 楔尾)
- 作战飞行器(战斗机、攻击机)
每个战区都有反映现实打击编组规模的自定义阈值:
| 战区 | 最少加油机 | 最少预警机 | 最少战斗机 |
|---|
| 伊朗战区 | 10 | 2 | 30 |
| 台湾海峡 | 5 | 1 | 20 |
| 朝鲜半岛 | 4 | 1 | 15 |
| 波罗的海/黑海 | 3-4 | 1 | 10-15 |
| 以色列/加沙 | 2 | 1 | 8 |
当三项标准全部满足时,该战区会被标记为具备打击能力,表明兵力足以实施持续进攻行动。
海军船舶整合
该面板通过 AIS 追踪的实时海军船舶位置来补充飞行器数据。船舶被分为以下类别:
| 类别 | 示例 | 战略意义 |
|---|
| 航母 | CVN, CV, LHD | 力量投射、空中优势 |
| 驱逐舰 | DDG, DDH | 防空、巡航导弹打击 |
| 护卫舰 | FFG, FF | 多用途护航、反潜 |
| 潜艇 | SSN, SSK, SSBN | 威慑、ISR、打击 |
| 巡逻舰 | PC, PG | 近海防御 |
| 辅助舰 | T-AO, AOR | 舰队支援、后勤 |
数据累积说明:AIS 船舶数据通过 WebSocket 流到达并逐步累积。面板会在初始加载后的 30、60、90 和 120 秒自动重新检查船舶数量,以捕获延迟到达的数据。
姿态等级
| 等级 | 指示符 | 标准 | 含义 |
|---|
| 正常 | NORM | 低于升级阈值 | 常规和平时期活动 |
| 升级 | ELEV | 达到或超过升级阈值 | 活动增加,可能为演习 |
| 关键 | CRIT | 达到或超过关键阈值 | 重大部署,潜在危机 |
升级 + 具备打击能力被视为比常规升级状态更高的警戒状态。
趋势检测
活动趋势根据滚动历史数据计算:
- 上升:当前活动比上一周期高 10% 以上
- 稳定:活动在上一周期的 +/-10% 以内
- 下降:当前活动比上一周期低 10% 以上
服务端缓存
战区姿态计算在边缘服务器上运行,并使用 Redis 缓存:
| 缓存类型 | TTL | 用途 |
|---|
| 活动缓存 | 5 分钟 | 与 OpenSky 刷新率匹配 |
| 陈旧缓存 | 1 小时 | 上游 API 失败时的回退 |
这确保所有用户看到一致的数据,并最大限度地减少对 OpenSky 网络的冗余 API 调用。