Spectral File Formats Explained: JCAMP-DX, SPC, OPUS & CSV

Spectroscopy instruments produce data — but the file format that data gets saved in varies widely from one manufacturer to another. Bruker saves FTIR spectra in its proprietary OPUS format. Thermo Fisher instruments produce SPC files. Academic databases favor the JCAMP-DX standard. And many researchers simply export to CSV when all else fails.

This format fragmentation creates real problems in analytical laboratories. You receive a collaborator's data and cannot open it. You upgrade instruments and your old files become inaccessible. You need to submit spectral data for publication but the journal requires a specific format. You want to compare spectra from two different instruments, but the files are incompatible.

Understanding what each format contains, how it structures the data, and what metadata it preserves helps you make informed choices about data storage, sharing, and archiving. SpectralBench can open all of these formats directly in your browser — no software to install, no files uploaded to external servers.

JCAMP-DX (.jdx, .dx)

JCAMP-DX stands for Joint Committee on Atomic and Molecular Physical Data — Data Exchange. It is an IUPAC-endorsed, open standard designed specifically for exchanging spectroscopic data between different instruments and software platforms. The most current version is 4.24, though version 5.01 extended support to additional spectroscopy types including NMR and mass spectrometry.

JCAMP-DX files are plain ASCII text, which means you can open them in any text editor and inspect the contents directly. The format uses Labeled Data Records (LDRs) — lines beginning with ## followed by a label and value. Standard labels include ##TITLE= (sample name), ##XUNITS= and ##YUNITS= (axis labels), ##FIRSTX= and ##LASTX= (data range), ##NPOINTS= (number of data points), and ##XYDATA= (the actual spectral data).

The data section supports several compression formats to reduce file size. ASDF (ASCII Squeezed Difference Form) encodes differences between successive y-values using single characters, while PAC and SQZ pack values using run-length and digit-squeezing schemes. Despite these compressions, JCAMP-DX files are still larger than equivalent binary formats — a high-resolution FTIR spectrum that occupies 50 KB as an SPC file may require 200 KB or more as JCAMP-DX.

The great strength of JCAMP-DX is portability and longevity. Because the files are human-readable text and the format is an open standard, JCAMP files created in the 1990s can still be read today without any special software. This makes it the preferred format for spectral databases (NIST, SDBS, SpectraBase), academic publications, and long-term data archiving.

The main weakness is inconsistent implementation. Different software packages interpret the standard differently, leading to files that are technically valid but produce errors in some readers. Common issues include nonstandard delimiter use, missing required labels, and incorrectly encoded compressed data. SpectralBench's parser handles all major JCAMP-DX variants and edge cases.

Open JCAMP-DX files in your browser — drag and drop any .jdx or .dx file into the Spectral File Viewer. Instant visualization, no upload required.

SPC (.spc)

The SPC format (sometimes called GRAMS SPC) originated from Galactic Industries, a company that developed the GRAMS spectroscopy software suite. Galactic was later acquired by Thermo Fisher Scientific, making SPC one of the most widely used spectral data formats in commercial analytical laboratories worldwide.

Unlike JCAMP-DX, SPC is a binary format. The file begins with a fixed-length 512-byte header that contains all metadata: the experiment type (IR, Raman, UV-Vis, etc.), the x-axis and y-axis units, the number of data points, the date and time of acquisition, instrument parameters, and a free-text memo field. The spectral data follows the header as IEEE 754 single-precision (32-bit) floating-point numbers.

A key feature of SPC is its support for multi-spectrum files. A single SPC file can contain multiple “sub-files,” each representing a separate spectrum — for example, a series of spectra measured at different temperatures, or a kinetic run with spectra at successive time points. Each sub-file has its own header with sub-file-specific metadata. This makes SPC convenient for time-series and mapping experiments.

The binary format makes SPC files compact and fast to read, but it also means they cannot be inspected with a text editor. You need specialized software to view or modify the data. The specification is proprietary, though it has been reverse-engineered well enough that many open-source libraries can read SPC files reliably.

SPC remains extremely common in analytical chemistry labs, particularly those using Thermo Fisher instruments (Nicolet FTIR, Evolution UV-Vis). If you work with legacy data from the 1990s and 2000s, there is a good chance much of it is in SPC format.

Convert SPC files to CSV — use the Spectral File Converter to extract your data into a universal format. All processing happens in your browser.

