Metadata-Version: 2.4
Name: zarr-vectors
Version: 0.2.0
Summary: Python utilities for the Zarr Vector Format (ZVF) — cloud-native storage for points, lines, streamlines, graphs, and meshes.
Author: Andrew Keenlyside, Forrest Collman
License: BSD-3-Clause
Project-URL: Homepage, https://github.com/AllenInstitute/zarr-vectors-py
Project-URL: Documentation, https://zarr-vectors-py.readthedocs.io
Project-URL: Repository, https://github.com/AllenInstitute/zarr-vectors-py
Project-URL: Issues, https://github.com/AllenInstitute/zarr-vectors-py/issues
Project-URL: Specification, https://github.com/AllenInstitute/zarr_vectors
Keywords: zarr,point-cloud,mesh,skeleton,streamline,connectomics,spatial
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: numcodecs>=0.12
Requires-Dist: zarr>=3.0; python_version >= "3.11"
Requires-Dist: zarr<3,>=2.18; python_version < "3.11"
Provides-Extra: draco
Requires-Dist: DracoPy>=1.3; extra == "draco"
Provides-Extra: obstore
Requires-Dist: obstore>=0.3; extra == "obstore"
Provides-Extra: fsspec
Requires-Dist: fsspec>=2024.0; extra == "fsspec"
Requires-Dist: s3fs>=2024.0; extra == "fsspec"
Requires-Dist: gcsfs>=2024.0; extra == "fsspec"
Requires-Dist: adlfs>=2024.0; extra == "fsspec"
Provides-Extra: icechunk
Requires-Dist: icechunk>=2; python_version >= "3.12" and extra == "icechunk"
Provides-Extra: cloud
Requires-Dist: zarr-vectors[obstore]; extra == "cloud"
Provides-Extra: all
Requires-Dist: zarr-vectors[draco,fsspec,icechunk,obstore]; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: ruff>=0.4; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"
Requires-Dist: linkml<2,>=1.7; extra == "dev"
Requires-Dist: jsonschema<5,>=4.0; extra == "dev"
Dynamic: license-file

> [!NOTE]
> This package is under active development.

<img src="assets/zarr-vectors.png" alt="zarr-vectors" width="60%" />

**Tools for Zarr Vectors Data**

`zarr-vectors-py` is a Python package for reading, writing, and managing large-scale vector geometry data in the zarr vectors format — a chunked, cloud-native format built on Zarr v3 for multiscale points, lines, streamlines, graphs, skeletons, and meshes.

The package supports supervoxel-level spatial binning with separated chunk and bin sizes, per-level object sparsity for balanced multi-resolution pyramids, and OME-Zarr-compatible multiscale metadata.

*Aligned to the Zarr Vectors specification by Forrest Collman, Allen Institute for Brain Sciences*
[Link to specification GitHub](https://github.com/AllenInstitute/zarr_vectors)

---
## Documentation

**link to readthedocs:** https://zarr-vectors-py.readthedocs.io/en/latest

---

## Install

```bash
pip install zarr-vectors
```

---

## Store Layout

```
dataset.zarrvectors/
├── .zattrs                          # root metadata: SID, CRS, conventions, base_bin_shape
├── 0/                    # full resolution (bin_ratio = 1,1,1)
│   ├── vertices/                    # spatial positions (ragged per bin)
│   ├── vertex_group_offsets/        # byte offsets for sub-bin random access
│   ├── links/                       # connectivity (edges, faces, parents)
│   ├── attributes/                  # per-vertex data
│   │   ├── intensity/
│   │   └── gene_expression/
│   ├── object_index/                # object ID → (chunk, vertex_group) mapping
│   ├── object_attributes/           # per-object metadata
│   ├── groupings/                   # group ID → [object IDs]
│   ├── groupings_attributes/        # per-group metadata
│   └── cross_chunk_links/           # connectivity across chunk boundaries
├── 1/                    # coarsened (bin_ratio, object_sparsity in .zattrs)
│   └── [same arrays]
├── parametric/                      # algebraic objects (planes, spheres)
│   ├── objects/
│   └── object_attributes/
└── metadata.json
```
