| read.ENVI & write.ENVI {caTools} | R Documentation |
Read and write binary data in ENVI format, which is supported by most GIS software.
X=read.ENVI(filename, headerfile=paste(filename, ".hdr", sep=""))
write.ENVI (X, filename, interleave = c("bsq", "bil", "bip"))
X |
data to be saved in ENVI file. Can be a matrix or 3D array. |
filename |
character string with name of the file (connection) |
headerfile |
optional character string with name of the header file |
interleave |
optional character string specifying interleave to be used |
ENVI binary files use a generalized raster data format that consists of two parts:
writeBin in R or fwrite in C/C++.
samples - number of columns lines - number of rows bands - number of bands (channels, planes) data type - following types are supported:
header offset - number of bytes to skip before
raster data starts in binary file.
interleave - Permutations of dimensions in binary data:
BSQ - Band Sequential (X[col,row,band])
BIL - Band Interleave by Line (X[col,band,row])
BIP - Band Interleave by Pixel (X[band,col,row])
byte order - the endian-ness of the saved data:
Fields samples, lines, bands, data type are
required, while header offset, interleave, byte order are
optional. All of them are in form of integers except interleave which
is a string.
This generic format allows reading of many raw file formats, including those with embedded header information. Also it is a handy binary format to exchange data between PC and UNIX/Mac machines, as well as different languages like: C, Fortran, Matlab, etc. Especially since header files are simple enough to edit by hand.
File type supported by most of GIS (geographic information system) software including: ENVI software, Freelook (free file viewer by ENVI), ArcGIS, etc.
Function read.ENVI returns either a matrix or 3D array.
Function write.ENVI does not return anything.
Jarek Tuszynski (SAIC) jaroslaw.w.tuszynski@saic.com
Displaying of images can be done through functions: image,
image.plot and add.image from
fields or plot.im from spatstat.
ENVI files are practically C-style memory-dumps as performed by
readBin and writeBin functions plus separate
meta-data header file.
GIF file formats can also store 3D data (see read.gif and
write.gif functions).
Packages related to GIS data: shapefiles, maptools, sp, spdep, adehabitat, GRASS, PBSmapping.
X = array(1:60, 3:5)
write.ENVI(X, "temp.nvi")
Y = read.ENVI("temp.nvi")
stopifnot(X == Y)
readLines("temp.nvi.hdr")
d = c(20,30,40)
X = array(runif(prod(d)), d)
write.ENVI(X, "temp.nvi", interleave="bil")
Y = read.ENVI("temp.nvi")
stopifnot(X == Y)
readLines("temp.nvi.hdr")
file.remove("temp.nvi")
file.remove("temp.nvi.hdr")