繁体   English   中英

将 Unix 时间戳转换为日期时间 NETCDF4

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM