Skip to main content

Build Status

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)

Source distribution for ipygis 0.1.2
File Size Uploaded
ipygis-0.1.2.tar.gz 8.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ipygis 0.1.2
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

0.1.4

2 release files

0.1.3

2 release files

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.0

2 release files

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