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")