【发布时间】:2016-10-12 11:21:52
【问题描述】:
在使用 NETCDF4 包时,在 netCDF 文件中写入时间。
dates = []
for iday in range(84):
dates.append(datetime.datetime(2016, 10, 1) + atetime.timedelta(hours = iday))
times[:] = date2num(dates, units=times.units, calendar = imes.calendar)
# print times[:]
for ii, i in enumerate(times[:]):
print i, num2date(i, units=times.units), dates[ii]
时机对了:
17669815.0 2016-10-04 07:00:00 2016-10-04 07:00:00
17669816.0 2016-10-04 08:00:00.000006 2016-10-04 08:00:00
17669817.0 2016-10-04 09:00:00 2016-10-04 09:00:00
17669818.0 2016-10-04 10:00:00 2016-10-04 10:00:00
17669819.0 2016-10-04 11:00:00.000006 2016-10-04 11:00:00
但是在读取 netcdf 文件时:
input_file = '/home/lovechang/test.nc'
data = Dataset(input_file)
times = data.variables['time']
# print times[:]
# print num2date(times[:], units=times.units)
for i in times[:]:
print i, num2date(i, units=times.units)
结果:
17669813.0 2016-10-04 05:00:00.000006
17669814.0 2016-10-04 06:00:00
17669815.0 2016-10-04 07:00:00
17669816.0 2016-10-04 08:00:00.000006
17669817.0 2016-10-04 09:00:00
17669818.0 2016-10-04 10:00:00
17669819.0 2016-10-04 11:00:00.000006
Ncview 显示时间不是准时。
那么时代发生了什么? 以及如何在 netcdf 文件中准时写入小时?
【问题讨论】: