问题标签 [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.
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格式,导致群上来的时候,之前的存储节点太多,不方便传输。提前致谢。
python - 如何在不编写新商店的情况下重命名 Zarr 数组?
我有一个 Zarr 数据存储,但我需要重命名其中一个维度。假设我有这个(来自 xarray docs):
但我要我的space
维度来真正地被称为state
。
而且我不想写一个新的Zarr商店,我只想改变那个名字。
我怎样才能做到这一点?(我发现了一种 hacky 方式 - 见下文)
scipy - ValueError:无法识别的引擎 zarr 必须是以下之一:['scipy', 'store']
我正在尝试打开 zarr 文件,
但是出现了错误:
任何人都可以帮助解决这个问题吗?我可以确认我已经安装了 scipy 和 store 包。
zarr - 是否可以在单个文件中存储多个组和数组?
我一直在使用 HDF5 来存储时间序列数据,由于 Zarr 的各种功能,我想尝试使用它。
我正在阅读它的教程并遵循每一步,我意识到也许 Zarr 使用文件系统上的目录而不是单个文件和其中的层次结构?
例如,当我这样做时:
我认为将在文件group.zarr
中创建一个名为 2 个组的文件。实际上,它会创建 3 个连续的本地目录。
我更喜欢将数组保存在单个文件中。是否也可以像 HDF5 一样使用 Zarr 在单个文件中创建多个组和数组?
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 的创建(创建节点)不是问题。我只是查看了输出目录,并且已经写入了一些文件。所以它必须是任务图本身,太大了。
python-xarray - xarray 将 int 数据加载为浮点数
假设我创建了一个带有整数变量的数据集。
然后我保存它,提供一个编码和一个整数填充值:
然后当我读取数据时,类型已从 int32 更改为 float64。但是,该类型仍设置为<i8
.zmetadata 文件中的类型,并且我看到该_FillValue
类型已正确加载为 int。
我需要它是整数类型,因为我正在存储索引并且我的工作是使数据易于使用——用户每次需要时都必须更改每个整数列的 dtype 是不可接受的。
我注意到,如果我只是_FillValue
从编码字典中删除,则类型会保持不变。发生了什么事,我该如何解决?
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 版本,所以我很确定我也做错了,因为这样一个主要错误不会持续很长时间。
完整的错误是:
python-xarray - 如何匹配xarray编码中的所有变量(blosc,zarr压缩)
如何使用 zarr 压缩的示例具有以下代码示例,请参见 xarray doc:
编码映射表示将给定的压缩器应用于“foo”变量。但是,如果我想应用到我的所有变量,不管它们是如何命名的。我是否必须显式创建编码字典以匹配我的数据集/数组中的所有变量,或者是否存在某种通配符模式?我只想用相同的压缩器压缩整个数据集。
python-xarray - 如何将 Zarr 数据转换为 GeoTiff?
我想将 HRRR 预测数据加载到 Google Earth Engine 中,所以我想我需要将其转换为 GeoTiff。
例如