num2date 不支持 'months since...'
num2date does not support 'months since...'
你好,我有一个 neetcdf4 文件,其中包含超过 10 年的每月降水量数据。
我想做的是:
- 阅读文件
- select基于经度纬度的子区域
- 我需要计算每 3 年的移动平均值
- 绘制结果
dataset = Dataset('test.nc','r',format='NETCDF4')
lons = dataset.variables['lon'][:]
lats = dataset.variables['lat'][:]
times = dataset.variables['time'][:]
times_units = dataset.variables['time'].units
prep_solide = dataset.variables['PREC'][:,:,:]
prec_units =dataset.variables['PREC'].units
dates = num2date(times[:],' months since 1801-01-01 00:00:00')
我不断收到的错误是
ValueError: unsupported time units
还有其他方法可以解决这个错误吗?
正如您已经注意到的,num2date
函数不支持 "months"。老实说,反正 1800-01-01 00:00:00
后 2 个月是什么意思?是 1800-03-01 00:00:00
还是其他(1 个月 = 365.25/12 天,因此 1800-03-02 02:21:00
)?
无论如何,我会用我自己的函数来制作日期。例如,在您的情况下:
dates = [datetime.datetime(1800,1,1)+datetime.timedelta(seconds = 365.25/12*24.0*3600.0*float(val)) for val in times]
由于我不知道你的数据中1个月的秒数是多少,所以我使用了365.25/12。
你好,我有一个 neetcdf4 文件,其中包含超过 10 年的每月降水量数据。 我想做的是:
- 阅读文件
- select基于经度纬度的子区域
- 我需要计算每 3 年的移动平均值
- 绘制结果
dataset = Dataset('test.nc','r',format='NETCDF4') lons = dataset.variables['lon'][:] lats = dataset.variables['lat'][:] times = dataset.variables['time'][:] times_units = dataset.variables['time'].units prep_solide = dataset.variables['PREC'][:,:,:] prec_units =dataset.variables['PREC'].units dates = num2date(times[:],' months since 1801-01-01 00:00:00')
我不断收到的错误是
ValueError: unsupported time units
还有其他方法可以解决这个错误吗?
正如您已经注意到的,num2date
函数不支持 "months"。老实说,反正 1800-01-01 00:00:00
后 2 个月是什么意思?是 1800-03-01 00:00:00
还是其他(1 个月 = 365.25/12 天,因此 1800-03-02 02:21:00
)?
无论如何,我会用我自己的函数来制作日期。例如,在您的情况下:
dates = [datetime.datetime(1800,1,1)+datetime.timedelta(seconds = 365.25/12*24.0*3600.0*float(val)) for val in times]
由于我不知道你的数据中1个月的秒数是多少,所以我使用了365.25/12。