解释NOAA UV指数预测如何计算预测文件中的小时数?

时间:2016-06-05 06:37:00

标签: python weather grib noaa

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

所以,我想知道,如果我想在Delhi(28.6139, 77.2090) timezone: Asia/Kolkata的{​​{1}}上找到2016/06/05的UV索引,我该如何从这些文件中计算出来?它是2 pm文件中的UV索引,假设文件中的uv.t12z.grbf3801。我在文档中找不到任何关于此的内容。

以下是查找小时的代码段:

00: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

1 个答案:

答案 0 :(得分:3)

GRIB文件中的值a仅指示天气预报的开始时间(它是生成预测的初始时间)。 此文件中的日期和时间根据UTC。 要以UTC格式获取预测日期和时间,您需要在初始时间添加值hour, day, month, year。 然后,为了让您的当地时间为您的时移增加这个值。

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

如上所述,您可以将日期和时间转换为反之亦然。