Skip to main content

CF conventions multi-dimensional array storage on top of Booklet

Project description

cfdb

CF conventions multi-dimensional array storage on top of Booklet

build codecov PyPI version


Documentation: https://mullenkamp.github.io/cfdb/

Source Code: https://github.com/mullenkamp/cfdb


cfdb is a pure Python database for managing labeled multi-dimensional arrays following the CF conventions. It is an alternative to netCDF4/xarray, built on Booklet for local file storage and EBooklet for S3 sync. Thread-safe and multiprocessing-safe via locks.

Installation

pip install cfdb

Quick Example

import cfdb
import numpy as np

with cfdb.open_dataset('example.cfdb', flag='n') as ds:
    lat = ds.create.coord.lat(data=np.linspace(-90, 90, 181, dtype='float32'))
    lon = ds.create.coord.lon(data=np.linspace(-180, 180, 361, dtype='float32'))
    temp = ds.create.data_var.generic('temperature', ('latitude', 'longitude'), dtype='float32')
    temp[:] = np.random.rand(181, 361).astype('float32') * 40 - 10

with cfdb.open_dataset('example.cfdb') as ds:
    for slices, data in ds['temperature'].iter_chunks(include_data=True):
        print(slices, data.shape)

Multivariable Rechunking

Efficiently iterate over multiple variables with synchronized chunks:

with cfdb.open_dataset('data.cfdb') as ds:
    # Synchronized iteration over temperature and pressure
    for target_chunk, var_data in ds.iter_chunks({'latitude': 50, 'longitude': 50}):
        temp = var_data['temperature']
        pres = var_data['pressure']
        # Perform calculations on aligned blocks

See the full documentation for user guides, concepts, and API reference.

License

This project is licensed under the terms of the Apache Software License 2.0.

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

cfdb-0.9.0.tar.gz (67.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cfdb-0.9.0-py3-none-any.whl (74.3 kB view details)

Uploaded Python 3

File details

Details for the file cfdb-0.9.0.tar.gz.

File metadata

  • Download URL: cfdb-0.9.0.tar.gz
  • Upload date:
  • Size: 67.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.7

File hashes

Hashes for cfdb-0.9.0.tar.gz
Algorithm Hash digest
SHA256 2aa09d5e5ea9fc1eb7bf058630ebc0626a17e91a7f1b015c9debdc3e1b3aef97
MD5 207a3529ad2f2e5d6027ab42786fb351
BLAKE2b-256 dbf36818c56fa8e63cf3a8f1d9c625fc8a2f7150d1ebc46fe377724f8c6a0860

See more details on using hashes here.

File details

Details for the file cfdb-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: cfdb-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 74.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.7

File hashes

Hashes for cfdb-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ac8781a5840cf6e49dd649eb3ed4003d31f2e926814701ef81286f823cb0dad
MD5 f9cb45f79e9ca60fa9da976e0024ac76
BLAKE2b-256 4cf9052d3f21b8406f739578085e58d617bca4c77f7e832d4cb1ad2f713f15cc

See more details on using hashes here.

Supported by

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