我从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.grbf38
为01
。我在文档中找不到任何关于此的内容。
以下是查找小时的代码段:
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
答案 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。
如上所述,您可以将日期和时间转换为反之亦然。