read.ENVI {hyperSpec} | R Documentation |
This function allows ENVI data import as hyperSpec
object.
read.ENVI(file = stop ("read.ENVI: file name needed"), header = NULL, x = 0:1, y = x, wavelength = NULL, label = NULL, log = NULL)
file |
name of the binary file |
header |
name of the ASCII header file or list with the
respective information, see details. If NULL , the name of the
header file is guessed. |
x, y |
vectors of form c(offset, step size) for the position vectors, see details. |
wavelength, label, log |
handed to initialize |
ENVI data usually consists of two files, an ASCII header and a binary data file. The header contains all information necessary for correctly reading the binary file.
I experienced missing header files (or rather: header files without any contents) produced by Bruker Opus' ENVI export.
In this case the necessary information can be given as a list in
parameter header
instead. The elements of header are then:
header\$ | values | meaning |
samples | integer | no of columns / spectra in x direction |
lines | integer | no of lines / spectra in y direction |
bands | integer | no of wavelengths / data points per spectrum |
`data type` | format of the binary file | |
1 | 1 byte unsigned integer | |
2 | 2 byte signed integer | |
3 | 4 byte signed integer | |
4 | 4 byte float | |
5 | 8 byte double | |
9 | 16 (2 x 8) byte complex double | |
12 | 2 byte unsigned integer | |
`header offset` | integer | number of bytes to skip before binary data starts |
interleave | directions of the data cube | |
"BSQ" | band sequential (indexing: [sample, line, band]) | |
"BIL" | band interleave by line (indexing: [sample, line, band]) | |
"BIP" | band interleave by pixel (indexing: [band, line, sample]) | |
`byte order` | 0 or "little" | little endian |
1 or "big" | big endian | |
"swap" | swap byte order |
Some more information that is not provided by the ENVI files may be given:
Wavelength axis and axis labels in the respective parameters. For more
information, see initialize
.
The spatial information is by default a sequence from 0 to
header$samples - 1
and header$lines - 1
, respectively.
x
and y
give offset of the first spectrum and step size.
Thus, the object's $x
colum is:
(0 : header$samples - 1) * x [2] + x [1]
.
The $y
colum is calculated analogously.
a hyperSpec
object
I do only have ENVI filed saved by Opus / Bruker FT-IR FPA spectrometer (BIP format). Thus the function is not extensively tested.
If you import other ENVI data (successful and unsuccessful), please let me know (e-mail: <cbeleites@units.it>).
C. Beleites
This function was adapted from read.ENVI
:
Jarek Tuszynski (2008). caTools: Tools: moving window statistics, GIF, Base64, ROC AUC, etc.. R package version 1.9.