Как мне кодировать значения NaN в numcodecs.Quantize с помощью astype='u2'?
У меня есть большой массив данных xarray, содержащий NaN, и я хочу сохранить его с помощью zarr. Я хочу минимизировать размер файла, и я согласен с потерей нескольких битов точности - 16 бит должны быть в порядке. Я пытался с помощью FixedScaleOffset(astype='u2')
фильтр, но при этом все NaN сохраняются как ноль. Поскольку данные также содержат нули в качестве допустимых значений, это не очень полезно.
1 ответ
NumPy-х u2
(ака uint16
) не поддерживает значения NaN (пожалуйста, ответ SO) Zarr просто отражает поведение NumPy.
Не работает с numcodecs.Quantize
, но xarray encoding
параметры могут указывать _FillValue
:
dataset.to_zarr(store, encoding={'<array-name>': {'dtype': 'uint16', '_FillValue': 65535}})