Migrate from data.dynamical.org

Replace each hard-coded https://data.dynamical.org/.../latest.zarr URL with one of the two supported ways to open a dataset. Dataset IDs replace data.dynamical.org paths: https://data.dynamical.org/noaa/gfs/forecast/latest.zarr becomes noaa-gfs-forecast. Both need Icechunk 2, and both resolve the current repository from our STAC catalog, so your code does not need to track storage locations or version changes.

dynamical-catalog

Option 1: open using dynamical-catalog, a thin STAC and Icechunk wrapper that ensures minimum dependency versions. Install dynamical-catalog>=0.8.0 on Python 3.12 or newer, and pass the dataset ID from its catalog page.

import dynamical_catalog

ds = dynamical_catalog.open("noaa-gfs-forecast", chunks=None)

STAC and Icechunk

Option 2: load the STAC and open directly with Icechunk. Resolve the icechunk-https asset from the dataset's STAC Collection each time your application opens a repository. Do not copy and permanently hard-code the asset URL. The example below uses pystac, but any HTTP client can read the Collection.

import icechunk
import pystac
import xarray as xr

catalog = pystac.Catalog.from_file("https://stac.dynamical.org/catalog.json")
collection = catalog.get_child("noaa-gfs-forecast")
asset = collection.assets["icechunk-https"]

repo = icechunk.Repository.open(icechunk.http_storage(asset.href))
session = repo.readonly_session("main")

ds = xr.open_zarr(session.store, chunks=None)

Option 2 is not Python-specific. Icechunk publishes a JavaScript/TypeScript client (@earthmover/icechunk, paired with zarrita) and a Rust crate (icechunk), both of which open the same icechunk-https asset over HTTPS.

Have an agent do it

Paste this into a coding agent running in your repository.

Help

If you have any questions or run into trouble migrating, we want to help. Email us at [email protected].

OMGIMERG, Zarr-Python 3.3.0, analyzing forecast rollouts cont., NVIDIA Earth-2