【发布时间】:2018-03-23 23:27:48
【问题描述】:
我有一个相当标准的天气数据集,它有 5 个维度:参考时间、预报时间、z、y 和 x。预测时间是相对于参考时间的偏移量。数据集作为每个参考时间的一个文件保存到磁盘。我想打开整个多文件数据集并让预测维度按偏移量对齐,但 xarray 会自动转换并按绝对时间对齐预测维度。
选择时间偏移而不是绝对日期时间有几个原因。使用绝对时间极大地增加了数据集的逻辑形状,因为只有某些预测对每个参考时间有效。这种增加的形状导致数据集主要是nan,任何用户都必须通过外部手段了解该有效性。通过偏移对齐预测使数据集更具自我描述性。
一个具体的例子
我正在处理NAM-NMM 预测。预测每 6 小时以一系列 GRIB 文件的形式发布,每个预测小时一个。我首先使用 PyNIO 引擎将每个 GRIB 文件作为数据集打开,然后选择我想要保留的变量和地理区域。然后我将参考时间添加为日期时间坐标,将预测时间添加为整数坐标,并将units 属性设置为'hours since {reftime}'。 (在 Panoply 中正确可视化需要设置单位。)然后我将所有数据集连接到预测维度的相同参考时间,并将结果作为 netCDF 保存到磁盘。
Here is a gist 发生了什么以及ncdump 的输出。
这很好用。我可以使用小时偏移量沿预测维度进行选择。我可以在 Panoply 中可视化数据集。 ncdump 中的预测维度看起来是正确的。
但是当我重新打开 netCDF 时,xarray 会自动将预测维度转换为绝对日期时间。当我打开多个文件时,预测维度是按绝对时间而不是参考时间对齐的。
如何防止 xarray 将预测维度解释为绝对日期时间?
【问题讨论】:
-
请分享您的 netcdf 文件的描述,例如
ncdump -h的输出。显示您如何使用 xarray 的代码的 sn-p 也会有所帮助。 -
这是NAM-NMM 的预测。数据作为 GRIB 发布,每个预测小时一个,我使用 PyNIO 后端打开。然后我重命名一些变量,获取一个地理子集,设置参考时间和预测坐标,连接相同参考时间的所有预测,并保存到 netCDF。 Here a recent
ncdump,但我在这里使用整数进行预测。
标签: python-xarray