0

我有一个包含 NaN 的大型 xarray DataArray 并想用 zarr 保存它。我想最小化文件大小,并且可以丢失一些精度 - 16 位应该可以。我尝试使用numcodecs.FixedScaleOffset(astype='u2')过滤器,但这会将所有 NaN 存储为零。由于数据还包含零作为有效值,因此这不是很有帮助。

4

2 回答 2

0

它不适用于numcodecs.Quantize,但 xarrayencoding参数可以指定_FillValue

dataset.to_zarr(store, encoding={'<array-name>': {'dtype': 'uint16', '_FillValue': 65535}})

https://xarray.pydata.org/en/stable/io.html#writing-encoded-data

于 2019-07-22T15:57:32.593 回答
0

NumPy 的u2(又名uint16)不支持 NaN 值(请这个SO answer)。Zarr 只是反映了 NumPy 的行为。

于 2019-04-19T04:11:36.207 回答