Spectrum File Formats
This page answers one question: will TFStudio read the file my instrument writes? For almost every UV/Vis/NIR spectrophotometer the answer is yes, because the importer reads the shapes real instruments produce rather than one tidy ideal. Import happens in the Measured Spectra window.
Delimited text
Section titled “Delimited text”Any λ, value table, whatever the extension: .csv, .txt, .asc, .dat,
.dpt, .ttt, and the rest.
| Detected automatically | Values it handles |
|---|---|
| Delimiter | Comma, semicolon, tab, or runs of spaces |
| Decimal separator | Point or comma. 400,5;88,51 reads correctly |
| Wavelength unit | Nanometres, micrometres, or wavenumber in cm⁻¹ |
| Quantity | Transmittance, reflectance, absorptance |
| Y scale | Fraction, percentage, or absorbance |
Everything detected can be overridden before you add the curve, so a file that declares nothing still imports in two clicks.
Headers
Section titled “Headers”Instruments rarely put one clean row of column names above the numbers. These layouts are read as intended:
- A settings block before the data. Header lines that look like numbers, as PerkinElmer writes them, do not become part of the spectrum.
- A marker line.
#DATA,>>>>>Begin Spectral Data<<<<<and similar say where the header ends, and the data is taken from after it. - Names on one line, units on the next.
Wave ; Sample ; Reflectanceabove[nm] ; [counts] ; [%]names each column and reads each column’s own unit, so a percentage in one column does not set the scale of its neighbours. - A commented-out header. A leading
;,#or//is a marker, not a column. - Quoted names.
"Wavelength nm.","R%"imports as reflectance. - Either spelling of a percentage.
%TandT%both mean transmittance.
- A label at the start of every row, as reflectometers often write, is
recognised and dropped:
uR 402.5238 0.0 0.237728 0.01is one data row. - Rows with no value are left out and counted, so a file that alternates a reading with a blank line tells you how many rows it lost rather than silently halving the measurement.
- Descending wavelengths are sorted on the way in.
- A trailing statistics block after the data is ignored.
Several samples in one file
Section titled “Several samples in one file”Software that measures a batch writes one wavelength column per sample:
AR_front,,AR_back,Wavelength (nm),%T,Wavelength (nm),%T400.00,88.51,400.00,87.90The repeated wavelength columns are recognised as sample boundaries rather than offered as curves, and each measurement is named after the sample it belongs to. Import one column with Add to design, or all of them with Add all curves.
JCAMP-DX
Section titled “JCAMP-DX”The IUPAC spectroscopy standard, .dx and .jdx, read and written. It carries
its own units and quantity, so it imports without configuration. Compound
LINK files import every block as a separate curve. Both the fixed-format
XYDATA compressions and the XYPOINTS pair list are supported.
Export writes JCAMP-DX in the same wavelength unit and Y scale you choose for CSV, which makes a TFStudio curve loadable in any spectroscopy package.
Ellipsometry files
Section titled “Ellipsometry files”A Ψ and Δ pair is imported in Measured Ellipsometry, not in Measured Spectra, and everything above about delimiters, decimal separators and headers applies to it. Three things are specific to these files.
The X axis may be photon energy. Ellipsometry software often works in eV. An axis is read as eV only when the header says so, never from the numbers: an eV axis and a micrometre axis span the same range, so a guess would convert silently and be invisible afterwards.
Which column is Ψ and which is Δ is decided from the values rather than the order, because vendors disagree about the order. Ψ is the arctangent of a magnitude ratio and cannot leave 0 to 90 degrees, so a column that goes above 90 or below zero is Δ. Either can be overridden in one click.
The angle of incidence is read from a header line that names it (AOI 70,
Angle of incidence 70), or from a data column named the same way, in which
case a file that repeats its wavelengths once per angle is split into one Ψ/Δ
pair per angle. A file that states its angle in neither place imports at the
angle set in the panel, so check it.
What has been checked
Section titled “What has been checked”| Instrument and layout | Result |
|---|---|
SENTECH SpectraRay. ; WAVELENGTH <angle> <angle> header, then λ, Ψ, Δ |
Imports. Columns typed from the values. The angle appears only as a column heading, so set it in the panel. |
ADAP. SE PSI DELTA header with a separate AOI line |
Imports, angle read from the header. This exporter writes tan Ψ and cos Δ under headings that say PSI and DELTA; the Δ column is detected and the window says so. Convert to degrees before fitting. |
| J.A. Woollam WVASE, spectroscopic. Unit line, then λ, angle, Ψ, Δ | λ, Ψ and Δ import. In this export the angle column carries no name, so it is offered as a curve instead of splitting the file by angle: set the angle by hand, or name that column AOI first. |
J.A. Woollam WVASE, single wavelength. Angle of Incidence, Psi, Delta |
Not read. This is an angle sweep at one wavelength; the window’s curves are functions of wavelength. |
Accurion. # name row and # unit row, angle and λ as columns, Δ before Ψ |
Not read. The wavelength is the third column, and the importer takes the first column as the axis. |
Any other delimited file holding a wavelength, a Ψ and a Δ should import: those five are what could be obtained to check against, not the limit of what works. A file that does not import is worth reporting with the file attached.
A file being readable is not the same as its measurement being one TFStudio models. Reflection ellipsometry on an isotropic sample is what these curves mean, and transmission ellipsometry, Mueller-matrix data, and an instrument’s native Is/Ic/Ic′ are not read at all: see what kind of measurement the window takes.
Instruments this has been checked against
Section titled “Instruments this has been checked against”Real exports from these have been read end to end: PerkinElmer (both the PEDS ASCII format and JCAMP-DX), Shimadzu UV-Probe, Agilent Cary, Filmetrics, Avantes AvaSoft, Ocean Optics, and reflectometer and ellipsometer text formats.
If yours is not on the list it will very probably still import, because the list is instruments that were tested rather than instruments that work. A file that does not import, or imports as the wrong quantity, is worth reporting with the file attached.
What it does not read
Section titled “What it does not read”- Binary instrument files. PerkinElmer
.sp, Cary.BSW, Galactic.SPC, Bruker OPUS, and the Avantes.TRMand.ROHfamilies. Every one of these has an ASCII or JCAMP-DX export in its own software; use that. - Detector counts. A column of raw counts imports as a spectrum and is scaled as though it were a percentage. Pick the column your instrument reports as R or T, not the raw signal, dark, or reference columns.