This document describes the ENVI Spectral Library (SLI) format.


An ENVI Spectral Library (commonly named with a .sli file extension) is a variant on the ENVI Image Format to store individual spectra as rows in a 2D image file. Since all the spectra are rows in the same image, the "width" of the image defines a common set of wavelengths for all the spectra in the database.

A spectral library can be used to store any type of spectral data, including material surface properties (e.g., reflectance or emissivity), material bulk properties (e.g., absorption, extinction, etc.), spectral responses, etc.


Similar to the image format, a spectral library is composed of a binary data file and ASCII/Text header file pair. The library header file employs the same variable tags as its image header file counterpart. The SLI header file uses the following variable tags to define the dimensions of the library:

  • The file type will be "ENVI Spectral Library"

  • The samples (X dimension of the image) defines the number of wavelengths used for all spectra.

  • The wavelength and wavelength units defines the wavelengths and units for the spectral locations sampled by the spectra.

  • The lines (Y dimension of the image) defines the number of spectra in the library.

  • The spectra names defines the corresponding names for each of the spectra in the library.

Note Although the bands (Z dimension of the image) might seem logical to use for the spectral dimension, the spectral dimension is the samples dimension and the bands variable is always 1. Since the data is 2D, the interleave is irrelevant.

Other relevant tag variables (e.g., header offset, data type, etc.) are interpreted the same as they are for an image file.


The ENVI header file below is for an example spectral library provided with ENVI that contains the spectral response functions for the 5 bands in the IKONOS sensor.

An example SLI header file for a library containing the IKONOS spectral response functions.
description = {IKONOS Resampling Filter Functions}
samples = 142
lines   = 5
bands   = 1
header offset = 0
file type = ENVI Spectral Library
data type = 5
interleave = bsq
byte order = 0
wavelength units = Micrometers
reflectance scale factor = 1.0
z plot titles = {Wavelength, Value}
z plot range = {0.00, 1.00}
band names = {IKONOS Band Filter Functions}
spectra names = {
 IKONOS2 Pan, IKONOS2 Band 1, IKONOS2 Band 2, IKONOS2 Band 3, IKONOS2 Band 4}
wavelength = {
 0.34000,  0.34500,  0.35000,  0.35500,  0.36000,  0.36500,
[lines deleted for documentation purposes]
 1.00000,  1.00500,  1.01000,  1.01500,  1.02000,  1.02500,
 1.03000,  1.03500,  1.04000,  1.04500}

The header reflects that the library contains 5 spectra (see the lines variable) with the names IKONOS2 Pan, IKONOS2 Band 1 …​ IKONOS2 Band 4 (see the spectra names variable). All 5 spectral contain 142 wavelengths, which are defined in microns (see wavelength units) on the samples defined by list assigned to the wavelength variable.