Zarr-Cesium
CesiumJS providers for interactive 2D and 3D visualization of environmental and atmospheric data stored in Zarr.
Zarr-Cesium enables direct, client-side visualization of scientific datasets stored in the Zarr format. No preprocessing. No tile servers. No backend.
It provides a set of CesiumJS data providers that stream and render multidimensional geospatial datasets directly from HTTP/S3/GCS object storage.
Screenshots
Features
- Zarr v2 and v3 support
- Single-scale and multiscale datasets (following the format generated using ndpyramid)
- Legacy ndpyramid and GeoZarr pyramid layouts
- Icechunk and custom Zarrita-readable stores across the 2D, cube, and velocity providers
- Private-store requests with static options or per-object URL/header transformation
- 2D scalar, 3D volumetric, and 3D vector field visualization
- Automatic resolution selection for multiscale datasets
- CRS-aware (EPSG:4326 & EPSG:3857)
- WebGL-accelerated rendering
- Dynamic styling (colormap, opacity, scaling, slices, animation)
- Point, time-series, vertical-profile, and transect queries
Provider Overview
| Provider | Purpose | Description |
|---|---|---|
| ZarrLayerProvider | 2D scalar fields | Renders imagery layers from single/multiscale Zarr arrays. |
| ZarrCubeProvider | 3D volumetric cubes | Renders 3D slices (horizontal & vertical). |
| ZarrCubeVelocityProvider | 3D vector fields | Animated particle advection from U/V components. |
Architecture Diagram (High-level)
Zarr or Icechunk Store (HTTP / S3 / GCS / custom Readable)
↓
zarrita.js (Zarr client)
↓
zarr-maps-tiling + zarr-maps-colormap
↓
Zarr-Cesium Providers and query APIs
↓
CesiumJS (WebGL)
↓
2D/3D Interactive Visualization
Acknowledgements
Built with:
Developed at the National Oceanography Centre (NOC) as part of the Atlantis project.