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

Exactly one input port exists at a time, of the type selected in the module settings:

NameDirectionData TypeDescription
🠺Float32 SignalsInSignalBlockF32Float signal data
🠺Int32 SignalsInSignalBlockI32Signed 32-bit integer signal data
🠺Int16 SignalsInSignalBlockI16Signed 16-bit integer signal data
🠺UInt16 SignalsInSignalBlockU16Unsigned 16-bit integer signal data
🠺Line ReadingsInLineReadingDigital line events, stored as [line, value]

The Zarr array uses the matching data type (float32, int32, int16, uint16; uint32 for line readings).

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.