Read a landsat data file, producing an object of landsat.
The actual reading is done with tiff::readTIFF()
in the
tiff package, so that package must be installed for
read.landsat
to work.
read.landsat(
file,
band = "all",
emissivity = 0.984,
decimate,
encoding = "latin1",
debug = getOption("oceDebug")
)
A landsat object, with the conventional Oce
slots metadata
, data
and processingLog
. The
metadata
is mainly intended for use by Oce functions, but for generality
it also contains an entry named header
that represents the full image
header in a list (with names made lower-case). The data
slot holds
matrices of the data in the requested bands, and users may add extra matrices
if desired, e.g. to store calculated quantities.
A connection or a character string giving the name of the file to load. This is a directory name containing the data.
The bands to be read, by default all of the bands. Use
band=NULL
to skip the reading of bands, instead reading only the
image metadata, which is often enough to check if the image is of
interest in a given study. See “Details” for the names of the
bands, some of which are pseudo-bands, computed from the actual data.
Value of the emissivity of the surface, stored as
emissivity
in the metadata
slot of the
resultant object. This is used in the
calculation of surface temperature, as explained in the discussion of
accessor functions for landsat. The default value is
from Konda et al. (1994). These authors suggest an uncertainty of 0.04,
but a wider range of values can be found in the literature. The value of
metadata$emissivity
is easy to alter, either as a single value or
as a matrix, yielding flexibility of calculation.
optional positive integer indicating the degree to which
the data should be subsampled after reading and before storage. Setting
this to 10 can speed up reading by a factor of 3 or more, but higher values
have diminishing effect. In exploratory work, it is useful to set
decimate=10
, to plot the image to determine a subregion
of interest, and then to use landsatTrim()
to trim the image.
a character value that indicates the encoding to be used for
this data file, if it is textual. The default value for most functions is
"latin1"
, which seems to be suitable for files containing text written in
English and French.
a flag that turns on debugging. Set to 1 to get a moderate amount of debugging information, or to 2 to get more.
Landsat data files (directories, really) are large, accounting for
approximately 1 gigabyte each. The storage of the Oce object is
similar (see landsat). In R, many operations involving
copying data, so that dealing with full-scale landsat images can overwhelm
computers with storage under 8GB. For this reason, it is typical to read just
the bands that are of interest. It is also helpful to use
landsatTrim()
to trim the data to a geographical range, or
to use decimate()
to get a coarse view of the domain, especially
early in an analysis.
Dan Kelley
Landsat data are provided in directories that contain TIFF files and header
information, and read.landsat
relies on a strict convention for the
names of the files in those directories. Those file names were found by
inspection of some data, on the assumption that similar patterns will hold for
other datasets for any given satellite. This is a brittle approach and it
should be born in mind if read.landsat
fails for a given dataset.
For Landsat 8, there are 11 bands, with names "aerosol"
(band 1),
"blue"
(band 2), "green"
(band 3), "red"
(band 4),
"nir"
(band 5), "swir1"
(band 6), "swir2"
(band 7),
"panchromatic"
(band 8), "cirrus"
(band 9), "tirs1"
(band
10), and "tirs2"
(band 11).
In addition to the above, setting band="terralook"
may be used as
an abbreviation for band=c("red", "green", "nir")
.
For Landsat 7, there 8 bands, with names "blue"
(band 1), "green"
(band 2), "red"
(band 3), "nir"
(band 4), "swir1"
(band
5), "tir1"
(band 6A), "tir2"
(band 6B), "swir2"
(band 7)
and "panchromatic"
(band 8).
For Landsat 4 and 5, the bands similar to Landsat 7 but without
"panchromatic"
(band 8).
Konda, M. Imasato N., Nishi, K., and T. Toda, 1994. Measurement of the Sea Surface Emissivity. Journal of Oceanography, 50, 17:30. tools:::Rd_expr_doi("10.1007/BF02233853")
See the documentation for the landsat class
for more information on landsat
objects,
especially band information. Use landsatTrim()
to trim Landsat
objects geographically and landsatAdd()
to add new ``bands.'' The
accessor operator ([[
) is used to access band information, full or
decimated, and to access certain derived quantities. A sample dataset named
landsat()
is provided by the oce package.
Other things related to landsat data:
[[,landsat-method
,
[[<-,landsat-method
,
landsat-class
,
landsatAdd()
,
landsatTrim()
,
landsat
,
plot,landsat-method
,
summary,landsat-method