Skip to content

Commit

Permalink
Address PR comments.
Browse files Browse the repository at this point in the history
  • Loading branch information
aliddell committed Oct 26, 2023
1 parent 1ad26d6 commit c3cc019
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 512 deletions.
42 changes: 42 additions & 0 deletions src/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# The Zarr Storage device

## Components

### The `StorageInterface` class.

Defines the interface that all Acquire `Storage` devices must implement, namely

- `set`: Set the storage properties.
- `get`: Get the storage properties.
- `get_meta`: Get metadata for the storage properties.
- `start`: Signal to the `Storage` device that it should start accepting frames.
- `stop`: Signal to the `Storage` device that it should stop accepting frames.
- `append`: Write incoming frames to the filesystem or other storage layer.
- `reserve_image_shape`: Set the image shape for allocating chunk writers.

### The `Zarr` class

An abstract class that implements the `StorageInterface`.
Zarr is "[a file storage format for chunked, compressed, N-dimensional arrays based on an open-source specification.](https://zarr.readthedocs.io/en/stable/index.html)"

### The `ZarrV2` class

Subclass of the `Zarr` class.
Implements abstract methods for writer allocation and metadata.
Specifically, `ZarrV2` allocates one writer of type `ChunkWriter` for each multiscale level-of-detail
and writes metadata in the format specified by the [Zarr V2 spec](https://zarr.readthedocs.io/en/stable/spec/v2.html).

### The `Writer` class

An abstract class that writes frames to the filesystem or other storage layer.
In general, frames are chunked and potentially compressed.
The `Writer` handles chunking, chunk compression, and writing.

### The `ChunkWriter` class

Subclass of the `Writer` class.
Implements abstract methods relating to writing and flushing chunk buffers.

### The `BloscCompressionParams` struct

Stores parameters for compression using [C-Blosc](https://github.com/Blosc/c-blosc).
Loading

0 comments on commit c3cc019

Please sign in to comment.