什么是grb格式数据?
grb格式文件是国际气象组织一种独特的数据存储格式,所有不能直接打开,一般用于气象模式资料,当然气象模式资料也有nc格式数据和hdf格式数据,这边逐行介绍grb数据如何用python处理,部分命令不给你解释一下你还真不知道是啥意思。(我第一次接触的时候就对一些代码很困惑)
安装必要的函数库
python读取grb2数据可以使用pygrib,安装命令如下:
conda install -c conda-forge pygrib -y
或者
pip install pygrib
直接上代码
每句代码都给你把注释整的明明白白的!
import pygrib #调用函数库
fr='/xxx.grib2' #文件目录
grbs = pygrib.open(fr) #打开文件
grbs.seek(0)#偏移量,一般都是设置0 表示第一个变量开始读;如果设2 则从第三个变量开始读
for grb in grbs: # 输出文件各个变量信息
print(grb)
grb = grbs.select(name='U component of wind')[0]#从grbs中取出U component of wind变量
value = grb.values#取出'U component of wind'的值
#对于取值也可以按照如下方式选择:
value2=grb.data(lat1=None, lat2=None, lon1=None, lon2=None) 按经纬度抽取数据
常用命令总结
1. python打开grb数据
grbs = pygrib.open(fr)
2. 确定变量偏移量(这是必须要有的命令)
grbs.seek(0)
一般都是设置0 如果是从则从第一个变量开始读 如果设2 则从第三个变量开始读
3. 查看文件中变量信息
for grb in grbs: # 看文件描述
print(grb)
4. 选取单个变量的所有可用键
keys=grb.keys()
将会返回一个可用键的序列,比如name,然后grb.name 查看这个变量姓名
5.选取单个变量的变量信息
grb = grbs.message(2)
get the second grib message 就是第二个变量的信息
6. 选取单个变量的经纬度
lat, lon = grb.latlons()
#读取经纬度 .latlons()属性默认都有 有那些属性可查看下面官网API
7.选取单个变量的变量名
grb.parameterName
8. 选取单个变量的前面的序号
grb.messagenumber
9. 根据经纬度范围选取单个变量
grb.data(lat1=None, lat2=None, lon1=None, lon2=None)
{extract data, lats and lons for a subset region defined by the keywords lat1,lat2,lon1,lon2.
The default values of lat1,lat2,lon1,lon2 are None, which means the entire grid is returned.
If the grid type is unprojected lat/lon and a geographic subset is requested (by using the lat1,lat2,lon1,lon2 keywords), then 2-d arrays are returned, otherwise 1-d arrays are returned.}
grb.data()还会返回lat.lon信息哦~(顺序是先lat,后lon)
10. 该条变量的时间信息
grb.validDate