【发布时间】:2022-10-14 14:17:27
【问题描述】:
我有一个用 xarray 读入的 NetCDF 数据文件。
import pandas as pd
import xarray as xr
import numpy as np
dataDIR = myNetCDFdatafile
DS = xr.open_dataset(dataDIR)
DS
显示数据集的结构:
如你看到的。 time 是 int32 类型。这个整数表示自 1970-01-01 以来的秒数时间戳。这个时间戳的周期不是等距的。
如何将其转换为日期时间类型?
如果我尝试 numpy 方式
DS.time = DS.time.astype('datetime64')
我确实得到了一个
ValueError: datetime64/timedelta64 must have a unit specified
有什么提示吗?
【问题讨论】:
-
“datetime64/timedelta64 必须指定一个单位”是一个相当不错的提示 :) 请参阅datetime units 上的 numpy 文档。
time上的单位是什么?如果没有编码信息,numpy 不知道如何处理这些值。属性中可能有线索-您可以访问ds.time.attrs或单击xarray 预览中的小属性页面图标以查看是否有单位和日历的描述? -
@MichaelDelgado 对迟到的回复感到抱歉:电晕让我失望了...
ds.time.attrs结果:(时间)int32。我的目标是像 YYYY-MM-DD hh:mm:ss 这样的日期格式。还有比strftime更直接的方法吗?
标签: netcdf python-xarray dtype