Skip to content

[Proposed Feature] Demonstrate Icechunk virtualization of operational, non-cloud-native data sources #437

Description

@tylere

Summary

Source Cooperative is well-positioned to demonstrate a powerful emerging pattern: using
Icechunk to provide cloud-native Zarr access to operational data sources that are
constantly updating and published in non-cloud-native formats — without duplicating the
underlying data.

NOAA's RRFS (Rapid Refresh Forecast System), published as GRIB2 to s3://noaa-rrfs-pds
via the NODD program, is an ideal candidate for a reference implementation of this pattern.

The Pattern

Many high-value scientific and operational datasets are:

  • Published in legacy formats (GRIB2, NetCDF, HDF5)
  • Constantly updating (hourly, daily forecast cycles)
  • Already on S3 or other object storage, but not cloud-native

Icechunk virtual stores allow Source Cooperative to publish a reference metadata layer
that maps Zarr chunks to byte ranges in the source files — giving users a native
xarray.open_zarr() interface with no data duplication, while the source bytes stay where
they are.

Each new data cycle becomes a new Icechunk commit, enabling:

  • Transactional updates: new forecast cycles appended atomically
  • Versioning: users can pin to or replay any historical snapshot
  • Zero storage overhead: only chunk manifests are stored on Source Coop

Why This Matters

This positions Source Cooperative not just as a data host, but as an access layer
for the broader scientific data ecosystem — adding cloud-native interoperability to data
that already exists publicly, but isn't practically usable in modern workflows.

This pattern could apply broadly:

  • NOAA NWP model output (RRFS, GFS, HRRR, NAM)
  • NASA/ESA satellite L1/L2 products in HDF5
  • Copernicus Climate Data Store outputs
  • Any operational dataset on S3 in a non-Zarr format

Reference Implementation: NOAA RRFS

As a concrete demonstration, we propose building a VirtualiZarr/Icechunk store over
RRFS GRIB2 output, scoped to:

  • CONUS domain
  • Key surface variables (2m temp, 10m wind, precip, CAPE, reflectivity)
  • 0–24h forecast horizon
  • Rolling append as new forecast cycles are published

This gives us a working, publicly visible example to document, present at CNG, and use
as a template for onboarding other datasets.

Open Questions

  • Who runs the manifest generation pipeline? (Source Coop infrastructure, NOAA
    partnership, or community contributor?)
  • Update cadence — RRFS runs hourly; is near-real-time append feasible or do we
    start with a daily batch?
  • Does NODD egress coverage extend to chunk reads by end users, or only to the
    manifest download?
  • What's the right interface for contributors to register new virtual datasets of
    this type on Source Coop?

Alternatives Considered

Kerchunk JSON/Parquet reference files: mature tooling, simpler to generate, but no
transactional update model — each new forecast cycle produces a new file rather than an
append. No versioning or snapshot pinning. Icechunk supersedes this approach for
operational, continuously updating data.

Related Work

Who Would Benefit

  • Weather/climate researchers using Python/Xarray
  • ML practitioners

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