Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support OME-TIFF through custom OmeTiffStore #254

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

manzt
Copy link
Member

@manzt manzt commented Mar 3, 2025

Adds experimental support for OME-TIFF using a custom Zarr store (OmeTiffStore). Internally, a geotiff.GeoTIFF image is mapped to a multiscale Zarr dataset. This implementation is experimental, and care has been taken to prevent the OME-XML data model from leaking out like in Viv/Avivator. Instead, OME-TIFF metadata MUST be mapped to NGFF to tell Vizarr how to render.

Caveats: Does not support interleaved data nor multi-image OME-TIFFs (yet).

demo: https://deploy-preview-254--vizarr.netlify.app/?source=https://viv-demo.storage.googleapis.com/Vanderbilt-Spraggins-Kidney-MxIF.ome.tif

I'm thinking that it might be preferable to use a custom protocol (e.g., ome-tiff://) to prefix the sources explicitly that are OME-TIFF (rather that using the URL to determine which store to use).

If we were to upstream this into Viv, I also think it would be useful to put the OME-XML string somewhere in the store. But the core idea would be that we don't expose a datastructure with the parsed XML other than what we can translate to OME-NGFF.

@manzt manzt changed the title Support OME-TIFF through custom Zarr store Support OME-TIFF through custom OmeTiffStore Mar 3, 2025
@manzt manzt force-pushed the manzt/ome-tiff branch 3 times, most recently from 8021b71 to 07a35a6 Compare March 3, 2025 15:56
Adds experimental support for OME-TIFF using a custom Zarr store
(`OmeTiffStore`). Internally, a `geotiff.GeoTIFF` image is mapped to a
multiscale Zarr dataset. This implementation prevents OME-XML data model
from leaking out like in Viv/Avivator. Instead, OME-TIFF metadata MUST
be mapped to NGFF to tell Vizarr how to render.

Caveats: Does not support interleaved data nor multi-image OME-TIFFs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant