![](/img/trans.png)
[英]Error converting datetime using date2num in netCDF4 Python
[英]Converting Unix timestamp to datetime NETCDF4
在我的 NetCDF 文件中,我有一个包含变量“ time ”的组“ vel ”,我在使用 matplotlib 和 numpy 绘图时将其用作我的 X 轴。
我希望将 X 轴绘制为日期时间(而不是 Unix 时间),但其他代码示例并没有取得多大成功。 我不确定在绘图创建期间内联执行它是否更好,或者对变量执行函数并创建新数据项/变量是否更好。 此外,Unix 时间不是整数(小数秒 - 请参见下面的示例)
1,1665583266.0000
2,1665583266.0625
3,1665583266.1250
4,1665583266.1875
5,1665583266.2500
6,1665583266.3125
7,1665583266.3750
8,1665583266.4375
9,1665583266.5000
10,1665583266.5625
尝试使用datetime.datetime.fromtimestamp(YOUR_UNIX_TIMESTAMP)的变体
但是出现如下错误:
只有长度为 1 的数组可以转换为 Python 标量
没有看到任何在 NetCDF 数据集上进行时间转换的例子
这显然适用于单个数据项,因为以下按预期工作并返回今天的日期/时间 2022-12-22 13:23:35:
import datetime
unixToDatetime = datetime.datetime.fromtimestamp(1671715415) # Unix Time
print(unixToDatetime)
好吧,我想出了如何用 Pandas 做到这一点:
import netCDF4
import pandas as pd
nc = netCDF4.Dataset('filename.nc')
tvel = nc.groups['vel'].variables['time'][:] # Unix time
dt_tvel = pd.to_datetime(tvel, unit='s') # Datetime
print(dt_tvel)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.