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.4.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.4-cp310-abi3-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

nirs4all_formats-0.2.4-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.4.tar.gz.

File metadata

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

File hashes

Hashes for nirs4all_formats-0.2.4.tar.gz
Algorithm Hash digest
SHA256 f61ebac34e577ab1361fa1537e5a502829eb3bd2ded681a8542c923b6cca9508
MD5 b2169a69431d3cf60ac8502c5f746508
BLAKE2b-256 e1559206319e41e2a34cbf5ef35b50d3108fde1415803ebd9209d0ef11d15871

See more details on using hashes here.

Provenance

The following attestation bundles were made for nirs4all_formats-0.2.4.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.4-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for nirs4all_formats-0.2.4-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ad6fb69acbfcca4e4a4671eb1ebd37ed93ac5db29b1ab30ee35ccfef0f53d0aa
MD5 ae1d7c138b97f0d15f8d967468d351da
BLAKE2b-256 ae8aa5ef9a8f68bca72dc46ee421bae6e92d0afa2fb46e9ee584de42875eab25

See more details on using hashes here.

Provenance

The following attestation bundles were made for nirs4all_formats-0.2.4-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.4-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for nirs4all_formats-0.2.4-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 598dd8bdfe6698d39925737e8b585c84d1b59d302bca3652b325ee0f8d279ff9
MD5 30c43ad29391a81f88ac7ce95d3e7061
BLAKE2b-256 3086cdd37b49930cdca3f4bbfce0f09100fd169ed9331bb885ff7b8113a98c20

See more details on using hashes here.

Provenance

The following attestation bundles were made for nirs4all_formats-0.2.4-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