-
Notifications
You must be signed in to change notification settings - Fork 140
Description
I am running into a weird error when adding chunking mixed with compression to my zarr3 file with tensorstore. This error took me a while to discover the root cause of since the error message is pretty ambiguous in my eyes. It seems that when my chunk size gets too large with compression on, I receive this error. However, based on my math (550 * 200 * 10 * 8) this should only be around a 9 mb chunk which is relatively small from my research online and within the sizes for zstd compression, so I don't understand why it is causing an error. Any insights or discussion would be appreciated.
tensorstore::Context defaultContext = tensorstore::Context::Default();
// Define the shape and data type of the tensorstore
tensorstore::Result<tensorstore::TensorStore<>> file = tensorstore::Open({{"driver", "zarr3"},
{"kvstore", {{"driver", "file"}, {"path", filepath}}},
{"metadata",
{
{"data_type", "float64"},
{"fill_value", 0.0},
{"shape", {1500, 700, 200, 10}},
{"codecs",
{{{"name", "zstd"}, {"configuration", {{"level", 1}}}}}},
{"chunk_grid",
{{"name", "regular"},
{"configuration",
{{"chunk_shape", {1, 550, 200, 10}}}}}},
}}},
defaultContext, tensorstore::OpenMode::delete_existing | tensorstore::OpenMode::create, tensorstore::ReadWriteMode::read_write)
.result();Error:
terminate called after throwing an instance of 'std::runtime_error' what(): Failed to create TensorStore: Error opening "zarr3" driver: Mismatch in "codecs": Cannot merge zarr codec constraints [] and [{"configuration":{"level":1},"name":"zstd"}]: Mismatch in number of bytes -> bytes codecs (0 vs 1)