Skip to main content

Tool for robustly creating and updating Zarr datacubes from smaller slices

Project description

 zappend

CI codecov PyPI Version Conda Version Code style: black Binder GitHub License


zappend is a tool written in Python that is used for robustly creating and updating Zarr datacubes from smaller dataset slices. It is built on top of the awesome Python packages xarray and zarr.

Motivation

The objective of zappend is enabling geodata scientists and developers to robustly create large data cubes. The tool performs transaction-based dataset appends to existing data cubes in the Zarr format. If an error occurs during an append step — typically due to I/O problems or out-of-memory conditions — zappend will automatically roll back the operation, ensuring that the existing data cube maintains its structural integrity. The design drivers behind zappend are first ease of use and secondly, high configurability regarding filesystems, data source types, data cube outline and encoding.

The tool comprises a command-line interface, a Python API for programmatic control, and a comprehensible documentation to guide users effectively. You can easily install zappend as a plain Python package using either pip install zappend or conda install -conda-forge zappend.

Features

The zappend tool provides the following features:

  • Locking: While the target dataset is being modified, a file lock is created, effectively preventing concurrent dataset modifications.
  • Transaction-based dataset appends: On failure during an append step, the transaction is rolled back, so that the target dataset remains valid and preserves its integrity.
  • Filesystem transparency: The target dataset may be generated and updated in any writable filesystems supported by the fsspec package. The same holds for the slice datasets to be appended.
  • Dataset polling: The tool can be configured to wait for slice datasets to become available.
  • Dynamic attributes: Use syntax {{ expression }} to update the target dataset with dynamically computed attribute values.
  • CLI and Python API: The tool can be used in a shell using the zappend command or from Python. When used from Python using the zappend() function, slice datasets can be passed as local file paths, URIs, as datasets of type xarray.Dataset, or as custom slice sources.

More about zappend can be found in its documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zappend-0.8.0.dev1.tar.gz (52.9 kB view details)

Uploaded Source

Built Distribution

zappend-0.8.0.dev1-py3-none-any.whl (51.6 kB view details)

Uploaded Python 3

File details

Details for the file zappend-0.8.0.dev1.tar.gz.

File metadata

  • Download URL: zappend-0.8.0.dev1.tar.gz
  • Upload date:
  • Size: 52.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for zappend-0.8.0.dev1.tar.gz
Algorithm Hash digest
SHA256 16d1ec32cf53401c70d35ed1e757406f61fa77bb31f0782649d302e2e26c17d0
MD5 99a1ef4de26db55a0e5fb3d746a50a1f
BLAKE2b-256 8ee4ce11d92958e95591be8238e62be3889be4b2153aace40969b1cf5b28fd22

See more details on using hashes here.

Provenance

File details

Details for the file zappend-0.8.0.dev1-py3-none-any.whl.

File metadata

  • Download URL: zappend-0.8.0.dev1-py3-none-any.whl
  • Upload date:
  • Size: 51.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for zappend-0.8.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 21ee7f64b79c0f4e97fff60507680d7b1f281390fe303d4fd233c67d172ebb58
MD5 e55dbb19f1d10cf9df693bff722699e3
BLAKE2b-256 b0172d9d5bb876ad9b056a10b154648519a7964f215a32a8f2977b4e133d542e

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page