Migrate from data.dynamical.org
data.dynamical.org stops serving datasets after August 31, 2026.
The datasets remain public and continue updating; only this access route goes away.
Replace each hard-coded https://data.dynamical.org/.../latest.zarr
URL with one of the supported access patterns below. Both resolve the current
repository from our STAC catalog,
so your code does not need to track storage locations or version changes.
Recommended: dynamical-catalog
Use Python 3.12 or newer and install dynamical-catalog>=0.7.0.
Pass the dataset ID from its catalog page.
import dynamical_catalog
ds = dynamical_catalog.open("noaa-gfs-forecast", chunks=None)
Direct STAC and Icechunk
Resolve the icechunk-https asset from STAC each time your
application opens a repository. Do not copy and permanently hard-code the
asset URL.
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, consolidated=False, chunks=None)
Have an agent do it
Paste this into a coding agent running in your repository.
What changes
- Opening requires Icechunk 2 and Python 3.12 or newer.
- The public STAC Collection is the source of truth for the current repository.
- Dataset IDs replace
data.dynamical.orgpaths; dimensions and variable coverage are documented on each catalog page. - The optional
?email=query argument is no longer used.
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.