气象数据grib/grib2的处理方法汇总

目录

0、前言

1、wgrib软件

2、matlab中的nctoolbox工具箱

​ 3、使用python中的pygrib模块

 4、使用python中的xarray、cfgrib模块

 5、使用cdo工具


0、前言

        之前接触的数据格式大都是nc格式,使用matlab和python都比较熟悉怎么读取,进行数据处理工作。最近发现气象数据中格式很多采用grib\grib2格式。以下是对grib\grib2格式数据处理进行的总结。

1、wgrib软件

        首先是windows下的wgrib软件。下载软件解压缩,将其添加至环境变量中。下载地址【链接:https://pan.baidu.com/s/1JReRhtB3PgfpqYVtV9PS2Q 提取码:1111】。

        打开命令行窗口,输入wgrib2查看,结果如下,表明加载成功。

气象数据grib/grib2的处理方法汇总_第1张图片

 

         使用wgrib2 gribfilename -netcdf ncfilename,将数据全部转换为nc格式进行处理。

气象数据grib/grib2的处理方法汇总_第2张图片

        当grib文件中数据过多,而我们只需要其中部分数据时,可以通过wgirb2 gribfilename -v查看文件中变量信息,通过wgrib2 gribfilename -match varname  -netcdf ncfilename匹配变量并进行格式转换。或者 通过wgrib2 gribfilename -match varname  -csv csvfilename将文件转换为csv格式。

2、matlab中的nctoolbox工具箱

        习惯使用matlab的,可以下载nctoolbox第三方工具箱,【地址:https://code.google.com/archive/p/nctoolbox/downloads】。这里可能出现的问题时版本不匹配,我下载了最新的nctoolbox版本,matlab版本如下,会出现错误使用ncdataset的报错信息。

气象数据grib/grib2的处理方法汇总_第3张图片

气象数据grib/grib2的处理方法汇总_第4张图片

        改用nctoolbox-20121106版本后,运行成功。读取的数据存储在结构体中,用{}索引后即可使用切片提取所需要区域、高度的数据。

气象数据grib/grib2的处理方法汇总_第5张图片

气象数据grib/grib2的处理方法汇总_第6张图片

3、使用python中的pygrib模块

        安装、导入pygrib模块。使用data = pygrib.open(gribfilename)打开文件,使用var = data.select(name=" ",typeOfLevle=" ",level=" ")获取想要的特定层的变量数据。

        最后使用 data,lats,lons = var.data(lat1=min(lat),lat2=max(lat),lon1=min(lon),lon2=max(lon))切取特定区域的数据。

        使用以下代码进行变量读取和选择操作

import pygrib as pg
grbs = pg.open(r'D:\My_Document\Code\S2S\data\sh-20150105.grib')# 所有变量
for grb in grbs:
	print(grb)

        使用以下代码对数据经纬度范围以及值进行查看

value = data.values

lat, lon = data.latitudes, data.longitudes

        使用以下代码对特定区域进行裁切

z1 = data.select(name='Geopotential Height', typeOfLevel='isobaricInhPa', level=100)[0]
z1, lat1, lon1 = z1.data(lat1=min(lat_era), lat2=max(lat_era), lon1=min(lon_era), lon2=max(lon_era))

气象数据grib/grib2的处理方法汇总_第7张图片

4、使用python中的xarray、cfgrib模块

        使用方法与pygrib模块类似。

气象数据grib/grib2的处理方法汇总_第8张图片

5、使用cdo工具

        使用ncl中的cdo工具切取指定区域、高度、的变量信息。

气象数据grib/grib2的处理方法汇总_第9张图片

         可能数据量太大了?在服务器采用cdo工具对获取变量信息写入nc文件,速度比较慢。处理ECMWF的7天降水预报数据,[3:3:72,78:6:168],共40个时刻,差不多两天能处理一个月,40*30=1200个文件。

你可能感兴趣的:(地理信息数据处理,python,matlab)