Skip to content

Conversation

@srivarra
Copy link
Collaborator

@srivarra srivarra commented Dec 23, 2025

Added read-only support for opening OME-Zarr datasets from remote URLs (HTTP/HTTPS, S3, GCS, Azure).

In addition I made a small adjustment for to use metadata-based navigation instead of directory iteration (HTTP directory listings return HTML artifacts, so we read paths from OME-NGFF metadata files instead)

Here's how you use it:

from iohub.ngff import open_ome_zarr

# Open from public dataset
dataset = open_ome_zarr(
    "https://public.czbiohub.org/comp.micro/neurips_demos/waveorder/20x.zarr/",
    mode="r"
)

or with the cli:

iohub info https://public.czbiohub.org/comp.micro/neurips_demos/waveorder/20x.zarr/ -v

I touched up the CLI output a bit as well since it used directory based traversal instead of metadata based one.

  • Tree hierarchy now uses rich.Tree instead of manual box-drawing characters
  • Summary displayed in a styled Panel with a two-column Table
  • Abbreviated Space units (µm, nm, etc.) now read from OME-Zarr metadata instead of hardcoded to um.
Before:
=== Summary ===
Format:                  omezarr v0.4
(Z, Y, X) scale (um):    (0.1625, 0.1625)
...

After:
╭─────────────── Summary ───────────────╮
│  Format              omezarr v0.4    │
│  (Z, Y, X) scale (µm)  (0.1625, ...) │
│  ...                                 │
╰───────────────────────────────────────╯

Todos

  • Make sure iohub info works for remote stores over HTTP/HTTPS
  • Add tests for S3, GCS, Azure... (maybe?)

Maybe in the future we can try to wrangle how we would want to do writes. It's also a good idea to address #265 after since I've touched a lot of the info printing code here, so it seems like relative modification.

As an aside I'm using fssspec, but obstore provides greater performance some of the time, however it doesn't work for simple servers like caddy, but it's great for S3 and such.

@srivarra srivarra linked an issue Dec 23, 2025 that may be closed by this pull request
@srivarra srivarra marked this pull request as ready for review January 5, 2026 18:09
@srivarra srivarra requested a review from ieivanov January 5, 2026 18:11
@ieivanov
Copy link
Contributor

ieivanov commented Jan 7, 2026

That's an exciting feature! I'll take a closer look.

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.

support ome-ngff on s3

3 participants