Bruker OPUS (.0, .1, .2, ...)

Bruker's OPUS format is used by all Bruker FTIR instruments, including the popular Alpha, Tensor, and Vertex series. It is immediately recognizable by its unusual file extensions: numbered sequentially as .0, .1, .2, .3, and so on. These numbered extensions confuse most file managers and operating systems, which may not associate them with any application and may not display file type icons.

Internally, OPUS uses a block-based binary structure. A directory block at a fixed location in the file serves as an index, pointing to the locations of individual data blocks. Each block has a type identifier and contains a specific kind of information: the result spectrum (absorbance, transmittance, or reflectance), the single-channel reference spectrum, the single-channel sample spectrum, the original interferogram, data parameters (resolution, number of scans, apodization function), instrument parameters, and acquisition parameters.

This comprehensive structure is the format's greatest strength. A single OPUS file can contain the complete experimental record: the raw interferogram, the processed single-channel spectra, and the final result spectrum, along with every instrument parameter needed to reproduce the measurement. No other common format captures this much information in a single file.

The weakness is equally clear: OPUS is entirely proprietary. Bruker's OPUS software is expensive and Windows-only. Without it, reading OPUS files requires reverse-engineered parsers. The format has also evolved across software versions, meaning older files may have slightly different block structures than newer ones. The numbered file extensions compound the problem — a directory full of .0, .1, .2 files gives no indication of what each file contains.

If your laboratory has a Bruker FTIR, you will inevitably accumulate OPUS files. SpectralBench can parse them directly in the browser, extracting the result spectrum and key parameters without requiring the OPUS software.

View Bruker OPUS files without OPUS software — the Spectral File Viewer reads .0, .1, .2, ... files directly. Free, browser-based, no install.

CSV (.csv) and TXT (.txt)

CSV (comma-separated values) and plain text files are the universal fallback for spectral data exchange. When no other format works, when you need to get data into Excel or Python, or when a journal asks for “raw data in a standard format,” CSV is the answer.

There is no standardized structure for spectral CSV files. Typically, the first column contains x-axis values (wavenumber in cm⁻¹ for FTIR, wavelength in nm for UV-Vis) and the second column contains y-axis values (absorbance, transmittance, or intensity). Some files include a header row with column labels; others do not. Delimiters may be commas, tabs, semicolons, or spaces. Decimal separators may be periods or commas (depending on the locale settings of the exporting instrument).

The strength of CSV is universality: every programming language, every spreadsheet application, and every plotting tool on every platform can read CSV files. The weakness is the complete absence of metadata. A CSV file tells you nothing about the instrument, the measurement conditions, the sample preparation, or even which units the columns are in. This information must be communicated separately, and it often gets lost.

SpectralBench auto-detects the delimiter (comma, tab, semicolon, or space), identifies whether a header row is present, and infers the column layout. In most cases, simply dropping a CSV file into the viewer produces the correct spectrum on the first try.

Choosing the Right Format

The best format depends on your use case. Here are practical recommendations for common scenarios:

  • For long-term archiving: JCAMP-DX. It is an open standard, human-readable, and self-documenting. Files created today will still be readable in 30 years without any special software. Include the original instrument format alongside the JCAMP-DX copy for completeness.
  • For day-to-day analysis: Use your instrument's native format (OPUS, SPC, etc.) to preserve all metadata, instrument parameters, and processing history. Convert to other formats only when you need to share or export.
  • For sharing with collaborators: CSV if they need to process the data in Python, R, or Excel. JCAMP-DX if they work with spectroscopy software and you want the metadata to travel with the data.
  • For publications: CSV or JCAMP-DX for supplementary data files. Many journals now require open-format data deposition, and both formats meet that requirement.

Converting Between Formats

SpectralBench converts between all supported formats directly in your browser. No data is uploaded to any server — the entire conversion process runs client-side using JavaScript. This means your proprietary spectral data never leaves your computer.

Metadata is preserved where the target format supports it. Converting from OPUS to JCAMP-DX, for example, carries over the spectral data, units, and basic measurement parameters. Converting to CSV strips all metadata, leaving only the x-y data pairs. For the richest possible conversion, always keep a copy in the original instrument format.

Convert spectral files now — the Spectral File Converter handles JCAMP-DX, SPC, OPUS, CSV, and more. Free, private, browser-based.

Related Resources