Quickstart

Contents

Quickstart#

Five lines of Python — every NEXRAD KLOT (Chicago, IL) scan ever published to the public archive, in one xarray.DataTree. No downloads, no decoders, no waiting.

import xarray as xr
import icechunk

storage = icechunk.s3_storage(
    bucket="nexrad-arco",
    prefix="KLOT",
    region="us-east-1",
    anonymous=True,
)
session = icechunk.Repository.open(storage).readonly_session("main")

dt = xr.open_datatree(session.store, engine="rustytree", chunks=None)
print(sorted(dt.children))   # → ['VCP-12', 'VCP-212', 'VCP-34', ...]

That’s it. dt is a hierarchical, time-indexed view of the entire KLOT archive on the AWS Open Data Registry, grouped by Volume Coverage Pattern and sweep. Every variable is lazy — only the Zarr v3 chunks you slice into are fetched from S3.

Note

The same archives are also catalogued in Arraylake, Earthmover’s managed data platform — Client().get_repo("atmoscale/KLOT") in place of the icechunk block above, returning an equivalent read-only session. That route needs an Arraylake account and access to the atmoscale organization, so the tutorials all run the anonymous S3 path shown here; each one shows the Arraylake equivalent alongside it.

What’s next#

  • Notebook 1: NEXRAD KLOT Demo — the full access walkthrough: narrow the tree to one VCP and sweep, select a scan, plot its reflectivity.

  • Notebook 2: KLOT low sweeps — if you only need the lowest cuts, open the KLOT-lowsweeps virtual archive and get the 2×2 polarimetric view (Z, ZDR, RhoHV, PhiDP).

  • Tutorials — paper reproduction and large-scale rainfall accumulation.

  • Installation — if import icechunk failed, start here.

Note

engine="rustytree" is a Rust-backed xarray.DataTree backend (rustytree-xarray on PyPI) recommended for radar-datatree archives. Drop-in replacement for engine="zarr", ~10× faster on icechunk repos served from object storage.