"/vsiicechunk/" in gdal.GetFileSystemsPrefixes()False
Icechunk is a transactional storage engine for Zarr. GDAL reads Icechunk repositories through /vsiicechunk/ when built with it, which most packaged builds are not yet. This page runs only where the build has it; the store status below says whether it did this time.
ECMWF’s AI forecast system, published by dynamical.org as an Icechunk repository on anonymous S3 (CC-BY-4.0). New initialisation times are appended as they are produced.
/vsis3/dynamical-ecmwf-aifs-single/ecmwf-aifs-single-forecast/v0.1.0.icechunk/vsiicechunk/.The 10 m wind at Hobart through the first forecast:
if live("aifs-icechunk"):
pt = dict(latitude=-42.9, longitude=147.3, method="nearest")
u = aifs["wind_u_10m"].isel(init_time=0).sel(**pt)
v = aifs["wind_v_10m"].isel(init_time=0).sel(**pt)
fig, ax = plt.subplots(figsize=(9, 3.2))
u.plot(ax=ax, label="u"); v.plot(ax=ax, label="v"); ax.legend()
plt.show()A single 2D face of the 4D array, as a classic raster any GDAL tool can use: :{0}:{0} fixes init_time and lead_time.
Earthmover’s ERA5 Icechunk repository opens, and its coordinates read, but its data variables use the pcodec codec, which GDAL does not decode yet. The read below shows the error GDAL gives; when GDAL gains the codec, this cell starts producing values with no change here.
/vsiicechunk/{/vsis3/earthmover-icechunk-era5/icechunkV2}/pressure/spatial/vsiicechunk/.dsn = "/vsiicechunk/{/vsis3/earthmover-icechunk-era5/icechunkV2}/pressure/spatial"
if live("era5-icechunk"):
era5 = xr.open_dataset(dsn, engine="gdalxarray",
config_options={"AWS_NO_SIGN_REQUEST": "YES", "AWS_REGION": "us-east-1"})
print(dict(era5.sizes))
var = list(era5.data_vars)[0]
try:
era5[var].isel({d: 0 for d in era5[var].dims}).values
except Exception as e:
print(type(e).__name__, str(e).splitlines()[0])Rendered with GDAL 3.13.3, xarray 2026.4.1.dev32+g71cfb13ac, numpy 2.5.4, gdalxarray 0.5.1, rasterix 0.2.4.