Python 如何在pygrib(grib2文件)中建立索引?

Python 如何在pygrib(grib2文件)中建立索引?,python,grib,noaa,Python,Grib,Noaa,我正在尝试从中使用pygrib读取grib2文件。但读取整个120个文件需要4-5个多小时。所以我试着制作索引以更快地读取文件。每当我尝试在值键上建立索引时,都会出现以下错误: msgs = grbindx.select(level = 0, typeOfLevel = "surface",parameterName = "values") File "pygrib.pyx", line 2003, in pygrib.index.select (pygrib.c:30731) ValueErr

我正在尝试从中使用pygrib读取grib2文件。但读取整个120个文件需要4-5个多小时。所以我试着制作索引以更快地读取文件。每当我尝试在值键上建立索引时,都会出现以下错误:

msgs = grbindx.select(level = 0, typeOfLevel = "surface",parameterName = "values")
File "pygrib.pyx", line 2003, in pygrib.index.select (pygrib.c:30731)
ValueError: no matches found
这是我的密码:

    #grb = grbs.select(name='UV index')[0]
    #uvi surface 0
    grbindx = pygrib.index('uv.t12z.grbf64.grib2','typeOfLevel','level','parameterName')
    msgs = grbindx.select(level = 0, typeOfLevel = "surface",parameterName = "values")
    print msgs.keys

有人能解释一下我做错了什么吗?

grib_ls
在此类文件上显示:

edition      centre       date         dataType     gridType     stepRange    typeOfLevel  level        shortName    packingType  
2            kwbc         20160612     fc           regular_ll   12           surface      0            uvi          grid_jpeg   
1 of 1 grib messages in uv.t12z.grbf12.grib2
因此,试着像下面这样读:

   grbindx = pygrib.index('uv.t12z.grbf64.grib2','typeOfLevel','level','shortName')
    msgs = grbindx.select(level = 0, typeOfLevel = "surface",shortName = "uvi")
    print msgs
然而,我想,你不会得到加速,因为这个文件只有一条记录