Skip to main content

chronozarr

CI PyPI npm

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

This quickstart targets Python and npm 0.5.1. The release notes cover the new conversion options, custom coordinate systems, viewer bundle and compatibility with existing stores.

Install uv, then the chronozarr command:

uv tool install --python 3.13 'chronozarr[geo]==0.5.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.5.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 and share it:

chronozarr convert sample my_store --dry-run
chronozarr convert sample my_store
chronozarr share my_store      # a temporary public link that any computer can open
chronozarr preview my_store    # or: private, opens on this computer only

The dry run checks every file and writes nothing. convert writes the store. share prints a temporary link that you or a colleague open in a browser. It needs cloudflared, works only while the command runs and your computer is on, and anyone with the link can read the store. preview opens the store in your browser through a local server. Its link opens only on this computer.

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. They return the stored values: plain xarray and CarbonPlan's zarr-layer 0.11.0 do not apply its band scale and offset or its mask (GeoZarr review). See Analyze a store in Python.

JavaScript

npm install chronozarr@0.5.1

The npm package has a DOM-free reader, a MapLibre layer, a GeoLibre plugin and the production viewer for self-hosting. See the JavaScript reader.

Versions

Python and npm package 0.5.1 read both draft store formats: v0.3.0 for CRSs with an EPSG code and v0.4.0 for other CRSs. Package versions and store specification versions are independent. Existing v0.3 stores need no conversion. Readers from package 0.4.1 and earlier cannot open v0.4 stores; upgrade the reader to 0.5.1. To use a v0.2 store, convert it with chronozarr convert OLD_STORE NEW_STORE. See the 0.5.1 release notes.

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
Instructions for coding agents, and these docs as plain text Agent skill, llms.txt

The pages are written in docs/ for chronozarr.org. Use the source installation guide when developing from a checkout. Package publication and site deployment are separate steps. To contribute, see CONTRIBUTING.md.

License

See LICENSE.

Metadata

Release files for chronozarr 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chronozarr 0.5.1
File Size Uploaded Provenance
chronozarr-0.5.1.tar.gz 2.5 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for chronozarr 0.5.1
File Interpreter ABI Platform
chronozarr-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.8 MB

Release files / chronozarr-0.5.1.tar.gz

Download URL chronozarr-0.5.1.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
979cbe4047bd31520962c94ae1e7584301c9a23add954dc5d4e5513f1ea11ade
BLAKE2b-256 checksum
How to use checksums
da7a2ab532d28844541aa2ba1bb9b1e1c5b49fb0517e05014e02df6a0118ce46
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 24, 2026.

Transparency log

Release files / chronozarr-0.5.1-py3-none-any.whl

Download URL chronozarr-0.5.1-py3-none-any.whl
Size 263.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aa93f4cb9c1cf0cde17885f9d808e82ac3fe58abf19e9accba9fce20e9722fb1
BLAKE2b-256 checksum
How to use checksums
6505ae00ef5a6e308483c42721b7e2e558c94761bc8d35b29be5a9ae472beb9b
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 24, 2026.

Transparency log

Security for chronozarr 0.5.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.

Select from 2 files

Attestation for chronozarr-0.5.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 24, 2026.

Transparency log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page