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.
Usage
read.landsat(
file,
band = "all",
emissivity = 0.984,
decimate,
encoding = "latin1",
debug = getOption("oceDebug")
)
Arguments
- file
A connection or a character string giving the name of the file to load. This is a directory name containing the data.
- band
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.- emissivity
Value of the emissivity of the surface, stored as
emissivity
in themetadata
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 ofmetadata$emissivity
is easy to alter, either as a single value or as a matrix, yielding flexibility of calculation.- decimate
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 uselandsatTrim()
to trim the image.- encoding
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.- debug
a flag that turns on debugging. Set to 1 to get a moderate amount of debugging information, or to 2 to get more.
Value
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.
Details
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).
Storage requirements
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.
References
Konda, M. Imasato N., Nishi, K., and T. Toda, 1994. Measurement of the Sea Surface Emissivity. Journal of Oceanography, 50, 17:30. doi:10.1007/BF02233853
See also
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
,
landsat-class
,
landsatAdd()
,
landsatTrim()
,
plot,landsat-method
,
summary,landsat-method