【问题标题】:Runtime warning when opening netcdf file. Xarray unable to decode time axis打开 netcdf 文件时出现运行时警告。 Xarray 无法解码时间轴
【发布时间】:2021-11-21 15:57:27
【问题描述】:

我只是尝试使用以下代码行打开一个 netcdf 文件:

ds = xr.open_dataset('file.nc')

但我收到以下警告消息:

/sw/rhel6-x64/python/python-3.5.2-gcc49/lib/python3.5/site-packages/xarray-0.9.5-py3.5.egg/xarray/conventions.py:389: RuntimeWarning:无法将时间轴解码为完整的 numpy.datetime64 对象,继续使用虚拟 netCDF4.datetime 对象,原因:日期超出范围 结果 = decode_cf_datetime(example_value, units, calendar)

该文件很大,包含从 1850 年到 2849 年的年度数据。

有人知道解决办法吗?

【问题讨论】:

  • 这看起来不像是文件大小问题。基于该文件不符合 CF 的错误,因此 xarray 无法解码时间。尝试使用 CF 合规检查器查看:pumatest.nerc.ac.uk/cgi-bin/cf-checker.pl
  • 这是一个非常好的工具!我不知道这存在。但是,没有出现错误或警告;只有“以非标准方式使用属性历史”的信息。据我了解,这不应该真的有什么不同......但无论如何,谢谢你的好建议。
  • 在这种情况下。将 decode_times 设置为 False 并设置 tbetkme

标签: runtime netcdf python-xarray


【解决方案1】:

该文件很大,包含从 1850 年到 2849 年的年度数据。

这是关键的细节。这意味着某些时间超出了纳秒精度np.datetime64 值-this range is approximately between years 1678 to 2262 可以表示的范围之外,因此 xarray 使用另一种日期时间的数组来表示时间(因此警告)。在早期版本的 xarray 中,这些类型的日期时间对象的功能非常有限,但在当前版本中,此功能得到了很大改进。出于这个原因,我建议升级到最新版本的 xarray 和 netCDF4 软件包。我想您会发现,虽然您在打开文件时仍会收到类似的警告,但您几乎可以使用 np.datetime64 值的索引执行所有操作。

希望对您有所帮助!我知道这是一个令人困惑的问题;看到更多关于这个here的讨论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-03
    • 2018-08-25
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多