2

我从NOAA的ftp站点获取每小时的紫外线指数。如前所述预测时间在文件名中显示为uv.t12z.grbfXX, where XX is the forecast hour (01 to 120). 但在 grib2 文件中,密钥hour始终指示小时为 12。此外,任何文件中的日期都不会改变。截至今天,它2016/06/04在所有 120 个文件中。我也无法在文件的键中找到时区。

所以,我想知道,如果我想找到Delhi(28.6139, 77.2090) timezone: Asia/Kolkataon 2016/06/05at的 UV 指数,2 pm我该如何从这些文件中计算出来?uv.t12z.grbf38文件中假设文件中的紫外线指数0100:00 hrs on 2016/06/04. 我在有关此的文档中找不到任何内容。

这是查找小时的代码片段:

import pygrib
grbs = pygrib.open('uv.t12z.grbf01.grib2')
grb = grbs.select(name='UV index')[0]
year = grb.year
month = grb.month
day = grb.day
hour = grb.hour
minute = grb.minute
print year,month,day,hour,minute

输出:

>>2016 6 4 12 0
4

1 回答 1

3

GRIB 文件中的值hour, day, month, year仅表示天气预报的开始时间(它是生成预报的初始时间)。此文件中的日期和时间以 UTC 为准。要获得 UTC 的预测日期和时间,您需要在初始时间中添加一个值XX。然后让你的当地时间添加到这个值你的时移。

即,我需要将 uv.t12z.grbf38 转换hour, day, month, year = 12,1,1,2016为莫斯科时间。首先,我将开始时间添加到 38 小时并获取2,3,1,2016(这次根据 UTC)。莫斯科有时移 +3 UTC,这意味着当地时间是 2016 年 1 月 3 日 5:00。

正如我上面写的,您可以反过来转换日期和时间。

于 2016-06-05T07:02:25.243 回答