1

我正在使用入口来访问目录catalog.ocean.GFDL_CM2_6.GFDL_CM2_6_control_ocean_surface。目前我只处理这些数据的一小部分,但每次访问这些数据仍然非常昂贵(它在谷歌云存储上)。所以我想使用摄入的持久选项在本地存储该数据。然而,据我从文档中了解到,看起来一个人只能持久化整个数据集。对于那个特定的数据集,如果我以每 GB 0.1 美元的成本计算,那将达到近 400 美元,因为总数据是 3976GB。

因此我的问题是:

  1. 有没有办法(特别是对于理论上应该使这很容易的 zarr 文件)仅保留部分数据(例如仅保留变量的子集)
  2. 这可能更复杂,但我可以通过持久化我感兴趣的数据区域(例如坐标值)来进一步推动事情吗?
4

1 回答 1

0

没有直接的 Intake 方式可以满足您的要求。Intake 被认为是一种将数据转换为一种格式的方法,然后您可以像往常一样操作,即只处理加载部分,以便持久数据集与原始数据集相同。

但是,手动完成并不难:您应该获取 xarray,过滤您需要的区域,然后调用 to_zarr 保存新数据集。然后,您可以将一个简单的目录条目(如旧目录条目)指向新位置。

如果这是一个会重复很多次的特定模式,您可以直接在驱动程序中完成此操作。事实上,我们已经讨论过是否/如何在 Intake 中实施此类处理步骤的想法,但目前还没有计划。最后,我们可能会在 Holoviews 中对管道进行工作来描述处理步骤。

于 2020-03-18T12:55:59.263 回答