NDTiff and RAM backend
NDTiff is a high-performance indexed Tiff format used to save image data in Micro-Manager. NDRAM is a light-weight in-memory storage class. Both implementations provide the same API for in-memory (NDRAMStorage) or file-based (NDTiffStorage) storage.
To install this backend:
pip install exengine[ndstorage]
No further setup is required.
Usage
from exengine.storage_backends.ndtiff_and_ndram import NDRAMStorage, NDTiffStorage
from exengine.kernel.data_coords import DataCoordinates
import numpy as np
# Choose storage type
storage = NDRAMStorage() # In-memory
# OR
storage = NDTiffStorage(directory="/path/to/save") # File-based
# Store data
coords = DataCoordinates(time=1, channel="DAPI", z=0)
data = np.array([[1, 2], [3, 4]], dtype=np.uint16)
metadata = {"exposure": 100}
storage.put(coords, data, metadata)
# Retrieve data
retrieved_data = storage.get_data(coords)
retrieved_metadata = storage.get_metadata(coords)
# Check existence
if coords in storage:
print("Data exists")
# Finalize and close
storage.finish()
storage.close()