用于并行计算的cubed与xarray的接口。
项目描述
注意:这是一个概念验证,许多功能都是不完整、未经验证或无法工作的。
cubed-xarray
要求
- Cubed版本 >=0.14.2
- Xarray版本 >=2024.02.0
安装
通过pip安装
pip安装cubed-xarray
或conda
conda install -c conda-forge cubed-xarray
导入
您不需要在用户代码中导入此包。一旦正确安装,xarray应通过entrypoints的魔法自动意识到此包。
用法
可以通过以下方式创建由cubed数组支持的xarray对象:
- 将现有的
cubed.Array
对象传递给xarray构造函数的data
参数, - 在 xarray 对象上调用
.chunk
。 - 将
chunks
参数传递给xarray.open_dataset
。
在 (2) 和 (3) 中,通过传递关键字参数 chunked_array_type='cubed'
来选择使用 cubed.Array
而不是 dask.array.Array
。要传递参数到 cubed.Array
的构造函数,您应通过字典 from_array_kwargs
传递,例如 from_array_kwargs={'spec': cubed.Spec(allowed_mem='2GB')}
。
如果 cubed 和 cubed-xarray 已安装但 dask 未安装,则指定 chunked_array_type
不是必要的,因为入口点系统将默认使用可用的唯一分块并行后端(即 cubed)。
锋利的边缘 🔪
一些事情几乎肯定还不工作
- 在 xarray 中调用但在 cubed 中未实现的操作,例如
pad
(参见 https://github.com/tomwhite/cubed/issues/193) - 涉及 NaN 的数组操作 - 目前使用
skipna=True
以避免即时加载(参见 https://github.com/pydata/xarray/issues/7243) - 使用
parallel=True
与xr.open_mfdataset
不会工作,因为 cubed 没有实现dask.Delayed
的版本(参见 https://github.com/pydata/xarray/issues/7810) - 分组(参见 https://github.com/tomwhite/cubed/issues/223 和 https://github.com/xarray-contrib/flox/issues/224)
xarray.map_blocks
实际上尚未调度到cubed.map_blocks
,并且始终使用 Dask。- 某些使用
cumreduction
的操作(例如ffill
和bfill
)尚未连接到ChunkManager
,因此将尝试调用 dask。
还有一些其他事情可能工作,但尚未尝试
- 保存到 zarr 之外的其他格式
一般来说,一个错误可能表现为错误,或者为静默尝试通过立即计算底层数组来强制将数组类型转换为 numpy。
测试
用于包装 cubed 的 xarray 的集成测试也位于此存储库中。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
cubed-xarray-0.0.7.tar.gz (19.9 kB 查看哈希值)
构建分布
cubed_xarray-0.0.7-py3-none-any.whl (16.5 kB 查看哈希值)
关闭
cubed-xarray-0.0.7.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b08a969656c9c05c7168f9eee78911b73d6ab31781c317984b490c8e9d984eac |
|
MD5 | b938161ff5abb78ac9f08c29d50835a4 |
|
BLAKE2b-256 | 013cb5dd75d70fb05e50771148296c20d415e7f20e1c9d86e90e106677ea4388 |
关闭
cubed_xarray-0.0.7-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 83aad6439c4ab5b58601f2ef806e45aac64adc43a84ddec21c5507ec13c8af35 |
|
MD5 | f26a68202947c28bdd3b39d72d6057a5 |
|
BLAKE2b-256 | e7bfd3e75275497bc0a84f3420c15952dd63beb0b2b6cb9fedbad32a640f0750 |