Zarr Writer

This module writes timestamped matrix data into a Zarr array store.

Usage

Only one input datatype is accepted at a time, so you can connect either the Float64 Signals or the Int32 Signals input port, but not both at the same time.

Reading Data

It is recommended to load the generated data using the edlio Python module, which will do the right thing automatically. You can also manually open the data and read it via any Zarr reader that supports Zarr v3. Data will be stored in checksummed, zstd-compressed form, which is widely supported.

In Python, the python-zarr module is available to read the array data.

Ports

NameDirectionData TypeDescription
🠺Float64 SignalsInSignalBlockF32Float signal data
🠺Int32 SignalsInSignalBlockI32Integer signal data

Stream Metadata

No output streams are generated, but for input signal streams the following stream metadata keys are read and persisted as attributes on the resulting Zarr array:

KeyTypeRequired?Description
signal_namesList[String]RecommendedList of signal names contained in each data block.
sample_rateDoubleRecommendedSampling rate in samples per second.
time_unitStringNoUnit of the data block timestamps. Persisted on the timestamps array.
data_unitStringNoUnit of the signal block values after the affine transform below.
data_scaleDoubleNoSee the affine contract for data_scale.
data_offsetDoubleNoSee data_scale.

When the upstream module emits raw samples plus an affine scale/offset, the writer preserves the raw samples in the Zarr array and stores data_scale / data_offset as array attributes, so the conversion to physical units is recoverable from the recording alone.