Skip to content

Releases: hyperstateco/hyperspec

v0.8.0

15 Mar 21:46

Choose a tag to compare

  • Breaking: unify configurable Zarr reads under ZarrReadOptions
  • Fix: support metadata overrides during Zarr autodiscovery and expose Python read_zarr_with_options(...)
  • Fix: resample(...) returns an error for unsupported single-band interpolation instead of panicking
  • Perf: fast-path identical-grid resamples and reuse spectrum buffers in resample(...)
  • Docs/Tests: sync Python docs/stubs and add Zarr/ENVI regression coverage

v0.7.3

10 Mar 07:46

Choose a tag to compare

  • Randomized SVD for PCA (Halko et al.) on high-band-count cubes
  • linalg layer with tiled GEMM, eigendecomposition via faer
  • Fix noise covariance computation in MNF
  • Triangle accumulation for MNF noise covariance
  • Clippy lint fixes
  • README restructured around HSI pipeline stages

v0.7.2

09 Mar 05:33

Choose a tag to compare

Performance

  • Replace Jacobi eigendecomposition with faer in PCA and MNF (~7x faster PCA, ~3x faster MNF)
  • Fuse stats and transform in normalize_minmax and normalize_zscore (~7x faster)
  • Eliminate intermediate allocations in normalized_difference, band_ratio, derivative (~5-8x faster)
  • Reuse buffers in continuum_removal, replace triple-nested unpacking in savitzky_golay, resample, sam

Bug fix

  • MNF noise_cov^{-1/2} was computing noise_cov^{-1}, producing incorrect eigenvalues (transforms and roundtrips were unaffected)

v0.7.1

08 Mar 21:23

Choose a tag to compare

What's new

  • Type stubs: .pyi file with full signatures, return types, and docstrings for all classes and functions — enables IDE autocomplete and mypy support

v0.7.0

08 Mar 20:55

Choose a tag to compare

Statistics & Preprocessing

  • Statistics: band_stats (per-band min/max/mean/std/valid_count), covariance, correlation — Welford's algorithm, rayon-parallel, NaN/nodata-aware, population normalization
  • Normalization: normalize_minmax, normalize_zscore — per-band scaling with non-finite stat guards for all-invalid bands
  • Derivative spectra: derivative(cube, order) — 1st/2nd order finite differences at midpoint wavelengths
  • Savitzky-Golay smoothing: savitzky_golay(cube, window, polyorder) — index-space SG filter with mirror-reflection boundaries, no external deps
  • Python bindings: BandStats class, all new functions exposed via PyO3

Full changelog: https://github.com/hyperstateco/hyperspec/blob/main/CHANGELOG.md

v0.6.1

08 Mar 17:36

Choose a tag to compare

Fix: build wheels against numpy 2.x C ABI for runtime compatibility with numpy 2.x