koishi-plugin-xxcx-1
[自用]TC查询器
台风历史查询插件:cx 年.月.日.时 查出该时刻(世界时)正在活动的所有系统,输出编号、风速、性质、定位。
数据来源为 data/ 目录下的 xrqa 自评 b-deck(ATCF 格式),覆盖 1949—2026 共 78 年、2424 个系统
(bwp 2324、bsh 60、bcp 28、bep 10、bio 2;2026 年为部分年份)。
查询年份超出本地数据范围时(1851—1948、2027 起),cx 会自动从 NaTyphoon 存档下载该年份补齐
(archiveUrl 可配置;当前年份数据仍在更新,缓存 6 小时后自动刷新,历史年份长期缓存)。
另有 data-ibtracs/:IBTrACS 收录、但最佳路径存档没有的系统,从 1842 年起共 7125 个
(有编号 2265 个 + 无编号 4860 个),完整定位序列 308403 条。有编号的这批会一起进 对照
(与 data/ 按编号配对),无编号的只作查阅。其中另有 14 个南大西洋人工补录
(IBTrACS 与存档都没有,见「数据维护 · IBTrACS 补录」)。
效果
cx 2013.11.07.18
2013.11.07.18Z 共 2 个系统
1331W 185kt 超强台风(ST) 10.6°N 126.9°E
1330W 35kt 热带风暴(TS) 12.0°N 101.0°E
查询时刻不是 6 小时正点(如 15 时)时,取最接近的一次定位并标注实际定位时间:
cx 2024.09.15.15
2024.09.15.15Z 共 3 个系统
2414W 85kt 台风(TY) 30.5°N 124.6°E @09.15.12
2412W 30kt 热带低压(TD) 22.1°N 82.9°E @09.15.12
2415W 20kt 热带扰动(DB) 13.4°N 143.4°E @09.15.12
注:@xx.xx.xx 表示该时刻无正点定位,取最接近的一次定位。
指令
| 指令 | 说明 |
|---|---|
cx 2024.09.15.12 | 查询该时刻存在的系统(世界时) |
cx 2024.09.15 | 省略小时,按 00 时处理 |
cx | 输出用法与数据范围 |
xrq wp162022 | 用本地 xrqa 数据绘制单个系统的路径图 |
最佳 wp162022 | 从 NaTyphoon 存档下载最佳路径并绘制路径图 |
xrq 13haiy | 按「年份后两位 + 名字前缀」查(2013 年 HAIYAN),大小写不敏感 |
最佳 13haiy | 同上,名字查询使用存档数据 |
命名 2013 wp | 列出 2013 年 WP 洋区所有系统编号与名字 |
对照 2013 wp | 对比该年该洋区 XRQA 与最佳路径的 ACE,输出统计表图 |
补录 2014mitag | 查询 IBTrACS 补录中无编号的系统(见「补录查询」) |
补录 2014160N21120 | 按 SID 直接定位,输出路径图与摘要 |
分隔符支持 .、-、/,月/日/时可省前导零(2024.9.5.0 等价于 2024.09.05.00)。
单系统路径图(xrq / 最佳)
参数支持两种写法:
- 系统编号:洋区两位 + 编号两位 + 年份四位(
wp162022= 2022 年 WP 洋区 16 号,即文件名bwp162022去掉b) - 年份 + 名字前缀:
13haiy(两位年份,13 → 2013)或2013haiy(四位年份),不区分大小写;两位年份不晚于今年后两位算 20xx,否则算 19xx(98zeb→ 1998)
名字查询会先列出/下载该年份的存档:查不到会提示改用完整编号;匹配到多个会列出候选(最多 10 个)并要求补充字母或用完整编号。两个指令输出格式一致:
bwp312013 Haiyan 最佳路径
定位:37 条,2013.11.02.06Z — 2013.11.11.06Z
持续:9天0时,路径:6728km
巅峰:170kt 超强台风(ST) @ 2013.11.07.12Z
最低气压:895hPa
ACE:38.19
→ 图片:该系统全路径图(发送成功后自动删除)
bwp312013 Haiyan xrqa路径
定位:48 条,2013.11.01.00Z — 2013.11.12.00Z
持续:11天0时,路径:7732km
巅峰:185kt 超强台风(ST) @ 2013.11.07.18Z
最低气压:数据未提供
ACE:38.46
两个数据源:
- xrq:插件自带 xrqa b-deck(
data/,即原压缩包数据),1949—2026,气压字段缺失时显示「数据未提供」。本地文件没有名字字段,会按同编号向存档查一次名字;查不到显示Noname。 - 最佳:NaTyphoon 存档(1851—2026),按需下载
b<洋区><编号><年份>.dat到临时目录,绘制后连同图片一起删除。名字取文件中最后一次非占位名(INVEST、THIRTYONE之类不算),全程没有名字显示Nameless。
名字统一为首字母大写(HAIYAN → Haiyan)。存档同一时次可能拆成多行(34/50/64kt 风圈各一行),摘要按时间去重后再统计定位数与 ACE。
ACE 规则:仅统计 00/06/12/18 正点、TS / TY / ST / STS / TC / HU / MH 阶段且风速 ≥35kt 的定位,Σ (v/100)²(= v²×10⁻⁴,单位 ×10⁴ kt²)。
本地数据缺失时 xrq 会提示改用 最佳,反之亦然。绘制流程与 drawImage 相同(仅 Windows)。
命名查询
命名 <年份> <洋区代号> 列出该年份、该洋区的全部系统编号与名字。年份支持四位或两位(13 → 2013),洋区代号不区分大小写:
命名 2013 wp
2013 年 WP(西北太平洋)共 33 个系统
01W Sonamu
02W Shanshan
...
- 洋区代号:
WP西北太平洋、EP东北太平洋、CP中太平洋、AL北大西洋、IO北印度洋、SH南半球、SL南大西洋 - 每个代号都收习惯写法:
WPAC/EPAC/CPAC/NATL/SATL/NIO,不区分大小写,所以对照 2019 satl与对照 2019 sl等价 - 南半球可按责任区再分三段:
SWIO西南印度洋(30—90°E)、AUS澳洲区(90—160°E)、SPAC南太平洋(160—240°E),简写sw/si/au/sp同样可用 - 数据来自 NaTyphoon 存档(会走整年缓存),未命名系统显示
Nameless(INVEST以及被字段长度截断的英文数字占位名都算未命名) - IBTrACS 补录一并列出:IBTrACS 有名字、但存档没收录的系统(编号类 458 个 + 无编号 155 个有名字)
也出现在表里——编号类按编号插进主列表并标
※,无编号的单独列 SID(≈bwp…表示 XRQA 另有 扩展编号)。同一系统只出现一次:编号类按编号去重,无编号的与存档轨迹做时空重合 (±6h、≤150km,重合 ≥50% 视为同一场) - 该年没有指定洋区时,会列出这一年的可用洋区代号
补录查询(无编号系统)
data-ibtracs/sid/ 里的系统没有 01W 这类编号,xrq / 最佳 的编号查询摸不到,单独用
补录 指令查。查询写法与 xrq 13haiy 的风格一致(也可用空格分隔):
补录 2014160N21120 按 SID 直接定位,输出路径图与摘要
补录 2014 列出该年全部无编号系统(SID、洋区、名字、定位条数)
补录 2014wp 该年 + 洋区过滤
补录 2014mitag 该年 + 名字前缀;唯一命中时直接画图,多个时列出让用户补充
- SID 是 IBTrACS 的 13 位编号(4 位年份 + 3 位序号 + 半球 + 5 位位置编码),不区分大小写
- 两字母过滤词先按洋区代号理解(
al、io这些前缀撞常见名字时洋区优先),按名字查请多打几个字母 - 名字来自生成补录数据时的 IBTrACS
NAME列(存在.sync.json清单里) - xrqa 交叉对应:xrqa 收录的JTWC 没编号的系统,清单里以
≈bwp602014标注,单系统摘要末尾会提示xrq bwp602014可看再分析路径 - 摘要格式与
xrq/最佳相同,标题注明 IBTrACS 补录;有编号的补录系统(1232 + 1033 个) 存在data-ibtracs/<年份>/下,格式与data/一致,暂无专门指令
逐年 ACE 对照
对照 <年份> <洋区代号> 把该年该洋区的两套数据按系统编号配对,输出一张统计表图:
对照 2013 wp
2013 年 WP(西北太平洋) ACE 对照
共 35 个系统 · XRQA 335.39 / 最佳 274.21 · 差值 +61.18
→ 图片:mth | ID | Name | 最佳(风速/气压/ACE) | XRQA(风速/气压/ACE) | +/-
- 无会话或绘制失败时退回等宽文本表
跨洋区的系统按经纬分段统计:
- 本洋区编号的系统只统计落在本洋区范围内的定位;
- 反过来,别的洋区编号的系统进入本洋区的那一段计入本洋区。
- 这类行单独列出,编号仍是原编号(
01C),名字后面标(WP段),只计本洋区内的定位; - 七个洋区都按经纬边界判定,经度统一折算到 0—360:WP 半岛分界—180°E、CP 180—220°E、EP 220°E—陆桥、IO 30°E—半岛分界、SH 赤道以南 0—300°E、SL 赤道以南 300—360°E、AL 陆桥—0°且严格取赤道以北(南半球另有 SWIO / AUS / SPAC 三个分区,见下一条);
- AL 与 SL 严格按赤道分界,两者不重叠:赤道以南一律归 SL,AL 一个点都不留;赤道本身判给南半球(与
SH/SL的latMax: 0一致)。这条规则的代价是 IBTrACS 的历史遗留要单独处理——它在 2010 年才有SL编码,此前的南大西洋系统一律挂在AL下。2004 年 3 月的卡塔琳娜(Catarina)就是AL 50,23 个定位全在 28.5—29.6°S、41.8—50.1°W,峰值 75kt、最低 981hPa,是南大西洋唯一被广泛承认的飓风。这类文件按首个定位重新判归属:赤道以南的算 SL 本区系统,赤道以北的仍归 AL。所以对照 2004 sl里它是50L Nameless、ACE 4.77,对照 2004 al里不再出现。编号仍沿用50L(与 b-deck 文件名同源,SL编号的后缀是Q,2010 / 2011 的 Anita 与 Arani 是50Q),所以 SL 表里会同时看到50L与50Q两种后缀; - 南大西洋在 ATCF 里有三种写法,都指同一个洋区:
al(2004 的 Catarina,bal502004)、sl(2010 / 2011 的 Anita 与 Arani,bsl502010/bsl502011)、ls(2019 起的巴西海军编号系统,bls012019)。ls与sl字母顺序相反,不特殊处理的话它既进不了 SL 也进不了 AL,会整个消失;现在ls与al一样按首个定位判归属,对照 2019 ls会归一到sl表,编号后缀统一显示Q; - IBTrACS v04r01 的南大西洋列表(
ibtracs.SA.list)只收了 2004、2010、2011 三个系统,之后巴西海军水文中心(CHM)命名的十几个热带 / 亚热带系统一个都没进。data-ibtracs/下按年份人工补了 14 个(2015—2026,文件名blsNNYYYY.txt),路径来自 Steve Young 的月度路径表(australiasevereweather.com.au/cyclones/<年>/trak<两位年><两位月>.htm的S. ATLANTIC一节,以 NRL / NCEP-NCAR 再分析重建为主、KNES 提供逐 6 小时 Dvorak 定强)。编号沿用 CHM 的 TD# 写成 ATCF 形式(b+ls+ 两位序号 + 四位年份),年内按生成先后排:2015 与 2021 各有01Q/02Q/03Q,2019 是01QIba 与02QJaguar,其余年份各一个。名字在src/names.ts的SUPPLEMENT_NAMES里单独维护(不由gen-names.py生成),所以表里显示Iba、Raoni、Akará而不是Nameless; - 补录口径三条:亚热带系统照收,ACE 记 0(
SS/SD不在 ACE 计入集合里,Potira 33 个定位、峰值 40kt,ACE 仍是 0);没有风速的只保留路径,风速列留空、不补推测值(Kurumí、Yakecan、2023 的01Q只有气压,ACE 自然是 0);本区 0 分的行照常列出,不因为「本区 ACE 是 0」删行,否则系统数会少一个。2026 年 2 月那一节里另有一个未命名的DEPRESSION,位置与 Caiobá 相近、疑为同一事件的另一版分析,没有收录; - 站点只发布 1—6 月的月报,7—12 月几乎全 404,所以下半年生成的那批(Deni 2016-11、Eçaí 2016-12、Guará 2017-12、Oquira 2020-12、Ubá 2021-11、Biguá 2024-12)补不到;Mani 2020-06 虽在 1—6 月内,但那几期月报的南大西洋一节是空的。这批只能等 IBTrACS 后续版本收录。重新生成用
python tools/gen-satl.py(--only=2016,2019只刷指定年份,--dry只打印不写盘),文件首行是#注释,tools/sync-ibtracs.py重跑时会跳过、不覆盖也不删; - WP 与 IO 之间不按 100°E 一刀切:马来半岛在 6—12°N 收窄到 98.5—99.5°E,泰国湾一侧(东)属西太、安达曼一侧(西)属印度洋,100°E 直线会把泰国湾的系统错划给印度洋。分界取半岛山脊中线(0°N 103.5°E → 2°N 103.1°E → 4°N 102°E → 6°N 99.95°E → 8°N 98.95°E → 10°N 98.75°E → 12°N 99.25°E → 14°N 100°E,14°N 以北回到 100°E),线以东算 WP、以西算 IO。2001 年的 32W 画眉在马六甲海峡内(1.6°N 103.0°E)转 IO,2018 年的 36W 帕布到 8.8°N 98.5°E 越过攀牙湾才转 IO,而它在泰国湾 8.3°N 99.8°E 的 40kt 仍算西太;
- AL 与 EP 共用中美洲陆桥,不能只按经度划:德州登陆点(28°N 97°W)与东太平洋的 97°W 是同一条经线,中间只隔墨西哥陆地。分界取陆桥中线(0°N 80.5°W → 8°N 80°W → 10°N 84°W → 16°N 91°W → 18°N 94.8°W → 20°N 100.5°W → 25°N 103.5°W → 30°N 105°W),线以西算 EP,以东算加勒比海 / 墨西哥湾(AL)。大西洋系统翻过地峡进入太平洋的(1876 的 04L 带一条 1.36 的 EP 段)会多出一行 EP 段,反向同理;
- 只有相邻洋区之间才可能互相串段:WP ↔ CP、CP ↔ EP、IO ↔ WP、EP ↔ AL。EP 编号的系统可以穿 CP 进入 WP,北印度洋的系统也有从西太生成的(1978 年的 02I、1999 年的 05I 各带一条 WP 段,后者 0.61,其中 11.5°N 99.3°E 的 45kt 定位按半岛分界仍算西太),这些分段同样单独列出;
- 南半球按 WMO 责任区拆成三段,界线是 30 / 90 / 160 / 240°E:
SWIO西南印度洋(30—90°E,RSMC 留尼汪)、AUS澳洲区(90—160°E,达尔文 / 珀斯 / 布里斯班)、SPAC南太平洋(160°E—120°W,楠迪 + 惠灵顿)。SH仍是三段的合计,旧写法照用。南半球的数据文件都叫bsh,没有分区编号,所以归属看轨迹首个定位:首个定位落在本区的按本区系统列(正常行),从别的分区漂进来的按分段行标(AUS段)之类,两边都不会重复计算。 - 同一场台风偶尔会挂两个洋区编号:如 2025 年的 34W Senyar 与 04I Senyar。这种情况下分段行会与本洋区行重复,只保留本洋区那一行,它缺的那一侧从重复文件补过去。
- 还有一种相反的情况:同一系统被拆成两个编号、两段轨迹首尾相接但不重叠。这种按一条统计:ACE 与定位数相加、起止取并集、峰值取大,清单在
src/compare.ts的SYSTEM_SPLITS里维护,只登记人工确认过的,不做自动判定。
版式按数据情况自动切换,共三种:
| 情况 | 版式 | 说明 |
|---|---|---|
| 两套数据都有 | both | 完整六列,带 +/- 差值列 |
| 本地 xrqa 整侧没有该洋区 | bestOnly | 只画最佳一组,表宽 530,表底注明原因 |
| 存档整侧没有该洋区 | xrqOnly | 只画 XRQA 一组,表底注明原因 |
表宽随名字列自适应:名字列默认 172px,遇到 Benjamine (SWIO段) 这种「名字 + 段标」比列宽长时按实测像素加宽(上限 248px,再长交给省略号),整张表跟着变宽,单侧版式因此可能宽于 530。标题在 27px 下放不下时逐级缩到 19px,保证整行显示;单元格一律单行,不会折成两行挤在固定行高里。
只有部分系统缺一侧时保持 both 版式,每一处缺失都单独标出来:
- 缺一侧的编号后面加
*(两源都缺的系统也加,缺的是哪一侧看该侧的-) - 该侧整组单元格铺浅灰底,和完整行区分开
差值一律按两源都有的系统计算。
xrqa 没有名字字段,名字优先取存档
的第 28 列;1999—2000 的 11 列短格式和 1998 及以前的 9 列格式没有名字列,改用 src/names.ts,来自 IBTrACS v04r01 ,
覆盖 AL / EP / CP / WP / IO / SH / SL 七个洋区,共 5604 个编号。这张兜底表在四条路径上都生效:
对照表、命名 列表、按名字查询、单系统摘要
(无名低压仍显示 Nameless)。
IBTrACS 的 ATCF 编号与存档文件名同源(
SH021979↔bsh021979),南半球按季节年编号, 与存档没有错位。
IBTrACS 把合并过的系统记成 A:B(如 PAT:RUTH、BULBUL:MATMO),这类记录要分两种情况处理:
- 一个组合对应多个 ATCF 编号时按编号拆开,各自取属于自己的名字。
- 只对应一个编号时才当作别名:主名在前,另一个名字放括号,显示成
Bulbul (Matmo)。
极少数情况下一个 SID 对应两个 ATCF 编号,于是两个编号会同名。
性质缺失或为 XX 时 ACE 只能退化为按风速判定(≥35kt 且落在 00/06/12/18 正点)。
判定规则
- 存在:查询时刻落在一个系统路径的首条与末条记录之间(含端点)。
- 快照:取距离该时刻最近的一条定位,并列时取较早者。
- 跨年:同时扫描查询年与上一年,年初仍存活的系统不会被漏掉。
- 输出按风速从高到低排序,超过
maxResults只显示风速最高的若干条。
路径图(可选)
打开配置项 drawImage 后,每次查询会额外用 Typhoon4 把查到的系统画在同一张路径图上并发送:
cx 2013.11.07.18
→ 文本:2013.11.07.18Z 共 2 个系统 …
→ 图片:一张含 1331W 与 1330W 全路径的 WPAC 区域图
工作方式:
- 把本次要画的 b-deck 文件复制到独立临时目录,改写
Settings.ini的Dir指向它(同时关掉图例) - 启动
Typhoon4.exe,通过窗口消息触发「打开文件」→「全选」→「确定」,程序自动开始绘画 - 轮询标题栏等待处理完成,触发「保存路径图」并写入文件名
- 关闭程序、还原
Settings.ini、清理临时目录 - 用 GDI+ 把成图等比缩放到
imageWidth宽(原始成图宽 5500–11000px、10–30MB,不适合直接发送) - 文本与图片发送完成后删除临时图片;发送失败则保留并在日志中给出路径
启用条件:
- 仅 Windows(依赖窗口消息与 GDI+)
- 本机已安装 Typhoon4(
typhoon4Dir留空时会在桌面、用户目录等位置有限深度搜索Typhoon4.exe,结果缓存),可从https://www.natyphoon.top/Download/#Typhoon4下载 koffi依赖可正常加载(若没有可以手动安装)
绘制期间会短暂弹出并自动操作 Typhoon4 窗口,不要同时手动操作该窗口;多次查询的绘制任务会自动串行排队。
配置项
| 配置 | 类型 | 默认 | 说明 |
|---|---|---|---|
dataDir | string | 插件内 data/ | b-deck 数据目录(内含年份子文件夹) |
windUnit | kt / ms / both | kt | 风速单位 |
minWindKt | number | 0 | 低于该风速的系统不展示 |
includeInvest | boolean | true | 是否包含 60—69 号扰动临时编号 |
showPosition | boolean | true | 是否附带定位(纬度 经度) |
showSnapshotTime | boolean | true | 快照时间与查询时刻不同步时是否标注 @ |
maxResults | number | 60 | 单次最多展示数量 |
drawImage | boolean | false | 打开后额外绘制查到的系统的路径图并发送 |
typhoon4Dir | string | 空(自动探测) | Typhoon4 程序目录(含 Typhoon4.exe、Settings.ini) |
mapPath | string | 空(沿用 Settings.ini) | 地形图 png 路径 |
imageWidth | number | 1440 | 发送前缩放到的宽度(像素),0 表示不缩放 |
drawTimeout | number | 300 | 单张路径图绘制超时(秒) |
archiveUrl | string | dapiya 存档地址 | 「最佳」指令使用的数据存档地址 |
数据维护
data/ 下按年份分文件夹存放 b<洋区><编号><年份>.txt(ATCF b-deck,来自于xrq自评):
data/
1949/bwp011949.txt …
1979/bsh011979.txt …
2026/bwp012026.txt …
CyanideCN/xrqa_bdeck_data,本地统一转成 .txt + LF。同步用仓库自带脚本:
python tools/sync-xrqa.py --check # 只看差异
python tools/sync-xrqa.py # 浅克隆上游并写入 data/
python tools/sync-xrqa.py --from <已克隆目录> # 不联网,离线同步
脚本只增改不删;
同步完把「系统时间 + 上游 commit + 本次新增/更新数量」写进 data/.sync.json。
更新数据时直接替换对应年份文件夹即可,插件按年份目录的修改时间自动失效缓存,无需重启。
年份范围由 data/ 内实际存在的文件夹决定,指令中的年份超出范围会给出提示。
IBTrACS 补录(data-ibtracs/)
这里补两类「IBTrACS 有、最佳路径存档没有」的系统。
一、有 ATCF 编号、存档没有的 2265 个。 拿 IBTrACS 的 ATCF 编号去对存档目录页的文件清单
(const FN = [...]),1949—2026 年里有 1232 个编号存档没有收录:SH 754、IO 393、WP 65、EP 10、
AL 6、CP 2、SL 2。存档本身从 1949 年才开始,而 IBTrACS 对更早的历史系统回填了 ATCF 式编号
(最早 1851 年),这些编号不可能出现在存档清单里,全部算缺——1949 年前共 1033 个
(AL 790、WP 94、SH 82、IO 67),两类合计 2265 个。
格式与 data/ 完全一致(11 列 b-deck),只是在第 5 列把来源写成 IBTR
data-ibtracs/
1967/bwp371967.txt
1973/bal181973.txt
2015/bls012015.txt # 人工补录(首行 # 注释),IBTrACS 没收录的南大西洋系统
2026/bls012026.txt
sid/1971/1971351S17176.txt # 没有 ATCF 编号的系统,文件名用 SID
.sync.json # 生成时间、来源、每个系统的定位条数
人工补录(14 个,全是南大西洋)。 极少数系统两个源都没有,只能从别处找路径。
IBTrACS v04r01 的 SA 列表只有 2004 / 2010 / 2011 三个,2015 年之后 CHM 命名的系统一个都没收,
路径由 tools/gen-satl.py 从 Steve Young 的月度路径表抓下来写成 b-deck(编号与取舍见
「逐年 ACE 对照」一节)。这类文件首行写 # 注释说明来源与取舍,tools/sync-ibtracs.py
清理旧年份目录时会跳过它们(只删首行不是 # 的 .txt),所以重跑同步不会丢。它们也不计入
.sync.json 的 systems 数(清单里是 2265,磁盘上的 .txt 比它多这 14 个),名字走
src/names.ts 的 SUPPLEMENT_NAMES 而不是生成的 STORM_NAMES。
二、没有 ATCF 编号的 4860 个。 IBTrACS 全量 13631 个系统里,8636 个带 ATCF 编号,另外 4995 个 没有:3993 个在 1949 年以前,1002 个落在 1949—2026。1949 起的这批去掉 135 个属于别的系统的碎片 (见下),实际 867 个;连同 1949 年前的 3993 个,共 4860 个,合计 190652 条定位。
这 4860 个不进年份目录——它们没有编号,所以单独放在
sid/<年份>/<SID>.txt,第 2 列编号写 00,其余字段与上面相同。
碎片指的是 IBTrACS 把一个台风拆成几段 SID 的情况 按 SID 判「无编号」会把这类续报段当成独立系统。脚本用时空重叠剔除:某个无编号 SID 有 30% 以上的定位点落在另一个有编号 SID 的轨迹 100km 内(同一天前后一天),就判为碎片。
1949 年前的 3993 个来自 HURDAT 回算与地方志整理,只有位置没有强度的占多数。
对只有位置没有风速的系统,生成时逐行按下面的顺序回退,两边独立判断, 都没有就写 0 :
风速 USA_WIND → WMO_WIND → CMA_WIND → TOKYO_WIND → HKO_WIND → KMA_WIND
→ NEWDELHI_WIND → REUNION_WIND → BOM_WIND
气压 USA_PRES → WMO_PRES → CMA_PRES → TOKYO_PRES → HKO_PRES → KMA_PRES
→ NEWDELHI_PRES → REUNION_PRES → BOM_PRES
这份数据不参与对照表的统计,只作为备用数据。