PythonでGSM予報値を読む(降水量の注意点)

つい先日、MSM予報値の降水量を読んだときに、FTに関する注意点を述べました。
matsubi0526.hatenablog.com
今日職場で別のデータを見ていたときにちょっと挙動が引っかかったので、GSMの降水量を見てみたら「やっぱりか」って挙動を示したので、ここで紹介しておきます。インタラクティブに操作するために ipython3 で次のコマンドを打つと、

import pygrib
f = 'Z__C_RJTD_20220719000000_GSM_GPV_Rjp_Lsurf_FD0000-0312_grib2.bin'
grbs = pygrib.open(f)
grb = grbs.select(parameterName='Total precipitation',forecastTime=0)

最後の grb を表示すると、なんと list型で返ってきて、

[21:Total precipitation:kg m-2 (accum):regular_ll:surface:level 0:fcst time 0-1 hrs (accum):from 202207190000,
 33:Total precipitation:kg m-2 (accum):regular_ll:surface:level 0:fcst time 0-2 hrs (accum):from 202207190000,
 45:Total precipitation:kg m-2 (accum):regular_ll:surface:level 0:fcst time 0-3 hrs (accum):from 202207190000,
・・・中略・・・
 993:Total precipitation:kg m-2 (accum):regular_ll:surface:level 0:fcst time 0-82 hrs (accum):from 202207190000,
 1005:Total precipitation:kg m-2 (accum):regular_ll:surface:level 0:fcst time 0-83 hrs (accum):from 202207190000,
 1017:Total precipitation:kg m-2 (accum):regular_ll:surface:level 0:fcst time 0-84 hrs (accum):from 202207190000]

という結果になってしまいます。初期時刻から ft までの積算降水量が知りたければ、このリストの ft-1 番目を指定すればいいのか。つまり、FT=6(6時間降水量)が知りたければ grb[5] とすればよいと。分かってしまえばなんてことはないのかもしれないが、嵌りそうな予感がする挙動なのでした。もっとうまいやり方ありそうな気もするけど。GRIB2形式のデータをPythonで読むときに、そもそも pygrib を使わないとか、ね。wgrib2 で NetCDF に変換したほうが早い?