Prepbufr 格式数据介绍及解码Prepbufr的背景及介绍PrepBUFR是NCEP在WMO BUFR格式的基础上,对码表内容进行扩充的数据格式,不仅包含观测数据,还包含观测误差、背景场等信息。该格式目前是NCEP业务模式与同化系统(GSI)所使用的常规观测资料数据格式。RAP/HRRR同样也使用了这套观测数据格式。国内也有引进RAP/HRRR区域数值预报系统,如武汉暴雨研究所,福建省局等。中国气象局数值预报中心的GRAPES模式中观测是文本文件,没有直接使用Prepbufr。 NCEP Prepbufr介绍:https://www.emc.ncep./mmb/data_processing/prepbufr.doc/document.htm NCEP数据处理系统流程 Prepbufr由美国NCEP的质量控制系统(obsproc)生成,而质控控制系统也是结合数值模式来运行,对比和背景场的差异。当然也可以单独运行,但质量控制效果就差很多,背景场本质代表过去的观测对当前的影响。总体分为以下步骤:
obsproc对不同尺度的分析质量控制过程不一样:如全球预报系统GFS,RAP/HRRR,以及中尺度实况分析RTMA。 GFS全球预报系统:https://www.emc.ncep./mmb/data_processing/prepbufr.doc/table_2.htm RAP/HRRR区域模式:https://www.emc.ncep./mmb/data_processing/prepbufr.doc/table_5.htm NAM北美区域模式:https://www.emc.ncep./mmb/data_processing/prepbufr.doc/table_4.htm RTMA中尺度实况分析:https://www.emc.ncep./mmb/data_processing/prepbufr.doc/table_19.htm 质控码表: https://www.emc.ncep./mmb/data_processing/prepbufr.doc/table_7.htm 关于NCEP质量控制的更多信息请参见上面NCEP的Prepbufr介绍。 NCEP obsproc 源代码地址: https://www.nco.ncep./pmb/codes/nwprod/ 安装bufrlib及其他解码程序
基于
1. 编译bufrlib下载
2. 编译GSI中bufr工具
本人在解码最新的prepbufr时有点问题,需要在
3. 安装 |
文件名 | 观测类型 |
---|---|
gfs.t00z.adpsfc.tm00.bufr_d.nr | 地面数据 |
gfs.t00z.adpupa.tm00.bufr_d | 探空数据 |
gfs.t00z.aircar.tm00.bufr_d.nr | 飞机报 |
gfs.t00z.gpsipw.tm00.bufr_d.nr | GPS |
gfs.t00z.satwnd.tm00.bufr_d | 卫星风 |
还有很多其他的观测类型数据,就不一一列出了。 |
Prepbufr
数据1 2 3 4 | lftp -e mv gfs.t00z.prepbufr.nr gfs.2021013000.prepbufr |
prepbufr_decode_all_evn.exe
1 2 3 4 | ln -s gfs.2021013000.prepbufr prepbufr ./prepbufr_decode_all_evn.exe > gfs.2021013000_qc.txt |
gfs.2021013000_qc.txt
为解码后的结果,以北京站54511
为例:
解码结果,54511地面站
其中,obs
为观测值,qcf
为质控码。
rda-bufr-decode-ADPsfc
程序包1 2 3 | ./exe/bufr_sfc2ob.x gfs.t00z.adpsfc.tm00.bufr_d.nr 2021013000 |
Surface2021011400.obs
为解码后的结果。
1 2 3 4 | Surface2021013000.obs > files.txt ./exe/runob2lit_imd_obs.x files.txt 2021013000 |
SURFACE_OBS:2021013000
为转换后的little r
格式数据。
py-ncepbufr
读取数据和质控码程序如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | __future__ print_function argparse datetime datetime, timedelta ncepbufr os sys parser = argparse.ArgumentParser() parser.add_argument(, , =, required=) args = parser.parse_args() hdstr= obstr= qcstr= oestr= bufr = ncepbufr.(args.file) bufr.advance() == : ref_time = datetime.strptime((bufr.msg_date), ) bufr.load_subset() == : hdr = bufr.read_subset(hdstr).squeeze() : station_id = hdr[].tostring() Exception e: station_id = obs = bufr.read_subset(obstr) nlevs = obs.shape[-] oer = bufr.read_subset(oestr) qcf = bufr.read_subset(qcstr) time = ref_time + timedelta(seconds=hdr[]*) print( % (station_id,hdr[],hdr[],time,(hdr[]),nlevs)) print(obs) bufr.close() |
运行解码程序:
1 | python read_prepbufr.py -f gfs.2021013000.prepbufr |
通过修改以上程序,可以获得个性化输出,比如输出POB QOB TOB
即为气压,湿度,温度等。
此外,py-ncepbufr
也提供了一些小工具,如:py-ncepbufr/utils/{prepbufr2nc,nc2prepbufr}
等。
MET
画观测分布MET
是模式检验工具,全称The Model Evaluation Tools,the Developmental Testbed Center所开发。
在线文档:https://dtcenter./MET/latest/Users_Guide/index.html
MET
有现成的docker镜像,可pull下来直接食用。还有相应的Python脚本程序metplus
。
1 | docker pull dtcenter/met |
Prepbufr转为netcdf
1 | pb2nc gfs.2021013000.prepbufr gdas_2021013000.nc PB2NCConfig |
画地面站分布
1 | plot_point_obs -msg_typ ADPSFC gdas_2021013000.nc gdas_2021013000_adpsfc.ps |
全球地面站分布
画探空站分布
1 | plot_point_obs -msg_typ ADPUPA gdas_2021013000.nc gdas_2021013000_adpupa.ps |
全球探空站分布
写在最后:
以上解码Prepbufr
我们可以获得完整的全球GTS交换数据。对于国内常常拿不到的常规观测或探空,通过解码Prepbufr
获取也不失为一种“正当途径”。
原文链接:https://wangrenz./2021/01/31/Prepbufr-introduction-and-decoding/
|