GRIB(GRIdded Binary)和GRIB2(General Regularly-distributed Information in Binary Form)是压缩二进制编码,主要用来存放数值天气分析和预报产品资料。GRIB的主要优点是文件的大小通常是普通二进制文件(浮点数)的1/2到1/3,字段是自描述的。GRIB2相对于GRIB1有很大变化,添加了说明信息、增大了存储文件大小的限制,对时间的表示等。

常用的解析GRIB数据的软件

  • wgrib/wgrib2
  • CDO
  • NCL
  • python包cfgrib

wgrib/wgrib2

参考官方文档:https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/
下载:ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz
安装:https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/compile_questions.html
注:官方推荐用gcc/gfortran编译器,icc和pgc都会出问题

tar -xzvf wgrib2.tgz  # 阅读README和INSTALLING文件里面有安装过程和注意事项
cd grib2
export CC=gcc
export FC=gfortran
make  # 注:默认只支持netcdf3因为netcdf4很大,修改makefile参数可选择需要的库,但不能同时支持netcdf3/4
wgrib2/wgrib2 -config

帮助文档:https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/tricks.ncep
https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/tricks.wgrib2

示例:计算风速

wgrib2 IN.grb -match GRD \-if “:UGRD:500 mb:” -rpn sto_1 -fi \-if “:VGRD:500 mb:” -rpn sto_2 -fi \-if_reg 1:2 -rpn “rcl_1:sq:rcl_2:sq:+:sqrt:clr_1:” \-set_var WIND -grib_type jpeg \-grib_out out.grb

结合正则表达式提取变量:-match, -not,-if

wgrib2 IN -match ':TMP:' -grib ht.grb
wgrib2 IN | egrep “:(UGRD|VGRD):(2|3)00 mb” | sort -t: -k3,3 -k4,4 -k5,5 -k6,6 | wgrib2 IN -i -ieee sorted.bin

条件选择,多个输出:

wgrib2 IN -if ':TMP:' -grib ht.grb -if ':HGT:' -grib ht.grb -if ':RH:' -grib rh.grb

插值到新的网格:

wgrib2 IN -new_grid_winds earth -new_grid latlon 0:360:1 90:181:-1 OUT

提取区域-small_grib:

wgrib2 IN.grb2 -set_grib_type j -small_grib 100:170 -55:0 OUT.grb2
wgrib2 in.grb2 -set_grib_type c2 -small_grib 109:110 35:37 region.grb2

grib转nc文件:

wgrib2 in.grb2 -netcdf out.nc

批量处理grib文件:

#!/bin/bash
path_grib='/mnt/e/DATA/Model_data/Initial_WRF_FNL'
path_out='/mnt/e/WRF_RUN/data/grib_data/'for item in `ls $path_grib/*.grib2`
dofilename=`echo $item|cut -d '/' -f 7`outfile=${path_out}sub_$filename/home/xr/software/wgrib2/grib2/wgrib2/wgrib2 $item -match "(:UGRD:700 mb:anl:)|(:VGRD:700 mb:anl:)" \-set_grib_type j -small_grib 100:125 25:45 $outfilencl_convert2nc $outfile
done

CDO

官方文档:https://code.mpimet.mpg.de/projects/cdo
安装:sudo apt install cdo , 安装包比较大
Grib转nc:

cdo -f grb copy a.nc  a.grb

nc转grib:

cdo -f nc  copy a.grb a.nc

按时间,区域,变量名提取:

cdo -selyear,2019 -selmonth,01 -selday,25 -seltime,08:00 -remapnn,lon=121_lat=43 a.nc
cdo -selname,SSTK,CI infile.nc outfile.nc
cdo -sellonlatbox,120,-90,20,-20 infile.nc outfile.nc

参考:https://www.cnblogs.com/jiangleads/p/11145774.html

NCL

官方文档:http://www.ncl.ucar.edu/Applications/grib2netCDF.shtml
将整个Grib文件转换为nc格式:

ncl_convert2nc ced1.lf00.t00z.eta.grb
# 输出文件: ced1.lf00.t00z.eta.nc

查看grib文件信息:

ncl_filedump ced1.lf00.t00z.eta.grb

提取部分变量输出nc文件,并复制属性和坐标信息:

ncl_convert2nc ced1.lf00.t00z.eta.grb -v gridlat_6,gridlon_6

python包cfgrib

