R: Extract Something From a landsat Object

[[,landsat-method {oce} | R Documentation

## Extract Something From a landsat Object

### Description

The `[[` method works for all `oce` objects, i.e. objects inheriting from `oce-class`. The purpose is to insulate users from the internal details of `oce` objects, by looking for items within the various storage slots of the object. Items not actually stored can also be extracted, including derived data, units of measurement, and data-quality flags.

### Usage

    ## S4 method for signature 'landsat'
    x[[i, j, ...]]

### Arguments

`x` | An landsat object, i.e. one inheriting from `landsat-class`.
`i` | Character string indicating the name of item to extract.
`j` | Optional additional information on the `i` item.
`...` | Optional additional information (ignored).

### Details

A two-step process is used to try to find the requested information. First, a class-specific function tries to find it (see “Details of the specialized ... method”), but if that fails, then a general function is used (see ‘Details of the general method’). If both fail, `NULL` is returned.

### Details of the general method

If the specialized method produces no matches, the following generalized method is applied. As with the specialized method, the procedure hinges first on the value of `i`.

First, a check is made as to whether `i` names one of the standard `oce` slots, and returns the slot contents if so. Thus, `x[["metadata"]]` will retrieve the `metadata` slot, while `x[["data"]]` and `x[["processingLog"]]` return those slots.

Next, if `i` is a string ending in the `"Unit"`, then the characters preceding that string are taken to be the name of an item in the data object, and a list containing the unit is returned. This list consists of an item named `unit`, which is an `expression`, and an item named `scale`, which is a string describing the measurement scale. If the string ends in `" unit"`, e.g. `x[["temperature unit"]]`, then just the expression is returned, and if it ends in `" scale"`, then just the scale is returned.

Next, if `i` is a string ending in `"Flag"`, then the corresponding data-quality flag is returned (or `NULL` if there is no such flag). For example, `x[["salinityFlag"]]` returns a vector of salinity flags if `x` is a ctd object.

If none of the preceding conditions are met, a check is done to see if the `metadata` slot contains an item with the provided name, and that is returned, if so. A direct match is required for this condition.

Finally, the `data` slot is checked to see if it contains an item with the name indicated by `i`. In this case, a partial match will work; this is accomplished by using `pmatch`.

If none of the above-listed conditions holds, then `NULL` is returned.

### Details of the specialized `landsat` method

Users are isolated from the details of the two-byte storage system by using the `[[` operator.

Accessing band data. The data may be accessed with e.g. `landsat[["panchromatic"]]`, for the panchromatic band. If a new “band” is added with `landsatAdd`, it may be referred by name. In all cases, a second argument can be provided, to govern decimation. If this is missing, all the relevant data are returned. If this is present and equal to `TRUE`, then the data will be automatically decimated (subsampled) to give approximately 800 elements in the longest side of the matrix. If this is present and numerical, then its value governs decimation. For example, `landsat[["panchromatic",TRUE]]` will auto-decimate, typically reducing the grid width and height from 16000 to about 800. Similarly, `landsat[["panchromatic",10]]` will reduce width and height to about 1600. On machines with limited RAM (e.g. under about 6GB), decimation is a good idea in almost all processing steps. It also makes sense for plotting, and in fact is done through the `decimate` argument of `plot,landsat-method`.

Accessing derived data. One may retrieve several derived quantities that are calculated from data stored in the object: `landsat[["longitude"]]` and `landsat[["latitude"]]` give pixel locations. Accessing `landsat[["temperature"]]` creates an estimate of ground temperature as follows (see [4]). First, the “count value” in band 10, denoted b_10 say, is scaled with coefficients stored in the image metadata using lambda_L=b_10*M_L+A_L where M_L and A_L are values stored in the metadata (e.g. the first in `landsat@metadata$header$radiance_mult_band_10`) Then the result is used, again with coefficients in the metadata, to compute Celcius temperature T=K_2/ln(epsilon*K_1/λ_L+1)-273.15. The value of the emissivity epsilon is set to unity by `read.landsat`, although it can be changed easily later, by assigning a new value to `landsat@metadata$emissivity`. The default emissivity value set by `read.landsat` is from [11], and is within the oceanic range suggested by [5]. Adjustment is as simple as altering `landsat@metadata$emissivity`. This value can be a single number meant to apply for the whole image, or a matrix with dimensions matching those of band 10. The matrix case is probably more useful for images of land, where one might wish to account for the different emissivities of soil and vegetation, etc.; for example, Table 4 of [9] lists 0.9668 for soil and 0.9863 for vegetation, while Table 5 of [10] lists 0.971 and 0.987 for the same quantities.

Accessing metadata. Anything in the metadata can be accessed by name, e.g. `landsat[["time"]]`. Note that some items are simply copied over from the source data file and are not altered by e.g. decimation. An exception is the lat-lon box, which is altered by `landsatTrim`.

### Author(s)

Dan Kelley

### See Also

Other functions that extract parts of `oce` objects: `[[,adp-method`, `[[,adv-method`, `[[,amsr-method`, `[[,argo-method`, `[[,bremen-method`, `[[,cm-method`, `[[,coastline-method`, `[[,ctd-method`, `[[,echosounder-method`, `[[,g1sst-method`, `[[,gps-method`, `[[,ladp-method`, `[[,lisst-method`, `[[,lobo-method`, `[[,met-method`, `[[,odf-method`, `[[,rsk-method`, `[[,sealevel-method`, `[[,section-method`, `[[,tidem-method`, `[[,topo-method`, `[[,windrose-method`, `[[<-,adv-method`

Other things related to `landsat` data: `[[<-,landsat-method`, `landsat-class`, `landsatAdd`, `landsatTrim`, `landsat`, `plot,landsat-method`, `read.landsat`, `summary,landsat-method`

[Package oce version 1.0-1 Index]