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:
| Name | Direction | Data Type | Description |
|---|---|---|---|
| 🠺Float32 Signals | In | SignalBlockF32 | Float signal data |
| 🠺Int32 Signals | In | SignalBlockI32 | Signed 32-bit integer signal data |
| 🠺Int16 Signals | In | SignalBlockI16 | Signed 16-bit integer signal data |
| 🠺UInt16 Signals | In | SignalBlockU16 | Unsigned 16-bit integer signal data |
| 🠺Line Readings | In | LineReading | Digital 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:
| Key | Type | Required? | Description |
|---|---|---|---|
signal_names | List[String] | Recommended | List of signal names contained in each data block. |
sample_rate | Double | Recommended | Sampling rate in samples per second. |
time_unit | String | No | Unit of the data block timestamps. Persisted on the timestamps array. |
data_unit | String | No | Unit of the signal block values after the affine transform below. |
data_scale | Double | No | See the affine contract for data_scale. |
data_offset | Double | No | See 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.