在netCDF4 Python中使用date2num转换datetime时出错

问题描述

我正在尝试在Python中使用netCDF4写入netcdf文件。为此,我正在创建一个时间变量。我使用datetime创建了时间数据。尝试使用date2num将日期时间数据转换为netcdf格式时出现错误

dates=[datetime.datetime(1996,1,1) + relativedelta(months=mon) for mon in range(120)]

上面的命令给了我看起来像的日期列表-

[datetime.datetime(1996,0),datetime.datetime(1996,2,3,4,5,...
 datetime.datetime(2005,10,datetime.datetime(2005,11,12,0)]

我正在使用以下命令将日期转换为netCDF4日期:

dates_nc=nc.date2num(dates,time.units)

这里time.unitssince 1991-01-01(我不确定time.units是如何工作的)

nc.date2num命令给出以下错误

ValueError                                Traceback (most recent call last)
cftime\_cftime.pyx in cftime._cftime._datesplit()

ValueError: need more than 2 values to unpack

During handling of the above exception,another exception occurred:

ValueError                                Traceback (most recent call last)
<ipython-input-154-97a05959ce3c> in <module>
----> 1 dates_nc=nc.date2num(dates,time.units)

cftime\_cftime.pyx in cftime._cftime.date2num()

cftime\_cftime.pyx in cftime._cftime._dateparse()

cftime\_cftime.pyx in cftime._cftime._datesplit()

ValueError: Incorrectly formatted CF date-time unit_string

错误的原因可能是什么?

解决方法

您需要添加时间单位示例: days since 1991-01-01

可以是天,小时,分钟,秒,毫秒或微秒。 https://unidata.github.io/cftime/api.html#cftime.date2num