Skip to content

Commit f6e71e9

Browse files
committed
Remove VLenUTF8 from filters to avoid double encoding error pydata/xarray#3476
1 parent 6cf0ccb commit f6e71e9

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

sgkit/io/dataset.py

+10
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from typing import Any, Dict, MutableMapping, Optional, Union
33

44
import fsspec
5+
import numcodecs
56
import xarray as xr
67
from xarray import Dataset
78

@@ -38,6 +39,15 @@ def save_dataset(
3839
for v in ds:
3940
# Workaround for https://github.com/pydata/xarray/issues/4380
4041
ds[v].encoding.pop("chunks", None)
42+
43+
# Remove VLenUTF8 from filters to avoid double encoding error https://github.com/pydata/xarray/issues/3476
44+
filters = ds[v].encoding.get("filters", None)
45+
var_len_str_codec = numcodecs.VLenUTF8()
46+
if filters is not None and var_len_str_codec in filters:
47+
filters = list(filters)
48+
filters.remove(var_len_str_codec)
49+
ds[v].encoding["filters"] = filters
50+
4151
ds.to_zarr(store, **kwargs)
4252

4353

0 commit comments

Comments
 (0)