ipygis
A bridge to GIS libraries running in the browser.
Development installation
micromamba create -n ipygis
micromamba activate ipygis
micromamba install xeus-python pip "nodejs<25"
pip install jupyterlab -e .
jupyter labextension develop --overwrite .
When making changes to the JavaScript code, you can just recompile that part:
jlpm run build
Running the example notebooks
Run examples/build_time.ipynb first to create the Icechunk repository. This notebook
cannot run in JupyterLite because of incompatible libraries, but the created repository
is the only thing that will be needed by examples/run_time.ipynb.
That notebook uses a read-only API modeled on Zarr-Python’s asynchronous interface.
Zarrita reads, decodes, and slices arrays in the
browser, returning NumPy arrays to Python without Zarr-Python’s synchronous bridge.
The browser uses
icechunk-js by default. This backend
requires no COOP/COEP headers or shared memory. You can change the backend to
"@earthmover/icechunk" but this is a WASM library that needs SharedArrayBuffer and
so the server must send COOP/COEP headers. In this case JupyterLab must use a special
configuration:
jupyter lab --config=./jupyter_server_config.json
Both readers are installed from npm. No local Icechunk checkout or WASM preparation
step is required. The published @earthmover/icechunk 2.0.3 package does not include
the browser HTTP virtual-chunk callback; use backend="icechunk-js" for the
HydroSHEDS runtime notebook.
Asynchronous array reads
from ipygis.zarr import asynchronous as zarr
group = await zarr.open_group(session.store, mode="r")
array = await group.getitem("0")
print(array.shape, array.dtype, array.chunks)
region = await array.getitem((10, slice(100, 200), slice(200, 300)))
point = await array.getitem((10, 100, 200))
You can also use await zarr.open_array(session.store, path="0", mode="r").
Reads support integers (including negative indices), ellipses, and positive-step
slices. Integer and floating-point dtypes from 8-bit integers through 64-bit
integers/floats are supported; 64-bit integers are transferred as binary data.
Point selections return NumPy scalars; other selections return NumPy arrays.
Metadata attributes are local snapshots, not a write API. Writing, fancy/boolean
indexing, new axes, negative slice steps, and nonnumeric dtypes are unsupported.
TIFF LZW decoding is registered in JavaScript automatically. Other codecs must be
supported by Zarrita; this API does not apply xarray's CF decoding or geospatial
coordinate selection. Close the session after finishing all reads.
The existing session.store remains usable with Zarr-Python. The new array API
uses its browser backend directly; Python does not fetch or decode the chunks.
Release files for ipygis 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ipygis-0.1.2.tar.gz | 8.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ipygis-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.4 MB
Release files / ipygis-0.1.2.tar.gz
| Download URL | ipygis-0.1.2.tar.gz |
|---|---|
| Size | 8.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e04646a6455d838ab1b957762c9f5d616e38261e32ab5e3058f5ebd4117ccaac
|
|
BLAKE2b-256 checksum How to use checksums |
b53e53b0b2d22633f6f13b6f799db4aab9c4e71aa326aa273cde75288c53bbe0
|
| 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 Sep 11, 2026.
Transparency logRelease files / ipygis-0.1.2-py3-none-any.whl
| Download URL | ipygis-0.1.2-py3-none-any.whl |
|---|---|
| Size | 12.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5dce6daa9aed44eac68f83d54d0cc36db74200a09db944b91eb47ee4ae3cc22a
|
|
BLAKE2b-256 checksum How to use checksums |
27f91c2b0a16a442be3661da02ff5af729b499c9b95789271c745e4048b18cc2
|
| 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 Sep 11, 2026.
Transparency log