我需要访问一些 grib 文件。我已经弄清楚了如何使用pygrib。但是,我想出如何做到这一点的唯一方法是非常缓慢。
我有 34 年的 3 小时数据,它们每年以约 36 个文件的形式组织起来(或多或少每 10 天一个)。总共大约 1000 个文件。
每个文件有大约 80 条“消息”(每天 8 个值,持续 10 天)。(它们是空间数据,因此它们具有 (x,y) 维度)。
要读取我写的所有数据:
grbfile = pygrib.index(filename, 'shortName', 'typeOfLevel', 'level')
var1 = grbfile.select(typeOfLevel='pressureFromGroundLayer', level=180, shortName='unknown')
for it in np.arange(len(var1)):
var_values, lat1, lon1 = var1[it].data()
if (it==0):
tot_var = np.expand_dims(var_values,axis=0)
else:
tot_var = np.append(tot_var, np.expand_dims(var_values,axis=0),axis=0)
并对 1000 个文件中的每一个重复此操作。
有更快的方法吗?像一次加载每个 grib 文件的所有 ~80 层?就像是:
var_values, lat1, lon1 = var1[:].data()