问题标签 [zarr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
147 浏览

python - 将 zarr 目录存储转换为 zip 存储

代码:

问题描述:您好,不好意思,我在Zarr官方文档中找到了这个关于ZipStorage的声明: Alternatively, use a DirectoryStore when writing the data, then manually Zip the directory and use the Zip file for subsequent reads.

我正在尝试将 DirectoryStorage 格式的 Zarr 数据集转换为 ZipStorage。我使用 Linux 中提供的 zip 操作。 zip -r test.zip test.zarr这里 test.zarr 是一个目录存储数据集,包括三组。但是,当我尝试使用上面的代码打开它时,得到如下错误:

不知道是不是我的压缩方式不对,有没有什么办法可以把目录存储转成zip存储或者其他的DB格式,导致群上来的时候,之前的存储节点太多,不方便传输。提前致谢。

0 投票
1 回答
45 浏览

python - 如何在不编写新商店的情况下重命名 Zarr 数组?

我有一个 Zarr 数据存储,但我需要重命名其中一个维度。假设我有这个(来自 xarray docs):

数据集输出截图

但我要我的space维度来真正地被称为state

而且我不想写一个的Zarr商店,我只想改变那个名字。

我怎样才能做到这一点?(我发现了一种 hacky 方式 - 见下文)

0 投票
1 回答
757 浏览

scipy - ValueError:无法识别的引擎 zarr 必须是以下之一:['scipy', 'store']

我正在尝试打开 zarr 文件,

但是出现了错误:


任何人都可以帮助解决这个问题吗?我可以确认我已经安装了 scipy 和 store 包。

0 投票
1 回答
67 浏览

zarr - 是否可以在单个文件中存储多个组和数组?

我一直在使用 HDF5 来存储时间序列数据,由于 Zarr 的各种功能,我想尝试使用它。

我正在阅读它的教程并遵循每一步,我意识到也许 Zarr 使用文件系统上的目录而不是单个文件和其中的层次结构?

例如,当我这样做时:

我认为将在文件group.zarr中创建一个名为 2 个组的文件。实际上,它会创建 3 个连续的本地目录。

我更喜欢将数组保存在单个文件中。是否也可以像 HDF5 一样使用 Zarr 在单个文件中创建多个组和数组?

0 投票
0 回答
359 浏览

python - 使用 Zarr 存储 Dask 数组会消耗太多内存

我有一长串 .zarr 数组,我想将它们合并到一个数组中并写入磁盘。

我的代码大致如下所示:

每个数组都local_paths包含一个 64x64 图像列表。这些列表都有不同的长度。所以第一个的形状可能是(100, 64, 64, 3),第二个的形状可能是(200, 64, 64, 3)

执行此代码的最后一行会导致我的内存完全耗尽,然后 Jupyter 笔记本完全崩溃(没有给我错误消息或异常)。

为了调查问题,我打印了任务图,因此将最后一行替换为以下两行:

它非常大(链接),所以我只截取了其中两个有趣的部分: 在此处输入图像描述

这种结构一直在重复。Dask 获取连接的输出,重新分配数据然后尝试存储它。注意粗黑条是重叠过渡的结果。

现在看看这些转换来自哪里:

在此处输入图像描述

查看create中间的节点。我假设这是图中创建 zarr DirectoryStore 的部分。节点的前身对create所有存储节点都有过渡!

这是我的猜测为什么 dask 内存不足。它首先尝试解决所有重新分块合并,当它应该创建 DirectoryStore 时,已经没有内存了。并且没有一个store节点可以执行,因为create节点是每个节点的先决条件。

我的假设是真的吗?如果是,我该怎么做才能强制 dask 先创建 DirectoryStore?如果没有,还有什么可能是我内存不足的问题?

UPDATE 当我使用dask.config.set(scheduler='single-threaded')DirectoryStore 的创建(创建节点)不是问题。我只是查看了输出目录,并且已经写入了一些文件。所以它必须是任务图本身,太大了。

在此处输入图像描述

0 投票
1 回答
154 浏览

python-xarray - xarray 将 int 数据加载为浮点数

假设我创建了一个带有整数变量的数据集。

然后我保存它,提供一个编码和一个整数填充值:

然后当我读取数据时,类型已从 int32 更改为 float64。但是,该类型仍设置为<i8.zmetadata 文件中的类型,并且我看到该_FillValue类型已正确加载为 int。

我需要它是整数类型,因为我正在存储索引并且我的工作是使数据易于使用——用户每次需要时都必须更改每个整数列的 dtype 是不可接受的。

我注意到,如果我只是_FillValue从编码字典中删除,则类型会保持不变。发生了什么事,我该如何解决?

0 投票
1 回答
88 浏览

python - zarr consolidate_metadata 出现 TypeError 错误:memoryview:需要一个类似字节的对象,而不是“数组”

我正在尝试整合现有 zarr 商店的元数据,但如果我创建新的 zarr 商店并调用zarr.consolidate_metadata(store).

代码示例:

这将创建一个.zmetadata 目录,而不是文件,其中包含一个 0 块,就像它是一个 zarr 数组。但是调用本身会出错TypeError: memoryview: a bytes-like object is required, not 'Array'

我认为它创建这个.zmetadata数组可能是 zarr 中的一个错误,但是我尝试了不同的 zarr 和 Python 版本,所以我很确定我也做错了,因为这样一个主要错误不会持续很长时间。

完整的错误是:

0 投票
1 回答
110 浏览

python-xarray - 如何匹配xarray编码中的所有变量(blosc,zarr压缩)

如何使用 zarr 压缩的示例具有以下代码示例,请参见 xarray doc

编码映射表示将给定的压缩器应用于“foo”变量。但是,如果我想应用到我的所有变量,不管它们是如何命名的。我是否必须显式创建编码字典以匹配我的数据集/数组中的所有变量,或者是否存在某种通配符模式?我只想用相同的压缩器压缩整个数据集。

0 投票
1 回答
170 浏览

python-xarray - 如何将 Zarr 数据转换为 GeoTiff?

我想将 HRRR 预测数据加载到 Google Earth Engine 中,所以我想我需要将其转换为 GeoTiff。

例如