Skip to main content

Python bindings for the Rust-first nirs4all-formats NIRS loader.

Project description

nirs4all-formats (Python)

Python bindings for nirs4all-formats, the Rust-first low-level reader for NIRS and spectroscopy file formats. It reads ~58 format families, auto-detecting each file by content, and projects the canonical records into numpy / pandas / polars / sklearn / torch / xarray or a nirs4all SpectroDataset.

Parsers live entirely in the Rust core — this package is a thin, lossless surface over it.

Install

pip install nirs4all-formats                                  # Python 3.10+
pip install "nirs4all-formats[numpy,pandas,sklearn,torch]"    # projection extras

to_polars() needs polars, to_xarray() needs xarray, and to_spectrodataset() needs nirs4all.

Quick start

import nirs4all_formats as nio

# Probe: which reader will handle this file, and why?
nio.probe_path("spectrum.jdx")

# Lossless object model — every signal, axis, coord, metadata and provenance
rs = nio.open_recordset("spectrum.sed")
rs.signal_names()

# Modelling-ready projections (explicit; may be lossy)
X, axis = rs.to_numpy(signal="reflectance")   # (X[n_samples, n_features], axis)
df      = rs.to_pandas()                        # wide: metadata + x_<axis> columns
bunch   = rs.to_sklearn(signal="reflectance", target="protein")

API at a glance

Raw access (records exactly as the Rust core emits them, as dicts): open_records, open_bytes, open_with_sidecars, probe_path, walk_path.

Object model: open_recordset(path) -> SpectralRecordSet with dataclasses SpectralRecord, SpectralArray, SpectralAxis, SourceFile, Provenance.

Projections on SpectralRecordSet: to_numpy, to_pandas, to_pandas_long, to_polars, to_sklearn, to_torch, to_spectrodataset; SpectralArray.to_xarray() for N-dimensional signals (cubes, maps, series).

Image-cube readers accept pixel selection: rows=/cols= (rectangular ROI), pixels=[(r, c), …] (sparse), or single_record=True to keep the spatial grid.

A native PyO3 extension (nirs4all_formats._native) is used when present; otherwise the bridge falls back to the nirs4all-formats CLI (NIRS4ALL_FORMATS_CLI can point to a prebuilt binary).

Documentation

Full reference: https://github.com/GBeurier/nirs4all-formats/blob/main/docs/bindings/python.md. The usage guide, supported-format catalogue and data model live in the project docs.

License

MIT.

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

nirs4all_formats-0.2.1.tar.gz (733.2 kB view details)

Uploaded Source

Built Distributions

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

nirs4all_formats-0.2.1-cp310-abi3-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

nirs4all_formats-0.2.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

File details

Details for the file nirs4all_formats-0.2.1.tar.gz.

File metadata

  • Download URL: nirs4all_formats-0.2.1.tar.gz
  • Upload date:
  • Size: 733.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nirs4all_formats-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4eee23f7249e19af481de10a65c28ba7f2a650ad0ac3abd14d2e5f424d69af34
MD5 dd92e55836fa17c27be305a399572692
BLAKE2b-256 623479f2dfc26d1c83f38370f7e0b10339a5af6cf9a17a8a9c4670ed20d6337f

See more details on using hashes here.

Provenance

The following attestation bundles were made for nirs4all_formats-0.2.1.tar.gz:

Publisher: release.yml on GBeurier/nirs4all-formats

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nirs4all_formats-0.2.1-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for nirs4all_formats-0.2.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8861821fbccfe0cab7a8dab596adf1fe19c195a1bb5fdab3ca5519b724765eb9
MD5 97de578c7838e394a0b9145c2303ecf9
BLAKE2b-256 7748985b3c838efa4fb7e4a8603cd2d2e1a44ce43c9a9f9f82abce5f4b64eed7

See more details on using hashes here.

Provenance

The following attestation bundles were made for nirs4all_formats-0.2.1-cp310-abi3-win_amd64.whl:

Publisher: release.yml on GBeurier/nirs4all-formats

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nirs4all_formats-0.2.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for nirs4all_formats-0.2.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6b709580b248aeb23b2137762e639a49540f2c72bd99db795183a28aa0f77160
MD5 a4919d46d6d0edf286590782dd0647e1
BLAKE2b-256 f936bafd9d3871f47c51e2b247c638e28e28d00353a0b3dd097a5d0038ed89f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for nirs4all_formats-0.2.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on GBeurier/nirs4all-formats

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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