[ANN] SPCSpectra.jl reading spectroscopic files


A module for working with .SPC files in Julia. SPC is a binary data format to store a variety of spectral data, developed by Galactic Industries Corporation in the '90s. Popularly used Thermo Fisher/Scientific software GRAMS/AI. Also used by others including Ocean Optics, Jobin Yvon Horiba. Can store a variety of spectrum including FT-IR, UV-VIS, X-ray Diffraction, Mass Spectroscopy, NMR, Raman and Fluorescence spectra.

The SPC file format can store either single or multiple y-values, and the x-values can either be given explicitly or even spaced x-values can be generated based on initial and final points as well as number of points. In addition the format can store various log data and parameters, as well as various information such as axis labels and scan type.

NOTE: This package is still in beta state. Any testing and commenting is highly welcome.


This package is highly inspired the python package spc by rohanisaac.


  1. Extracts header information
  2. Store x and y data of all traces into a vector data. Single traces can be addressed by spc.data[1] (, spc.data[2], spc.data[3], …)
  3. Attempts to interpret x-, y-, and z-labels, as well as experiment type

Currently only file version 0x4b is supported. Data output is not yet implemented.


Link to the repository:

The latest version supports extraction of zdata for multifiles :grinning:

(Not yet tested for all possible file types. Please file an issue if there are problems.)