一张总览 :机场天气的"广播系统"------观测 · 报现在 :METAR(每小时一条)、SPECI(突变即插播);预报 · 说未来:TAF(管未来 24/30 小时)。
上一篇我们用十行代码,把全中国 39 个机场的实时天气画上了地图。地图上的每个圆点背后,都是一条这种模样的电码:
yaml
METAR ZUCK 221000Z VRB01MPS 5000 -RA BR FEW002 SCT006 OVC030 21/21 Q1016 NOSIG
这一篇不写代码。我们蹲到电码的身后去,看这套系统本身。
想象你守着一个机场的气象发布频道,看一整天:整点一到,例行天气报准时到来,一天二十四班按点发;两班之间天气突变,插播随时插进来;固定的几个时刻,还会送来一份未来一整天的预报"剧本";天气要是敢不按剧本走,新的剧本随时重写一份再发。
这就是机场气象的全部通知系统------METAR、SPECI、TAF 三种报文。语法骨架全球统一,这套骨架用了半个多世纪;每个整点都有上千条例行报在全球同时发出。这一篇把它们一次讲明白:谁发、何时发、怎么读。
一、先分清:观测与预报,对内与对外
三种报文的分工,先看一条主线:观测报"现在是什么",预报报"接下来会怎样"。METAR 和 SPECI 属于前者,是观测员和自动观测设备对当下天气的抄录;TAF 属于后者,是气象台对未来 9 到 30 小时的预判------为什么是个区间,第四节细说。
再补一层多数人不知道的结构------每种观测报其实都有"对内""对外"两个版本:
| 报告 | 发给谁 | 主要用途 |
|---|---|---|
| 本场例行报告 | 仅本场内部 | 进出港航空器;塔台循环播放的 ATIS 语音情报(自动终端情报服务)取自它 |
| METAR | 全世界 | 飞行计划、气象广播 |
| 本场特殊报告 | 仅本场内部 | 同例行------事件触发的突发版 |
| SPECI | 全世界 | 同 METAR:飞行计划、气象广播 |
你平时能免费拿到的,永远是对外版。对内对外有个小差别可以当冷知识记着:本场版多一个场面气压 QFE(跑道面上的气压),对外版给的是修正海压 QNH(统一换算到海平面,全球可比)------对外传播要的是可比性。
规矩由两家组织的三份文件分着管:国际民航组织(ICAO)的附件三管"发什么、何时发",世界气象组织(WMO)的 306 号电码手册管"长什么样"、49 号技术规则管观测与发布的细节------全是公开文件,谁都可以查。统一语法之下,各国还有自家编报细则(美国 FMH-1、中国 AP-117),也就是后面要出场的"方言字典"。
二、METAR:像钟表一样的例行报
METAR(Aviation Routine Weather Report,例行航空天气报告)是这套系统的钟摆。全球几千个机场,全天 24 小时,至少每小时一条,整点准时发布;有些区域协议改成每半小时一条。开头那条重庆江北(ZUCK)的报文,就是 22 日 10:00 的例行班------报文里的时间一律是世界时 UTC,北京时加 8,下文不再重复。逐组怎么拆,上一篇的 90 秒对照表讲过,这里不重播------没读过的读者记住一条就够:每个组各管一个要素,位置固定,全文到处都在用。本篇补三件上一篇没讲的:
它是给电传打字机时代设计的。 报文诞生在按字符计费的电报线路上:能省一个字符就省一个字符。所以它没有标点、全是缩写、每个组固定位置固定含义------21/21 不需要任何说明,在温度位置就是温度:斜杠前是气温、后是露点(空气凉到开始结水的温度,两个数越近,空气越湿;21/21 就是湿透了)。省字符的另一面是人读机读两用:人眼按位置认,程序按位置切,半个多世纪下来两边都没换过格式。
自动站也发报。 全自动观测设备发布的报文带 AUTO 标志,告诉你这条不是人工观测------读数时心里多留一分:它出自机器之手。
要素顺序就是读法。 风向风速、能见度、跑道视程(RVR,沿跑道能看多远------低能见度时它比气象能见度更关键)、现在天气、云、温度露点、气压------从左到右一路读下去就是标准的读报顺序,最后可以挂一段未来两小时的趋势(第五节揭底)。其中云那一组值得多看一眼:云量分四档------FEW 少量、SCT 疏云、BKN 成片、OVC 铺满------档位翻转正是第三节插播的触发条件之一,先把这四个词混个脸熟。
这条报文的读法:报头三组------METAR(类型)、ZUCK(站名)、221000Z(时刻);要素四组------VRB01MPS(风)、5000(能见度)、21/21(温度露点)、Q1016(气压)。固定位置,固定含义。
三、SPECI:天气不等整点
看这条真实报文,注意时间:
ruby
SPECI KJFK 131714Z 36008KT 10SM -RA FEW006 BKN010 BKN023 BKN140 OVC250 23/21 A2988 RMK AO2 RAB13 P0000 T02280211 $
17:14------不在整点上。备注段(RMK,第七节细说)里的 RAB13 说明雨是 17:13 开始下的:这一条,雨开始一分钟后插播就发出去了 (10SM 是能见度 10 英里,美国报文用英里不用米;RMK 后面的 AO2、P0000 是美国自动站的记号------设备型号、小时降水量 0.0 英寸,第七节再看它;结尾那个孤零零的 $ 是维护指示符------自动站自检说该检修了,数据要留个心眼)。这就是 SPECI(Aviation Special Weather Report,特殊航空天气报告):例行报按钟点走,特殊报按事件走,天气什么时候达标,报文什么时候插进来。
时间轴 :17:00 例行 METAR 照常发布 → 17:13 开始下雨 → 17:14 SPECI 插播发出 → 18:00 例行照常。
达标标准是一张公开的清单,条目分两级:"应发"(标准里的强制条款,达到就必须发)和"宜发"(标准里的建议条款,各国可自行采用、调整阈值)。翻译成大白话:
| 变化 | 触发线(较最近一份报告) | 级别 |
|---|---|---|
| 风向 | 转了 60° 以上,且变化前和/或后风速 ≥10KT(约 5 米/秒) | 应发 |
| 风速 | 变化 ≥10KT | 应发 |
| 天气现象 | 冻降水、中到大降水、雷暴的开始、停止或变强度 | 应发 |
| 低云 | 450 米以下云层的量级档翻转(SCT 疏云 ↔ BKN 多云 / OVC 阴天) | 应发 |
| 能见度 | 穿越 800 / 1500 / 3000 米档 | 宜发 |
上一篇埋的伏笔在这里兑现:CB 是雷暴母体,而雷暴的开始、停止、变强度正是"应发"级的插播理由------CB 现身,常常伴随一场插播。表里那句"变化前和/或后"也别被绕晕:变化前后有一边风速达标,就算数。最后要交代的是这张表的出身:它节选自国际标准,各国的清单可以定得更宽------美国任何降水一开始就够发 SPECI,上面那条 KJFK 的小雨就是这么来的。
两个容易被忽略的点。其一,SPECI 和 METAR 的语法一模一样------同样的组、同样的顺序,区别只在发布时机。所以上面那条 KJFK,内容上你按 METAR 的读法读就行。其二,有个例外照顾班次密的站:已经每半小时发一次 METAR 的机场,可以不再对外发 SPECI(本场特殊报告照发)。这就是为什么有些机场的数据流里你永远见不到 SPECI------不是天气好,是班次密。
恶化和好转的待遇还不一样:代表天气恶化的 SPECI,观测完立即发出;代表好转的,标准做法是等变化持续 10 分钟再发。坏消息立即、好消息等十分钟------系统优先保证坏消息跑得快。
(抓数据时会撞上一个坑:上面这条按原始发布形态带着 SPECI 头;IEM 这类存档源会把开头的类型词剥掉,剩下的正文和 METAR 毫无差别------那时你主要靠"时刻不在整点"这类指纹反推它是插播。当然,这招只对整点发例行的机场灵,半小时制的站本来就不在整点发。)
四、TAF:未来 9--30 小时的剧本
TAF(Terminal Aerodrome Forecast,机场预报)是三种报文里唯一整份都在说未来的。把它当一份剧本来读,所有语法就都通了------剧本只有四种时间动作:
| 动作 | 电码 | 语义 |
|---|---|---|
| 整段重写 | FM | 到点翻页,此前一切作废 |
| 过渡变化 | BECMG | 窗口内某刻切换,此后新况接棒,没提到的要素沿用旧值 |
| 短暂波动 | TEMPO | 窗口内间歇发作,每次不到一小时,基况不变 |
| 备选剧本 | PROB30/PROB40 | 三成/四成概率成立的备选情节 |
拿一条真实的上海浦东预报逐段过一遍:
yaml
TAF ZSPD 182127Z 1900/1924 12004MPS 6000 BKN013 TX26/1906Z TN21/1920Z
BECMG 1916/1918 07004MPS PROB30 TEMPO 1904/1910 2500 SHRA BR BKN007 FEW030CB OVC040
| 段落 | 原文 | 人话 |
|---|---|---|
| 发布时刻 | 182127Z | 18 日 21:27(世界时)发出------例行班点在 21 点,发出时刻滞后班点几十分钟属常态,仍是例行 |
| 有效期 | 1900/1924 | 管 19 日 00:00 到 24:00 整整一天------这是一份 24 小时有效期的预报 |
| 基况 | 12004MPS 6000 BKN013 | 东南偏东风 4 米/秒,能见度 6 公里,多云 1300 英尺 |
| 气温极值 | TX26/1906Z TN21/1920Z | 最高 26°(19 日 06 时)、最低 21°(19 日 20 时) |
| 过渡 | BECMG 1916/1918 07004MPS | 19 日 16--18 时之间风向转东北偏东、风速不变量级------只列风,其他沿用 |
| 备选 | PROB30 TEMPO 1904/1910 ... | 三成概率:19 日 04--10 时间歇阵雨,2500 米、多云压到 700 英尺、带 CB |
顺带一条读法规律:云组的末三位是云底高,按百英尺读------BKN013 就是 1300 英尺,BKN007 就是 700 英尺。
和 METAR 比着看,结构差异一目了然:多一节有效期组 (METAR 是即时的,不需要);没有温度露点和气压,只报 TX/TN 最高最低气温;没有备注段;结尾常带一个 = 作终止符(它为什么是个句号,第七节揭底)。
有效期有 24 小时和 30 小时两种,同一个机场用哪种,是随着民航局的部署一批批切过来的------中国一线大机场已经陆续切到 30 小时,这是个仍在推进的切换。国际标准还允许最短 6 小时的短预报(中国不发,中国最短 9 小时)。发多勤也跟着有效期走:短于 12 小时的预报每 3 小时一班、更长的每 6 小时一班------中国的 24/30 小时都在长报这一档。发长报的中国机场,例行班在世界时 03/09/15/21 点,换算成北京时是 11 点、17 点、23 点、凌晨 5 点,发出后 3 小时生效------你早上出门前查到的那份管全天的剧本,是凌晨 5 点写好的。
五、METAR 尾巴上的"迷你 TAF"
还记得第一条例文末尾的 NOSIG 吗?现在可以揭底了:METAR 和 SPECI 的尾巴上,可以挂一段趋势预报 ------未来两小时内的显著变化,语法和 TAF 的变化组是同一家族。NOSIG(No Significant Change)就是趋势预报里的"没戏可加,维持现状"。
再看一条带剧情的:
objectivec
METAR OMDB 140927Z 30010KT CAVOK 40/20 Q1007 BECMG 30013KT
迪拜的观测:现在 300 度风(西北偏西)、风速 10KT------KT 是节,10 节合 5 米/秒左右;CAVOK 是一组顶三组的好天气简报:能见度、天气、云全部合格;40/20 是气温露点。然后 BECMG 30013KT:两小时内风向不变,风速渐增到 13 节。观测说的是现在,尾巴上捎了一句未来。
把三种报文放到同一条时间轴上,这套系统的设计就完整了:
观测每小时一格地记录现在,趋势预报把每格向前延伸两小时,TAF 把剧本铺到 9--30 小时外------过去有档可查,现在有报可读,未来有据可循。三种报文,接力覆盖整条时间轴。
六、报文也返工:COR、AMD、CNL、NIL
人和系统都会出错,天气更会------剧本再稳,也有跑偏的时候。四种修正词各有分工:
| 词 | 全称 | 语义 | 真实例文 |
|---|---|---|---|
| COR | Correction | 发错了,改字重发(观测、预报两侧通用) | TAF COR ZLLL 200315Z 2006/2106 16003MPS 6000 NSC BECMG 2010/2011 3000 FU BECMG 2102/2103 6000 |
| AMD | Amended | 天气变了,预报重写 | TAF AMD ZBSJ 042231Z 0500/0524 33004MPS 5000 BR NSC TX30/0506Z TN15/21Z |
| CNL | Cancelled | 这份预报整份作废------取消也算一次修订动作,所以例文头上还挂着 AMD | TAF AMD ZBAD 030800Z 0306/0406 CNL= |
| NIL | Nil | 这个时段没有报 | TAF ZSAM NIL= |
两个语法彩蛋:NIL 站在有效期组 的位置上,CNL 站在风组 的位置上------连"没内容"都要按格式占座;作废的 CNL 甚至把有效期原样保留着(看上面那条例文)。对了,AMD 那条例文里的 TN15/21Z 少了日期,不是抄漏------那是中国预报的一种短形态"方言",第七节细说。而 TAF 的修订不走例行钟点,天气什么时候够得上修订标准,AMD 什么时候发------所以报文头的 AMD/COR 才是"返工过"的铁证,发布时刻只能当辅助线索。
七、进阶:报文里藏了什么
以上是标准语法。真实世界里流转的报文,还藏着不少标准里读不出来的东西------每一件都是解析器的坑,也是这套系统的年轮。
晴,有四种晴法。 SKC(美国人工观测,天全空)、NSC(没有够格上报的云------1500 米以下无云、也没有 CB/TCU(雷暴家族的积雨云和浓积云),更高处可能有)、NCD(自动站没探测到云)、CLR(美国自动站口径:只对 12000 英尺以下负责)------四个码都表示"没报云",语义互不等价。同一片天空,换个观测方式换个国家,报文就不一样。
斜线是语言,不是乱码。 看这条挪威站的实录:
ruby
METAR ENSL 120850Z AUTO 18020KT //// NSC ///// Q//// W///S4
//// 能见度缺测、Q//// 气压缺测------斜线的个数 决定它替谁占座(两位是天气、三位是云高、四位是能见度);这条里 /////(五位)连温度露点也缺了,W///S4 则是海边站加报的海况组。云还有半缺的形态,比如 BKN///------有云,但高度测不到。缺测不等于"没这项"------是"这项测不到"。明说缺什么,本身就是信息。
RMK 是各国的外挂槽。 国际标准管到正文为止,RMK 往后是各国自加的备注段------多数国家的报文根本没有这一段。看 KJFK 那条的尾巴:正文报 23/21(整度),备注里 T02280211 是 22.8/21.1(T 后前四位气温、后四位露点,末位藏小数);第三节的 AO2、P0000 也停在这个槽里。这是设计出来的双轨:正文用粗精度换全球互操作,高精度细节塞进本国备注------改国际语法要走全球协调,外挂槽谁想加谁加。
单位跟组走,不跟报文走。 美国报文气压写 A3011(英寸汞柱,隐含小数点:30.11 inHg),世界其余地方写 Q1005(百帕);风速有 KT 有 MPS;跑道视程默认米、北美后缀 FT;能见度一边是 4 位千米制、一边是英里分数档。同一份报文里单位可以混着来,读每组前先看它的单位后缀。
方言与磨损。 真实数据里什么都有:美国把混分数能见度 1 1/4SM 写成带空格的一个组;抄录噪声能把气压抄成 Q10054(多一位);俄罗斯站的跑道状态组带自家后缀 CLRD62;中国机场的预报也偶尔发"方言"------有效期不带斜杠、气温组省日期的短形态。花样见得越多,标准的边界反而看得越清。
= 是句号。 报尾那个等号是电传线路的报文终止符。今天它还在,纯惯性------一个电报时代的技术细节,成了每条报文的落款。
八、自己读一条报文:三步心法
讲了这么多系统,收个实用的尾。拿到任何一条报文,三步走:
-
定身份:报头看类型词和修正词(TAF?AMD?COR?)、站名四字码、发布时刻;
-
定时间:一切时刻都是世界时,北京时加 8;预报先看有效期,再谈内容;
-
读要素:按固定顺序从左到右------风、能见度、跑道视程、天气现象、云、温度露点、气压------每个组先认位置再看单位。
标准文本全部公开:ICAO 附件三、WMO 306 电码手册、WMO 49 技术规则,网上都能找到;历史报文在 IEM(Iowa Environmental Mesonet)等存档机构免费躺着二十多年,上一篇取数讲过,不再展开。
最后把一条边界说清楚:这一篇教你读懂报文说了什么,不教你研判天气------报文是载体,预报的解读和使用是另一门课。
九、收尾
上一篇的地图圆点、这一篇的三种报文,中间差的只是一层翻译------把电码翻成人话,正是 metweave 在做的事。SPECI 怎么插进实况、TAF 的剧本怎么画成时间线,系列后面的应用篇逐个展开。
下一篇:METAR/SPECI 实况应用------看这套翻译机怎么把两种观测报变成界面上的卡片。系列路线在第一篇开头,我们篇篇见。
YaoJaro · 独立开发者,正在造 metweave------把公开气象数据编织成可嵌入产品的图。
系列会一直写下去,欢迎在掘金关注 @MetWeave。