python里面也有几个可以处理grib文件的包,但是安装都有点麻烦,使用也不很方便,目前来看,相对好用的方案是xarray+cfgrib,有空加上使用细节,不过官网也有说明。
安装:conda install -c conda-forge cfgrib
grib: xarray搭配cfgrib 优点:Linux windows MacOS均可用
注意:目前cfgrib库无法同时读取多个typeOfLevel的数据,因此要筛选需要的层次。
官方文档
参考:https://cloud.tencent.com/developer/article/1471285
cfgrib新增了写grib文件的函数,但还是测试版本,具体见官网。

grib1/2格式数据解析相关推荐

  1. las文件matlab,基于Matlab的LAS格式数据解析与显示.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 基于Matlab的LAS格式数据解析与显示.pdf ...

  2. Json格式数据解析

    一.简介 XML这种数据格式.XML的特点是功能全面,但标签繁琐,格式复杂.在Web上使用XML现在越来越少,取而代之的是JSON这种数据结构. JSON是JavaScript Object Nota ...

  3. java获取微信xml数据格式的文件_(5)微信二次开发 之 XML格式数据解析

    1.首先理解一下html html的全名是:HyperText Transfer markup language 超级文本标记语言,html本质上是一门标记(符合)语言,在html里,这些标记是事先定 ...

  4. GPS(rinex格式)数据解析详细解读

    RINEX格式现如今已成为GPS测量应用中的标准数据格式,目前应用最为广泛.最普遍的是RINEX格式的第2个版本,该版本能够用于包括静态和动态GPS测量在内的不同观测模式数据.在该版本中定义了6种不同 ...

  5. 阿里云物联网平台物模型数据解析脚本

    在一些物联网业务场景中,由于资源受限或配置较低,设备端不适合直接构造物模型的JSON数据结构体与物联网平台进行直接通信.这种情况下,可以将设备上报的原数据直接透传到物联网平台.物联网平台调用您提交的数 ...

  6. grib1文件解析 python_python读取grib格式数据

    python 读取grib/grib2格式数据 一般利用NCL(NCAR Command Language)读取.利用Python语言的pygrib库也可以读取grib/grib2格式数据 grib/ ...

  7. ajax请求json和xml数据及对json和xml格式数据的解析

    ajax请求json和xml数据及对json和xml格式数据的解析 一.ajax请求json数据并解析 ajax的写法: json数据解析: 请求json经常出现的跨域报错: 二.ajax请求xml数 ...

  8. 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件

    导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件 参考文章: (1)导入数据任务(id:373985)异常, 错误信 ...

  9. php获得帮助类数据_PHP解析xml格式数据工具类示例

    本文实例讲述了PHP解析xml格式数据工具类.分享给大家供大家参考,具体如下: class ome_xml { /** * xml资源 * * @var resource * @see xml_par ...

最新文章

  1. Leader晋升失败,CTO说,没有商业敏感度,迟早被淘汰
  2. 恭喜《软件随想录》得到了大家的一致认可!
  3. 【C 语言】二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 | 每个 一级指针 指向不同大小内存 | 精准分配每个 一级指针 指向的内存大小 )
  4. 中国水处理行业深度监测及投资发展可行性分析报告2022-2027年新版
  5. 手写简版spring --8--Aware感知容器对象Aware感知容器对象
  6. The working copy is locked due to a previous error.
  7. JS控制锚点打开新窗口
  8. 程序员分析一线城市 1000 +岗位招聘需求,告诉你如何科学找工作
  9. 读取寄存器值_温湿度传感器与S7-1200 PLC通讯读取温湿度案例
  10. TensorFlow 2 Object Detection API 教程: model 命名规则
  11. web自动化知识点-02
  12. Java连接数据库导致连接数占满
  13. Ubuntu 20.04桌面美化
  14. windows cmd命令杀进程
  15. json转xml、xml转json
  16. 矩阵列的线性组合公式
  17. RabbitMQ学习记录 - Direct之Routing模式
  18. 圆角半角数据库_数据库使用技巧——SQL 全角与半角切换
  19. 苹果关闭 iOS 14.4.2 系统验证通道
  20. 文字logo设计的作用

热门文章

  1. 使用Librtmp进行的简单推流
  2. React 对组件props限制 ( prop-types 依赖)
  3. SpringCloud Alibaba入门
  4. WebStorm:令人眼前一亮的一款前端开发IDE
  5. 在二维数组中查找一个数字
  6. 网络软广和传统硬广有什么区别?优势在哪?
  7. Jsp/Servlet中实现登录注册功能
  8. 空转工具盘点 | 空间转录组细胞类型聚类方法综合比较
  9. 在Geany里配置python的方法
  10. 前端点击事件一直叠加发送请求,第一次一次,第二次两次,以此类推叠加发送请求