Skip to content

pymmcore-plus/ome-writers

Repository files navigation

ome-writers

License PyPI Python Version CI codecov

OME-TIFF and OME-ZARR writer APIs designed for microscopy acquisition.

This package provides a unified interface for writing OME-TIFF and OME-ZARR files, with various different backends. It is currently designed/optimized for "deterministic" use cases where the shape of the data is known ahead of time, and the data can be efficiently chunked and written in a predictable manner with a series of calls to stream.append(frame) as the data is generated.

Installation

pip install ome-writers

Or, include all optional dependencies for specific backends:

  • tensorstore: for tensorstore backend support
  • acquire-zarr: for acquire-zarr backend support
  • tiff: for tiff backend support using tifffile.
  • all: install all backends
pip install "ome-writers[all]"

Basic Usage

from ome_writers import Dimension, create_stream

# Configure the dimensions of the data stream
# The stream expects that data will be appended in the order and shape
# defined by the dimensions.
# labels must currently be one of 't', 'c', 'z', 'y', 'x', or 'p' (stage position).
dims = [
    Dimension(label="t", size=10, unit=(1.0, "s")),
    Dimension(label="c", size=3),
    Dimension(label="z", size=5, unit=(1.0, "um")),
    Dimension(label="y", size=512, unit=(1.0, "um"), chunk_size=128),
    Dimension(label="x", size=512, unit=(1.0, "um"), chunk_size=128),
]

stream = create_stream(
    "my_data.zarr",
    dimensions=dims,
    dtype='uint16',
    # backend may be any of
    # "acquire-zarr", "tensorstore", "tiff" (for ome-tiff) or "auto"
    backend="acquire-zarr"  
)

# Write data frame by frame, as it is generated by your application
for frame in ...:
    stream.append(frame)

# Flush any pending writes to disk
stream.flush()

Contributing

We welcome contributions to ome-writers! See our contributing guid for details.

About

Unified API for streaming data to disk in OME formats

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages