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. Both need Python 3.12 or newer, 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

A thin STAC and Icechunk wrapper that ensures minimum dependency versions. Install dynamical-catalog>=0.7.0 and pass the dataset ID from its catalog page.

import dynamical_catalog

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

STAC and 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. Any HTTP client can read the Collection — the example below uses httpx, and pystac works too, but neither is required.

import httpx
import icechunk
import xarray as xr

url = "https://stac.dynamical.org/noaa-gfs-forecast/collection.json"
href = httpx.get(url).json()["assets"]["icechunk-https"]["href"]

repo = icechunk.Repository.open(icechunk.http_storage(href))
session = repo.readonly_session("main")
ds = xr.open_zarr(session.store, chunks=None)

Python is not a requirement either. 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 plain HTTP.

Have an agent do it

Paste this into a coding agent running in your repository.

What changes

Help

If the replacement does not cover your access pattern, email [email protected] with the data.dynamical.org URL, variables, spatial subset, and time range you use.

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