chronozarr
chronozarr turns a georeferenced raster time series into an interactive dataset that anyone can open with a link. In a web browser, the series plays or scrubs like a video. You zoom and pan the map, and a click on a pixel shows its values over time. In Python, the same files return the exact numbers you stored. No tile server runs anywhere.
Live demo: 117 monthly Sentinel-2 composites of the Ucayali River in Peru, read directly from a storage bucket. Documentation: chronozarr.org.
Quickstart
Install uv, then the chronozarr command:
uv tool install --python 3.13 'chronozarr[geo]==0.4.1'
chronozarr supports Python 3.11 and newer. --python 3.13 makes uv use 3.13 even when an older Python comes first on your computer. With pip, in an environment with Python 3.11 or newer:
python -m pip install 'chronozarr[geo]==0.4.1'
Use a folder with one GeoTIFF per date, with the date in each file name, such as ndvi_2024-01.tif. All files share one grid. To try it without your own files, export twelve months of the public demo as GeoTIFFs:
chronozarr export-cog https://data.chronozarr.org/ucayali_santa_maria_v03 sample --level 2 --times 2024-01..2024-12
Then convert the folder, look at it, and share it:
chronozarr convert sample my_store --dry-run
chronozarr convert sample my_store
chronozarr preview my_store
chronozarr share my_store
The dry run checks every file and writes nothing. convert writes the store. preview opens it in your browser. share prints a temporary link that a colleague opens in a browser; it needs cloudflared and works only while the command runs.
The full quickstart has a sample dataset, the expected output of each command and the pip route.
Share a store
| Link | Command | Lasts | Needs |
|---|---|---|---|
| Temporary | chronozarr share my_store |
While the command runs | cloudflared, your computer on and online |
| Permanent | chronozarr publish my_store --destination s3://BUCKET/PREFIX |
As long as you keep the files | Cloud storage that you control: S3, R2, Google Cloud Storage or Azure |
The recipient needs only a web browser. chronozarr.org serves the viewer page and stores no data. See Share a temporary link and Publish a permanent link.
Read the values
import xarray as xr
ds = xr.open_dataset("my_store", engine="chronozarr")
A store is a Zarr v3 group, so xarray, zarr-python and GDAL 3.13 also read it without chronozarr. See Analyze a store in Python.
JavaScript
npm install chronozarr@0.4.1
The npm package has a DOM-free reader, a MapLibre layer, a GeoLibre plugin and the full viewer for self-hosting. See the JavaScript reader.
Versions
The Python and npm packages are 0.4.1. The store format specification is v0.3.0, a draft. A package upgrade does not change existing v0.3 stores. To use a v0.2 store, convert it with chronozarr convert OLD_STORE NEW_STORE. Release notes for 0.4.1.
Documentation
| Topic | Page |
|---|---|
| What chronozarr is, and how it compares | What is chronozarr? |
| Every input type | Convert your data |
| Sentinel-2 for your own area and dates (a repository checkout) | Sentinel-2 for your area |
| SWOT, NISAR and model output | Examples |
| Every command | Command line |
| Python functions | Python API |
| Format rules | Specification |
| Measured speed, memory and correctness | Performance and evidence |
| Problems and fixes | Troubleshooting |
The pages are written in docs/ and published to chronozarr.org. To contribute, see CONTRIBUTING.md.
License
See LICENSE.
Metadata
Release files for chronozarr 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| chronozarr-0.4.1.tar.gz | 356.2 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chronozarr-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 537.6 kB
Release files / chronozarr-0.4.1.tar.gz
| Download URL | chronozarr-0.4.1.tar.gz |
|---|---|
| Size | 356.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0125b7c0f88aa994b342df897bc5d4c9e8f05f4abcfe06ef22982537ce3c529c
|
|
BLAKE2b-256 checksum How to use checksums |
8f194920d03fff9ca0d9fe971171613c8bda8b156ba6d75fb9d3f611bc09f10e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / chronozarr-0.4.1-py3-none-any.whl
| Download URL | chronozarr-0.4.1-py3-none-any.whl |
|---|---|
| Size | 181.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e5ec2167370126decf78bd24419b736d0cee5240acd651a758f9fe2198f8dd00
|
|
BLAKE2b-256 checksum How to use checksums |
de1e1f63d47586cbe622ac42e2dd6547dcfa3369864ba1574209bab2dda724ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logSecurity for chronozarr 0.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for chronozarr-0.4.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.