【WRFDA数据教程第一期】LITTLE_R 格式详细介绍
目录
- LITTLE_R 格式概述
- LITTLE_R 的结构
- 1-Header Record 详解:观测的“身份证”
- 2-Data Record:观测数据本体
- 3-Ending Record:终止标志
- 4-Tail Integers:尾部校验字段
- 另-Missing Values(缺测值处理)
- Mandatory, Optional, and Unused Fields(必填、可选和未使用字段)
- 1-Header Record
- 2-Data record
- 特殊案例(Special cases)
- GPS PW and ZTD
- 参考
本博客结合WRFDA 在线教程-LITTLE_R Help,对 LITTLE_R 格式进行详细介绍。
LITTLE_R 格式概述
1、定义与背景
LITTLE_R 是一种报文式(report-based)ASCII 文本格式,最初用于 MM5 模型,现在被广泛用于 WRFDA 的观测数据处理。
由于原始观测数据格式千差万别(如:BUFR、PREPBUFR、MADIS、HDF、ASCII等),WRFDA 设计了 LITTLE_R 作为统一格式,中间层转换格式,方便不同数据源统一进入同化流程。
2、优点
- 📄 易读易编辑:纯文本格式,便于人工检查和调试。
- 🔧 结构清晰:由多条“报文”组成,每条报文包括头、数据、结束标志和尾部校验。
- 🔁 可拼接:多个观测站或时间点的数据可直接 cat 合并成一个文件。
LITTLE_R 的结构
LITTLE_R 由观测记录(report)组成。每条观测记录(report)由以下 4 个部分组成:
部分 | 说明 |
---|---|
Header Record | 头信息,如位置、时间、平台类型、标志位等 |
Data Records | 真正的观测数据(可多层,例如探空) |
Ending Record | 用 -777777.00000 标记数据结束 |
Tail Integers | 旧版格式遗留的校验字段,但仍被 WRFDA 用于冲突选择 |
1-Header Record 详解:观测的“身份证”
Header 是最重要的一部分,它定义了该条观测的类型、位置、时间、来源等核心元信息。每一条观测都必须有 header。
观测数据字段说明表(部分)
字段名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
Latitude / Longitude | F20.5 | ✅ | 地理位置 |
Platform | A40 | ✅ | 平台类型,如 FM-35 TEMP 代表探空 |
Elevation | F20.5 | ⚠️看类型 | 海拔(部分平台必须) |
Date | A20 | ✅ | 格式为 YYYYMMDDhhmmss |
PW / QC | F13.5 / I7 | ✅(仅 GPS) | GPSPW 或 GPSZTD 的核心数据 |
Is bogus? | L | 可选 | 标记是否为“虚拟”观测 |
Discard? | L | 可选 | 是否丢弃该观测 |
其他 | 多个 | 视具体平台而定 | 如 SLP、Temp、RH 等,都要按顺序保留字段位置 |
⚠️ 注意:即使字段未使用,也不能省略,必须用占位符(如
-888888.00000
)或者空格填充。
示例解析:探空气球报文(FM-35 TEMP)
39.78000 -104.86000 72469 DENVER/STAPLETON INT., CO. / U.S.A.
FM-35 TEMP GTS (ROHK) UKUS09 KWBC 051200 RRA
1626.00000 1 -888888 -888888 890 -888888 ...
20080205120000 ...
- 39.78000, -104.86000 是经纬度
- 72469 是站号
- FM-35 TEMP 指的是探空气球数据
- 20080205120000 是 UTC 时间
- 其他字段用
-888888
占位
2-Data Record:观测数据本体
格式说明
每条数据记录对应一个垂直层(例如探空的某一高度层),字段包括:
字段 | 单位 | 格式 | 说明 |
---|---|---|---|
Pressure | Pa | F13.5 | 压强 |
Height | m | F13.5 | 高度 |
Temp | K | F13.5 | 温度 |
Dew Point | K | F13.5 | 露点 |
Wind Speed | m/s | F13.5 | 风速 |
Wind Direction | deg | F13.5 | 风向 |
RH | % | F13.5 | 相对湿度 |
U / V | m/s | F13.5 | 风的分量 |
QC | N/A | I7 | 每项都配一个质量控制标志(QC) |
⚠️ 规则:
- 每个数据层至少需要包含 两个有效字段,其中一个必须是 Pressure 或 Height。
- 缺失字段必须填
-888888.00000
和 QC 值-88
或0
。
示例:Denver 探空(节选)
83500.00000 0 -888888.00000 0 264.44998 0 263.35001 0 ...
72100.00000 0 -888888.00000 0 257.85001 0 256.14999 0 ...
表示两个垂直层:
- 压强分别为 83500Pa 和 72100Pa
- 有温度和露点数据
- 其他字段缺失
3-Ending Record:终止标志
每条观测的最后一层是一个终止记录,一般格式如下:
-777777.00000 0 -777777.00000 0 -888888.00000 0 ...
这告诉 OBSPROC:“这条观测数据结束了”。
4-Tail Integers:尾部校验字段
这是 LITTLE_R 的最后一行,格式为:
39 0 0
含义如下:
字段 | 说明 |
---|---|
第1个 | 有效字段数 |
第2个 | 错误数 |
第3个 | 警告数 |
虽然这些字段在现代 WRFDA 中用途不多,但 OBSPROC 仍然会用它们来决定“保留哪条观测”(例如当多个观测重复时优先保留字段数多的)。
另-Missing Values(缺测值处理)
LITTLE_R 是一种无分隔符的文本格式,每个字段在固定位置,即使字段没有数据、未被使用,也必须保留位置,否则解析失败。
因此,即使某个字段没有观测值,也必须填写“缺测值”标志,常见缺测值如下:
- 对于浮点数字段(如温度、压强等):使用 -888888.00000
- 对于 QC(质量控制)标志字段(整数):可以用 -88 表示缺测
- 对于文本字段(如 ID、名称):用空格填满
实用解释:
- 由于 LITTLE_R 是 定宽格式(fixed-width),字段之间没有逗号、空格、Tab 等分隔符,字段缺失会导致数据错位,因此必须填上缺测值。
- OBSPROC 会识别 -888888.00000 为缺值,而不是误认为是实际观测。
Mandatory, Optional, and Unused Fields(必填、可选和未使用字段)
1-Header Record
观测数据字段说明表总结如下:
字段名称 | 字段类型/宽度 | 字段描述 | 是否必填 | 示例 | 说明 |
---|---|---|---|---|---|
纬度 (Latitude) | F20.5 | 观测点的十进制度纬度,相对于赤道 | 必填 | 31.12000 | 北纬为正,南纬为负。范围为 [-90.00000, 90.00000] |
经度 (Longitude) | F20.5 | 观测点的十进制度经度,相对于本初子午线 | 必填 | 31.12000 | 西经为负,东经为正。范围为 [-180.00000, 360.00000];若值在 180–360 之间,将在重新编码时减去 360 |
ID | A40 | 观测的标识符 | 可选 | 3009S 13625E | 可用于浮标观测中包含海拔信息;若为 SATOB(FM-88)观测且包含 “AVHRR”,WRFDA 将其视为 POLARAMV 观测;其他情况仅用于人工识别 |
名称 (Name) | A40 | 观测名称 | 可选 | LINZ/HOERSCHINGFLUGHAFEN / AUSTRIA | 若包含 “MODIS”,WRFDA 将其视为 POLARAMV 观测;其他情况用于描述观测点名称 |
平台 (Platform,FM代码) | A40 | 观测的 FM-code 和平台描述 | 必填 | FM-97 AIREP | 前三位必须为 “FM-”,接着是有效的FM码(3位数或2位数加空格),剩余字符可为任意文本描述平台 |
来源 (Source) | A40 | 观测数据来源 | 可选 | MADIS NOAA Profiler Network NWS N | 仅用于人工识别,可描述数据流或平台来源 |
海拔 (Elevation) | F20.5 | 观测点的海拔高度(米) | 部分必填 | 1626.00000 | 某些观测类型必须填写,详见观测类型说明 |
有效字段数 (Valid fields) | I10 | 观测中有效字段的数量 | 未使用 | 5 | - |
错误数 (Errors) | I10 | 写入观测时报告的错误数量 | 未使用 | 0 | - |
警告数 (Warnings) | I10 | 写入观测时报告的警告数量 | 未使用 | 0 | - |
序列号 (Sequence number) | I10 | 此类观测的顺序编号 | 可选 | 523 | 用于合并重复观测时作为“决胜因素”之一,数字小者为较新观测 |
重复数 (Duplicates) | I10 | 重复观测的数量 | 未使用 | 0 | - |
是否为探空 (Is sounding) | L10 | 若观测包含多个层级,则为真 | 未使用 | F | - |
虚假观测 (Bogus) | L10 | 若观测为“虚构”数据,则为真 | 可选 | T | 用于内部质控,不适用于虚假观测 |
是否丢弃 (Discard) | L10 | 若观测应被丢弃,则为真 | 可选 | F | 指定该观测不应被使用,将不会写入WRFDA格式文件 |
Unix 时间戳 (Unix Time) | I10 | Unix 时间戳(秒) | 可选 | 1497388306 | 用于合并重复观测的“决胜因素”之一 |
儒略日 (Julian Day) | I10 | 儒略日 | 可选 | 2457918 | 同上 |
日期字符串 (Date string) | A20 | 日期字符串(YYYYMMDDhhmmss) | 必填 | 20080205120000 | 用于检查是否在 namelist 指定的时间窗口内 |
海平面气压/质控 (Sea level pressure/QC) | F13.5 / I7 | 海平面气压(Pa)及其质控标志 | 可选 | 100459.85900 / 0 | 虚假观测(FM-135)可选,其它观测不使用 |
参考气压/质控 (Reference pressure/QC) | F13.5 / I7 | 参考气压(Pa)及其质控标志 | 部分必填 | 100000.00000 / 0 | SATEM(FM-86)必须填写,用于位势厚度计算 |
地面温度/质控 (Ground temperature/QC) | F13.5 / I7 | 地面温度(K)及其质控标志 | 未使用 | 288.50000 / 0 | - |
海温/质控 (SST/QC) | F13.5 / I7 | 海表温度(K)及其质控标志 | 未使用 | 275.80000 / 0 | - |
地面气压/质控 (PSFC/QC) | F13.5 / I7 | 地面气压(Pa)及其质控标志 | 可选 | 98150.00000 / 0 | 对 METAR(FM-15,16),若 calc_psfc_from_QNH=true,此项为 QNH(高度计设定值),OBSPROC 将根据其计算地面气压。探空类观测用于一致性检查 |
降水量/质控 (Precipitation/QC) | F13.5 / I7 | 累积降水量(cm)及其质控标志 | 未使用 | 1.80000 / 0 | - |
最高温/质控 (Max temp/QC) | F13.5 / I7 | 日最高温度(K)及其质控标志 | 未使用 | 305.10000 / 0 | - |
最低温/质控 (Min temp/QC) | F13.5 / I7 | 日最低温度(K)及其质控标志 | 未使用 | 249.00000 / 0 | - |
夜间最低温/质控 (Min night temp/QC) | F13.5 / I7 | 夜间最低温度(K)及其质控标志 | 未使用 | 249.00000 / 0 | - |
3小时气压变化/质控 (3H pressure tendency/QC) | F13.5 / I7 | 3小时气压变化(Pa)及其质控标志 | 未使用 | 150.00000 / 0 | - |
24小时气压变化/质控 (24H pressure tendency/QC) | F13.5 / I7 | 24小时气压变化(Pa)及其质控标志 | 未使用 | -400.00000 / 0 | - |
云量/质控 (Cloud cover/QC) | F13.5 / I7 | 云量及其质控标志 | 可选 | 0.00000 / 0 | SATEM(FM-86)可选;值 >10 的观测将视为“多云”,被拒绝;其他类型不使用 |
云底高度/质控 (Ceiling/QC) | F13.5 / I7 | 云底高度(米)及其质控标志 | 未使用 | 4342.00000 / 0 | - |
可降水量或ZTD /质控 (PW or ZTD / QC) | F13.5 / I7 | 可降水量或总延迟(ZTD)及其质控标志 | 部分必填 | 3.04000 / 0 | GPSPW(FM-111)与 GPSZTD(FM-114)必须填写,单位为厘米,质控单位为毫米的十分之一;其他观测不使用;这是唯一可真正省略的字段 |
字段类型说明:
- Fxx.x 表示浮点数,xx为总宽度,x为小数位数。
- Axx 表示文本字段,xx为最大字符数。
- Ixx 表示整数,xx为最大位数。
- Lxx 表示逻辑型(布尔值:T/F)。
质控字段 (QC):
- 多为整数,表示对应观测值的质量控制标志。通常为 0 表示无错误。
2-Data record
各变量的缩写总结如下:
- P:压力(pressure)
- H:高度(height)
- T:温度(temperature)
- Td:露点温度(dew point temperature)
- RH:相对湿度(relative humidity)
- Sp:风速(wind speed)
- Dr:风向(wind direction)
- U/V:风速的分量(风向量)
- Th:位势高度(geopotential height)
观测类型变量要求详细解释
编码 (Code) | 观测类型 (Obs Type) | 必填变量 (Mandatory) | 可选变量 (Optional) | 不使用变量 (Unused) | 备注说明 |
---|---|---|---|---|---|
FM‑12 / FM‑14 | SYNOP / SYNOP MOBIL | P(气压)和/或 H(高度) | Sp(风速)、Dr(风向)、T(温度)、RH(相对湿度)† | Td(露点温度)、U/V(风向量)、Th(位势高度) | - |
FM‑13 | SHIP | P 和/或 H | Sp、Dr、T、RH† | Td、U、V、Th | 若观测气压 < 850 hPa,将被丢弃 |
FM‑15 / FM‑16 | METAR / SPECI | P 和/或 H | Sp、Dr、T、RH† | Td、U、V、Th | - |
FM‑18 / FM‑19 | BUOY(浮标) | 无 | P、H、T、Td、Sp、Dr、U、V、RH† | Th | 若头部记录中包含地面气压和海拔,则不论是否包含其他字段,观测都会被使用 观测气压<850 hPa将被丢弃 |
FM‑32~FM‑34 | PILOT(探空) | P 和/或 H | Sp、Dr | T、Td、U、V、RH、Th | - |
FM‑35~FM‑38 | TEMP(探空) | P 和/或 H | Sp、Dr、T、Td、RH | U、V、Th | - |
FM‑42 | AMDAR(飞机) | P 和/或 H | Sp、Dr、T、Td、RH† | U、V、Th | 若飞机高度高于地面 3000 米,将转换为气压 |
FM‑86 | SATEM(卫星) | P、H、Th | 无 | T、Td、Sp、Dr、U、V、RH、Th | - |
FM‑88 | SATOB(卫星) | P、Sp、Dr | 无 | H、T、Td、U、V、RH、Th | - |
FM‑96 / FM‑97 | AIREP(飞机报告) | P 和/或 H | Sp、Dr、T、Td、RH† | U、V、Th | 同 AMDAR,飞机高度 > 3000 米将转换为气压 |
FM‑101 | TAMDAR(飞机) | P 和/或 H | Sp、Dr、T、Td、RH | U、V、Th | - |
FM‑111 | GPSPW(GPS 可降水量) | 无 | 无 | 所有其他字段 | 可降水量数据存储于头部,详见相关章节 |
FM‑114 | GPSZD(GPS 总延迟) | 无 | 无 | 所有其他字段 | 同上,ZTD 数据存储于头部 |
FM‑116 | GPSRF(GPS 折射率) | P、H、T、Td(折射率)、RH(折射角×1e7) | 无 | U、V、Sp、Dr | 仅 P、H、T、Td、RH 被 WRFDA 使用;其他字段用于定位和轨迹信息 |
FM‑121 | SSMT1(卫星微波) | P 和/或 H | T | 其他所有字段 | - |
FM‑122 | SSMT2(卫星微波) | P 和/或 H | T | 同上 | - |
FM‑132 | PROFILER(廓线仪) | P 和/或 H | Sp、Dr | T、Td、U、V、RH、Th | - |
FM‑133 | AIRSRET(AIRS 反演) | P 和/或 H | T、Td、RH | Sp、Dr、U、V、Th | - |
FM‑135 | BOGUS(虚构观测) | P 和/或 H | Sp、Dr、T、Td、RH† | U、V、Th | - |
FM‑281 | QSCAT(散射计风) | H、Sp、Dr | 无 | 所有其他字段 | - |
🚨 特别注意
†
:相对湿度 (RH) 仅在该观测包含 P 和 T 时才会被使用。这是因为要计算饱和水汽压(进而计算 RH),需要气压和温度。- 若某些观测类型的必需变量缺失,则该观测可能会被丢弃或忽略。
- GPS 类型观测(FM‑111、114、116) 有特殊处理方式,数据主要存储在观测头部中,而不是常规变量字段。
特殊案例(Special cases)
在 LITTLE_R 格式中,GPSPW(GPS可降水量) 和 GPSZTD(GPS天顶总延迟) 两种观测类型有 特殊处理方式。
由于 LITTLE_R 是一个较老的格式,它在设计时尚未考虑这些现代观测类型,因此在处理这两种观测类型时采用了与常规观测不同的结构和字段使用方式。
GPS PW and ZTD
GPSPW(GPS Precipitable Water) 和 GPSZTD(Zenith Total Delay)的处理逻辑如下:
观测类型 | 描述 |
---|---|
GPSPW | GPS 获取的大气中可降水量,单位为厘米(cm) |
GPSZTD | GPS 获取的天顶总延迟,单位也是厘米(cm) |
处理特点:
- 观测值(PW 或 ZTD)不是存储在普通的“数据记录”中,而是存储在头部(header)。
- 观测值字段:使用的是
PW or ZTD
字段(单位:cm) - 质控(QC)字段:记录观测误差,单位为毫米的十分之一
📌 举例:如果观测误差为 1.5 mm,则 QC 字段存储为
15
;3.0 mm 的误差存储为30
示例 1:GPSPW 观测数据(3.04 cm)
- Lat/Lon:30.40742, -91.18026
- 平台 Platform:FM-111 GPSPW(代表 GPS 可降水量)
- Elevation:20.91 m
- PW 值:3.04 cm(存在头部字段中)
- QC 值:0(说明误差为 0)
- 其他所有字段(如风速、风向、露点温度等)被标记为未使用,使用
-888888
占位。
LITTLE_R 格式对应数据如下:
30.40742 -91.1802600001 1LSU FM-111 GPSPW HOURLY_PWV.LLH 20.91000 0 0 0 0 0 F F F 0 36 20080205114500-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888 3.04000 0-888888.00000-888888101180.00000 0 20.91000 0 295.04999 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0
-777777.00000 0-777777.00000 0 1.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 01 0 0
示例 2:GPSZTD 观测数据(250.20 cm)
- 平台 Platform:FM-114 GPSZTD(代表 GPS 天顶总延迟)
- ZTD 值:250.20 cm(同样记录在头部字段)
- QC 值:0(表明没有记录误差)
- 同样,其他字段(风速、风向等)都使用
-888888
占位。
LITTLE_R 格式对应数据如下:
30.40742 -91.18026Fake observation for GPSZTD test Fake observation for GPSZTD test FM-114 GPSZTD Fake observation for GPSZTD test 20.91000 0 0 0 0 0 F F F 0 36 20080205111500-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888-888888.00000-888888 250.20600 0-888888.00000-888888101180.00000 0 20.91000 0 295.04999 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0
-777777.00000 0-777777.00000 0 1.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 0-888888.00000 01 0 0
注意:250.20 cm 实际在文件中以 250.20600 的浮点数形式存储