Supported formats¶
nirs4all-formats reads NIRS and spectroscopy files through a registry of native Rust
readers. You never pick a reader by hand: open_path / open_bytes sniff the
file by content (magic bytes, container schema or text shape) and route it to
the best match. This page is the public catalogue of what is covered today.
For the internal, variant-by-variant tracking (including counts and the exact
files still being sourced), see
FORMAT_MATRIX.md
and
IMPLEMENTATION_DASHBOARD.md
in the repository. Each format below links to a detailed page.
Status legend¶
Status |
Meaning |
|---|---|
Supported |
Main active variants are validated with samples, tests and docs — safe to rely on. |
Supported (scoped) |
Reliable within a documented subset; some variants are still pending. |
Partial |
Reads real files but is knowingly incomplete — read the page’s Limitations before relying on it. |
Experimental |
A narrow or local-only path that may still change. |
Detected / refused |
Recognised, but intentionally not decoded (out of NIRS scope) — the reader points you to the right tool. |
Blocked / Planned |
Not readable yet; we need sample files or a specification. Send files → |
Feature flags in brackets (fmt-hdf5, fmt-matlab, fmt-parquet) mark readers
that are compiled in by default but can be turned off (and are off on the
wasm32 target unless noted).
Generic & tabular¶
Format |
Vendor |
Extensions |
Status |
Page |
|---|---|---|---|---|
Delimited spectral tables |
Generic / instrument exports |
|
Supported |
|
Row-oriented spectral tables |
Generic / instrument exports |
|
Supported |
|
Spectral matrix exports |
Generic / Foss / Metrohm / VIAVI |
|
Supported |
|
Excel workbooks |
Generic / lab |
|
Supported (scoped) |
|
NumPy |
Python / NumPy |
|
Supported |
|
Parquet |
Apache / generic |
|
Supported ( |
|
Consumer Physics SCiO |
Consumer Physics |
|
Supported |
FT-NIR / FT-IR / UV-Vis vendors¶
Format |
Vendor |
Extensions |
Status |
Page |
|---|---|---|---|---|
Bruker OPUS |
Bruker |
|
Supported (scoped) |
|
Thermo Nicolet OMNIC |
Thermo Nicolet |
|
Supported (scoped) |
|
Thermo / Galactic GRAMS SPC |
Thermo / Galactic |
|
Supported (scoped) |
|
PerkinElmer Spectrum / IR |
PerkinElmer |
|
Supported (scoped) |
|
BUCHI NIRCal |
BUCHI / Bühler |
|
Supported (scoped) |
|
JASCO JWS |
JASCO |
|
Supported (scoped) |
|
Ocean Optics / Ocean Insight |
Ocean Optics |
|
Supported (scoped) |
|
Foss / WinISI |
Foss |
|
Supported (scoped) |
|
Metrohm Vision / Vision Air export |
Metrohm |
|
Supported (scoped) |
|
VIAVI MicroNIR |
VIAVI / JDSU |
|
Supported (scoped) |
|
Shimadzu UVProbe export |
Shimadzu |
|
Supported (scoped) |
|
Si-Ware NeoSpectra export |
Si-Ware |
|
Supported (scoped) |
|
Spectro Inc. SiWare API |
Spectro Inc. |
|
Partial |
Field spectroscopy¶
Format |
Vendor |
Extensions |
Status |
Page |
|---|---|---|---|---|
ASD FieldSpec |
ASD / Malvern Panalytical |
|
Supported (scoped) |
|
Spectral Evolution SED |
Spectral Evolution |
|
Supported (scoped) |
|
SVC / GER SIG |
Spectra Vista / GER |
|
Supported (scoped) |
|
USGS / ECOSTRESS spectral text |
USGS / JHU / ECOSTRESS |
|
Supported (scoped) |
|
Avantes AvaSoft (ASCII + binary) |
Avantes |
|
Supported (scoped) |
|
PP Systems UniSpec SC / DC |
PP Systems |
|
Experimental |
|
Felix Instruments F-750 |
Felix Instruments / CID Bio-Science |
|
Supported (scoped) |
Hyperspectral cubes¶
Format |
Vendor |
Extensions |
Status |
Page |
|---|---|---|---|---|
ENVI Spectral Library |
L3Harris / ENVI |
|
Supported |
|
ENVI Standard cube |
ENVI |
|
Supported (scoped) |
|
AVIRIS / ERDAS LAN |
AVIRIS / ERDAS |
|
Experimental |
Cube readers expose pixel selection (rectangular ROI window or an ordered sparse
(row, col) mask) so you don’t have to materialise an entire scene.
Sun photometers¶
Format |
Vendor |
Extensions |
Status |
Page |
|---|---|---|---|---|
MFR / MFRSR |
Solar Light / YES Inc. |
|
Supported (scoped) |
|
Microtops / MAN |
Solar Light |
|
Supported (scoped) |
HDF5, containers & standards¶
Format |
Vendor |
Extensions |
Status |
Page |
|---|---|---|---|---|
Generic HDF5 NIRS |
Vendor-neutral |
|
Supported (scoped, |
|
Generic NetCDF NIRS |
Vendor-neutral |
|
Supported (scoped, |
|
FGI HDF5 + XML |
FGI |
|
Experimental ( |
|
MATLAB MAT / RData |
MATLAB / R ecosystem |
|
Supported (scoped, |
|
OpenSpecy Raman / (FT)IR |
OpenSpecy (R) |
|
Supported (scoped, |
|
Allotrope ASM |
Allotrope / Benchling |
|
Supported (scoped) |
|
Allotrope ADF |
Allotrope Foundation |
|
Experimental ( |
|
AnIML |
IUPAC / ASTM |
|
Experimental |
Exchange & standards-track¶
Format |
Vendor |
Extensions |
Status |
Page |
|---|---|---|---|---|
JCAMP-DX |
IUPAC (vendor-neutral) |
|
Supported (scoped) |
|
EMSA/MAS MSA |
ISO 22029 |
|
Supported (scoped) |
Raman & adjacent (decoded, adjacent to core NIRS)¶
Format |
Vendor |
Extensions |
Status |
Page |
|---|---|---|---|---|
Renishaw WDF |
Renishaw |
|
Supported (scoped) |
|
Horiba LabSpec / JobinYvon |
Horiba |
|
Partial |
|
WiTec WIP / WID |
WiTec |
|
Partial |
|
Princeton TriVista TVF |
Princeton Instruments |
|
Supported |
|
DigitalSurf MountainsMap |
DigitalSurf |
|
Supported |
|
Hamamatsu HPD-TA IMG |
Hamamatsu |
|
Experimental (adjacent) |
Detected & deliberately refused (not NIRS)¶
These are recognised so the walker can label them, but they are not decoded into spectra — the reader points to the appropriate mass-spectrometry tool.
Not yet supported — help us by sending samples¶
These formats are in scope but blocked until we can get real files or a usable specification. If you can share any of them, you will directly unblock a reader.
Format |
Vendor |
Extensions |
Status |
|---|---|---|---|
Foss NIRSystems / WinISI native |
Foss |
|
Blocked — native binary ( |
Perten DA / Inframatic native |
Perten / PerkinElmer |
vendor binary |
Blocked — no spectral sample |
Bruker Tango / Matrix native |
Bruker |
OPUS |
Planned — dedicated fixtures wanted |
ASD calibration companions |
ASD / Malvern |
|
Blocked — companion files |
fNIRS neuroscience |
NIRx / SNIRF |
|
Out of scope (physiology, not spectroscopy) |
Don’t see your format?¶
Request a format or send reference files through the issue templates — real files are the single biggest unblocker.
If a supported file is misread or refused, open a bug issue with the output of
nirs4all-formats probe <file>.
See CONTRIBUTING.md
for how sample files are licensed and added to the corpus.