num2date不支持“从…开始的月份”

2024-10-01 22:27:05 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我有一个neetcdf4文件,里面有10多年的月降水量数据。 我想做的是:

  1. 阅读文件
  2. 根据经纬度选择子集区域
  3. 我需要计算每3年的移动平均数
  4. 绘制结果图
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

有没有其他方法来修正这个错误?在


Tags: 文件数据区域time错误variablesdataset子集
1条回答
网友
1楼 · 发布于 2024-10-01 22:27:05

正如您已经注意到,num2date函数不支持“months”。老实说,自从1800-01-01 00:00:00两个月是什么意思?是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。在

相关问题 更多 >

    热门问题