首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3.7函数从netCDF4的timestep绘制日期时间

Python3.7函数从netCDF4的timestep绘制日期时间
EN

Stack Overflow用户
提问于 2020-12-08 19:56:16
回答 1查看 123关注 0票数 1

我需要从netcdf文件中绘制bg变量,但是时间是以时间步长表示的。我读了netcdf文件:

代码语言:javascript
复制
data =netCDF4.Dataset (r'D:\Users\NOAA\\CT2019B.molefrac_components_glb3x2_2014-2018.nc')

time = data.variables['time'][:]   
bg   =  data.variables['bg']

时间是:

代码语言:javascript
复制
masked_array(data=[5114.0625, 5114.0625, 5114.1875, ..., 6939.8125,
                   6939.9375, 6939.9375],
             mask=False,
       fill_value=1e+20)

单位:

代码语言:javascript
复制
'days since 2000-1-1 00:00:00'

plot(time,bg)

我需要将x.axis从timestep数字转换为日期(2014-01-01....)

我试着把它们转换成

代码语言:javascript
复制
time = netCDF4.num2date(data.variables['time'][:],data.variables['time'].units)

但是,当我把它画出来的时候

代码语言:javascript
复制
plot(time,bg)

我收到以下错误消息

TypeError: float()参数必须是字符串或数字,而不是'cftime._cftime.DatetimeGregorian‘

有谁知道如何解决这个问题吗?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-12-10 04:45:50

您可以强制num2date为您提供Python datetime对象:

代码语言:javascript
复制
time = netCDF4.num2date(data.variables['time'][:], data.variables['time'].units,
    only_use_python_datetimes=True)

有关更多信息,请参阅cftimedocs (这是netCDF4在幕后使用的工具)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65198465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档