目錄
- 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 的浮點數形式存儲