带noleap日历的Python Timedelta算法

2024-05-18 20:14:40 发布

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

我使用的是CMIP5数据,它的时间单位是“1850年1月1日以来的天数”。为了在文件中找到我正在处理的当前日期,我通常只需要对1-1-1850进行timedelta加法,然后对我正在处理的数据点进行时间值(以天为单位)。然而,CMIP5(或者至少我使用的文件)使用了一个“noleap”日历,这意味着所有年份都只有365天。在

在我当前的例子中,当处理与1980年1月1日对应的数据点时,我将其47450天的时间参数添加到1850年1月1日的原始日期上。然而,我得到了1979年12月1日的答复,因为1850年到1980年之间的2月29日都被排除在外。在timedelta或datetime中是否有其他参数处理不包括闰日的日历?在


Tags: 文件数据参数datetime时间单位例子timedelta
1条回答
网友
1楼 · 发布于 2024-05-18 20:14:40

netCDF num2date是您要查找的函数:

import netCDF4

ncfile = netCDF4.Dataset('./foo.nc', 'r')
time = ncfile.variables['time'] # note that we do not cast to numpy array yet
time_convert = netCDF4.num2date(time[:], time.units, time.calendar)

注意,CMIP5模型没有标准的日历,因此在进行转换时,time.calendar参数很重要。在

相关问题 更多 >

    热门问题