Releases: hyperstateco/hyperspec
Releases · hyperstateco/hyperspec
v0.8.0
- 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
- 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
Performance
- Replace Jacobi eigendecomposition with
faerin PCA and MNF (~7x faster PCA, ~3x faster MNF) - Fuse stats and transform in
normalize_minmaxandnormalize_zscore(~7x faster) - Eliminate intermediate allocations in
normalized_difference,band_ratio,derivative(~5-8x faster) - Reuse buffers in
continuum_removal, replace triple-nested unpacking insavitzky_golay,resample,sam
Bug fix
- MNF
noise_cov^{-1/2}was computingnoise_cov^{-1}, producing incorrect eigenvalues (transforms and roundtrips were unaffected)
v0.7.1
What's new
- Type stubs:
.pyifile with full signatures, return types, and docstrings for all classes and functions — enables IDE autocomplete and mypy support
v0.7.0
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:
BandStatsclass, all new functions exposed via PyO3
Full changelog: https://github.com/hyperstateco/hyperspec/blob/main/CHANGELOG.md
v0.6.1
Fix: build wheels against numpy 2.x C ABI for runtime compatibility with numpy 2.x