Skip to content

GeoZarr Reader Optimization & Upstream Integration #209

@emmanuelmathot

Description

@emmanuelmathot

Context

The EOPF Explorer project developed a custom GeoZarr reader in titiler-eopf that handles multi-scale selection, CF and Zarr conventions decoding, and optimized Zarr dataset access. With GeoZarr now supported by rioxarray and community traction growing, there's a clear path to generalize this reader and move it upstream into rio-tiler / titiler-xarray, making GeoZarr a first-class citizen in the TiTiler ecosystem, not just an EOPF-specific feature.

This activity focuses on two tracks: performance improvements and upstream integration groundwork.

Scope

1. Dataset opening latency reduction

Current dataset opening adds significant overhead to tile serving. Experimental work in [titiler-eopf#88](EOPF-Explorer/titiler-eopf#88) shows promising results. This task will:

  • Profile and optimize the Zarr store opening path (metadata fetching, consolidation lookup, xarray engine initialization)
  • Evaluate obstore vs fsspec performance for initial metadata access
  • Reduce redundant reads during multi-scale level selection
  • Target: bring dataset open time closer to COG-level latency for cached metadata scenarios

2. Full rioxarray integration & CF extension support

The current reader relies on custom EOPF-specific logic for CRS resolution, dimension mapping, and scale/offset decoding. With rioxarray 0.22+ now natively supporting GeoZarr conventions, we can:

  • Replace custom CRS/grid_mapping handling with rioxarray's native GeoZarr path
  • Roll out full CF conventions support
  • Validate that the automatic multi-scale selection logic (currently EOPF-specific) can be expressed generically for any GeoZarr-compliant dataset
  • Document the remaining gaps between the current custom reader and what rio-tiler / titiler-xarray would need to support GeoZarr natively

Outcome

A leaner, faster GeoZarr reader in titiler-eopf with reduced custom code, clear documentation of what needs to move upstream, and a concrete path for @vincentsarago to integrate GeoZarr support directly into TiTiler's core stack. This directly benefits the EOEPCA platform (eoapi-k8s deployments) and any TiTiler user wanting Zarr visualization.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions