import pygrib #调用函数库
import numpy as np
import time
time_start = time.time() # 记录开始时间
fr='./rmf.hgra.2023022121036.grb2' #文件目录
grbs = pygrib.open(fr) #打开文件
grbs.seek(0)#偏移量,一般都是设置0 表示第一个变量开始读;如果设2 则从第三个变量开始读
print(grbs)
grbs.tell()
re=grbs.select(name='Temperature')
#help(grbs.select)
#print(re[0].values)
#print(re[0].tostring())
# 写入新的grib文件
grbs.close()
print(len(re))
grbout =open('./temp.grib2',"ab+")
for i in range(len(re)):
da=re[i].tostring()
grbout.write(da)#
print(i)
print(re[i])
grbout.close()
#Temperature:K
利用python读取一个大的包含好多个场的grib2文件,并抽多个取温度的场,批量写到一个新的文件里面。
只需要将需要的要素读取出来后,将对应场的二进制数据通过open函数写入到新的grib2文件中去,一定要注意写入方式为'ab+',详细资料在下面。