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

.csv, .tsv, .txt

Supported

text-readers-001

Row-oriented spectral tables

Generic / instrument exports

.csv, .tsv, .txt, .dat, .asc, .SPT, .SPU

Supported

row-spectral-table

Spectral matrix exports

Generic / Foss / Metrohm / VIAVI

.csv, .txt

Supported

spectral-matrix

Excel workbooks

Generic / lab

.xlsx, .xlsm

Supported (scoped)

excel

NumPy

Python / NumPy

.npy, .npz

Supported

numpy

Parquet

Apache / generic

.parquet

Supported (fmt-parquet)

parquet

Consumer Physics SCiO

Consumer Physics

.csv

Supported

scio-csv

FT-NIR / FT-IR / UV-Vis vendors

Format

Vendor

Extensions

Status

Page

Bruker OPUS

Bruker

.0, .1, .001, .0000, .dpt

Supported (scoped)

bruker-opus

Thermo Nicolet OMNIC

Thermo Nicolet

.spa, .spg, .srs

Supported (scoped)

nicolet-omnic

Thermo / Galactic GRAMS SPC

Thermo / Galactic

.spc

Supported (scoped)

galactic-spc

PerkinElmer Spectrum / IR

PerkinElmer

.sp (incl. FT-MIR Spectrum 10)

Supported (scoped)

perkin-elmer

BUCHI NIRCal

BUCHI / Bühler

.nir

Supported (scoped)

buchi-nircal

JASCO JWS

JASCO

.jws

Supported (scoped)

jasco-jws

Ocean Optics / Ocean Insight

Ocean Optics

.txt, .csv, .jaz, .JazIrrad, .Master.Transmission, .ProcSpec

Supported (scoped)

ocean-optics

Foss / WinISI

Foss

.cal, .nir, .txt, .csv

Supported (scoped)

foss-winisi

Metrohm Vision / Vision Air export

Metrohm

.csv

Supported (scoped)

metrohm-vision

VIAVI MicroNIR

VIAVI / JDSU

.sam, .csv, .xlsx

Supported (scoped)

viavi-micronir

Shimadzu UVProbe export

Shimadzu

.txt

Supported (scoped)

shimadzu-uvprobe

Si-Ware NeoSpectra export

Si-Ware

.csv, .xlsx

Supported (scoped)

siware-neospectra

Spectro Inc. SiWare API

Spectro Inc.

.json, .csv

Partial

siware-api

Field spectroscopy

Format

Vendor

Extensions

Status

Page

ASD FieldSpec

ASD / Malvern Panalytical

.asd

Supported (scoped)

asd

Spectral Evolution SED

Spectral Evolution

.sed

Supported (scoped)

spectral-evolution-sed

SVC / GER SIG

Spectra Vista / GER

.sig

Supported (scoped)

svc-ger-sig

USGS / ECOSTRESS spectral text

USGS / JHU / ECOSTRESS

.asc, .txt, .spectrum.txt

Supported (scoped)

usgs-speclib

Avantes AvaSoft (ASCII + binary)

Avantes

.ttt, .trt, .tit, .tat, .IRR, .TRM, .ROH, .DRK, .REF, .Raw8, .IRR8

Supported (scoped)

avantes

PP Systems UniSpec SC / DC

PP Systems

.SPT, .SPU

Experimental

pp-systems-unispec

Felix Instruments F-750

Felix Instruments / CID Bio-Science

.csv

Supported (scoped)

felix-f750

Hyperspectral cubes

Format

Vendor

Extensions

Status

Page

ENVI Spectral Library

L3Harris / ENVI

.sli + .hdr

Supported

envi-sli

ENVI Standard cube

ENVI

.img / .dat + .hdr

Supported (scoped)

envi-sli

AVIRIS / ERDAS LAN

AVIRIS / ERDAS

.lan + .spc + .GIS

Experimental

erdas-lan

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.

.OUT, .nc

Supported (scoped)

sun-photometers

Microtops / MAN

Solar Light

.TXT, .nc, .lev10/.lev15/.lev20

Supported (scoped)

sun-photometers

HDF5, containers & standards

Format

Vendor

Extensions

Status

Page

Generic HDF5 NIRS

Vendor-neutral

.h5, .hdf5

Supported (scoped, fmt-hdf5)

hdf5

Generic NetCDF NIRS

Vendor-neutral

.nc, .cdf

Supported (scoped, fmt-hdf5)

netcdf

FGI HDF5 + XML

FGI

.h5 / .hdf5 + .xml

Experimental (fmt-hdf5)

fgi-hdf5-xml

MATLAB MAT / RData

MATLAB / R ecosystem

.mat, .RData

Supported (scoped, fmt-matlab)

matlab

OpenSpecy Raman / (FT)IR

OpenSpecy (R)

.rds

Supported (scoped, fmt-openspecy)

openspecy

Allotrope ASM

Allotrope / Benchling

.json

Supported (scoped)

allotrope-asm

Allotrope ADF

Allotrope Foundation

.adf

Experimental (fmt-hdf5)

allotrope-adf

AnIML

IUPAC / ASTM

.animl

Experimental

animl

Exchange & standards-track

Format

Vendor

Extensions

Status

Page

JCAMP-DX

IUPAC (vendor-neutral)

.jdx, .dx, .jcm, .jcamp

Supported (scoped)

jcamp-dx

EMSA/MAS MSA

ISO 22029

.msa

Supported (scoped)

msa-iso22029

Raman & adjacent (decoded, adjacent to core NIRS)

Format

Vendor

Extensions

Status

Page

Renishaw WDF

Renishaw

.wdf

Supported (scoped)

renishaw-wdf

Horiba LabSpec / JobinYvon

Horiba

.xml, .txt, .l6m

Partial

horiba-labspec

WiTec WIP / WID

WiTec

.wip, .wid

Partial

witec-wip

Princeton TriVista TVF

Princeton Instruments

.tvf

Supported

trivista-tvf

DigitalSurf MountainsMap

DigitalSurf

.sur, .pro

Supported

digitalsurf

Hamamatsu HPD-TA IMG

Hamamatsu

.img

Experimental (adjacent)

hamamatsu-img

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.

Format

Vendor

Extensions

Status

Page

mzML

HUPO PSI

.mzML, .mzMLb

Detected / refused

mzml

ANDI / NetCDF MS

ASTM

.cdf, .nc

Detected / refused

andi-ms

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

.DA, .eqa

Blocked — native binary (.cal/.nir now supported above)

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

.ILL, .REF, .RAW

Blocked — companion files

fNIRS neuroscience

NIRx / SNIRF

.snirf, .nirs

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.