Learn R Programming

photobiology (version 0.11.2)

spikes: Spikes

Description

Function that returns a subset of an R object with observations corresponding to spikes. Spikes are values in spectra that are unusually high compared to neighbors. They are usually individual values or very short runs of similar "unusual" values. Spikes caused by cosmic radiation are a frequent problem in Raman spectra. Another source of spikes are "hot pixels" in CCD and diode arrays.

Usage

spikes(x, z.threshold, max.spike.width, na.rm, ...)

# S3 method for default spikes(x, z.threshold = NA, max.spike.width = 8, na.rm = FALSE, ...)

# S3 method for numeric spikes(x, z.threshold = NA, max.spike.width = 8, na.rm = FALSE, ...)

# S3 method for data.frame spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, ..., y.var.name = NULL, var.name = y.var.name )

# S3 method for generic_spct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, var.name = NULL, ... )

# S3 method for source_spct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, unit.out = getOption("photobiology.radiation.unit", default = "energy"), ... )

# S3 method for response_spct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, unit.out = getOption("photobiology.radiation.unit", default = "energy"), ... )

# S3 method for filter_spct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, filter.qty = getOption("photobiology.filter.qty", default = "transmittance"), ... )

# S3 method for reflector_spct spikes(x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, ...)

# S3 method for solute_spct spikes(x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, ...)

# S3 method for cps_spct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, var.name = "cps", ... )

# S3 method for raw_spct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, var.name = "counts", ... )

# S3 method for generic_mspct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, ..., var.name = NULL, .parallel = FALSE, .paropts = NULL )

# S3 method for source_mspct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, unit.out = getOption("photobiology.radiation.unit", default = "energy"), ..., .parallel = FALSE, .paropts = NULL )

# S3 method for response_mspct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, unit.out = getOption("photobiology.radiation.unit", default = "energy"), ..., .parallel = FALSE, .paropts = NULL )

# S3 method for filter_mspct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, filter.qty = getOption("photobiology.filter.qty", default = "transmittance"), ..., .parallel = FALSE, .paropts = NULL )

# S3 method for reflector_mspct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, ..., .parallel = FALSE, .paropts = NULL )

# S3 method for solute_mspct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, ..., .parallel = FALSE, .paropts = NULL )

# S3 method for cps_mspct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, ..., var.name = "cps", .parallel = FALSE, .paropts = NULL )

# S3 method for raw_mspct spikes( x, z.threshold = 9, max.spike.width = 8, na.rm = FALSE, ..., var.name = "counts", .parallel = FALSE, .paropts = NULL )

Value

A subset of the object passed as argument to x with rows corresponding to spikes.

Arguments

x

an R object

z.threshold

numeric Modified Z values larger than z.threshold are considered to correspond to spikes.

max.spike.width

integer Wider regions with high Z values are not detected as spikes.

na.rm

logical indicating whether NA values should be stripped before searching for spikes.

...

ignored

var.name, y.var.name

character Name of column where to look for spikes.

unit.out

character One of "energy" or "photon"

filter.qty

character One of "transmittance" or "absorbance"

.parallel

if TRUE, apply function in parallel, using parallel backend provided by foreach

.paropts

a list of additional options passed into the foreach function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the .export and .packages arguments to supply them so that all cluster nodes have the correct environment set up for computing.

Methods (by class)

  • spikes(default): Default returning always NA.

  • spikes(numeric): Default function usable on numeric vectors.

  • spikes(data.frame): Method for "data.frame" objects.

  • spikes(generic_spct): Method for "generic_spct" objects.

  • spikes(source_spct): Method for "source_spct" objects.

  • spikes(response_spct): Method for "response_spct" objects.

  • spikes(filter_spct): Method for "filter_spct" objects.

  • spikes(reflector_spct): Method for "reflector_spct" objects.

  • spikes(solute_spct): Method for "solute_spct" objects.

  • spikes(cps_spct): Method for "cps_spct" objects.

  • spikes(raw_spct): Method for "raw_spct" objects.

  • spikes(generic_mspct): Method for "generic_mspct" objects.

  • spikes(source_mspct): Method for "source_mspct" objects.

  • spikes(response_mspct): Method for "cps_mspct" objects.

  • spikes(filter_mspct): Method for "filter_mspct" objects.

  • spikes(reflector_mspct): Method for "reflector_mspct" objects.

  • spikes(solute_mspct): Method for "solute_mspct" objects.

  • spikes(cps_mspct): Method for "cps_mspct" objects.

  • spikes(raw_mspct): Method for "raw_mspct" objects.

Details

Spikes are detected based on a modified Z score calculated from the differenced spectrum. The Z threshold used should be adjusted to the characteristics of the input and desired sensitivity. The lower the threshold the more stringent the test becomes, resulting in most cases in more spikes being detected. A modified version of the algorithm is used if a value different from NULL is passed as argument to max.spike.width. In such a case, an additional step filters out broader spikes (or falsely detected steep slopes) from the returned values.

When the argument passed to x contains multiple spectra, the spikes are searched for in each spectrum independently of other spectra.

See Also

See the documentation for find_spikes for details of the algorithm and implementation.

Other peaks and valleys functions: find_peaks(), find_spikes(), get_peaks(), peaks(), replace_bad_pixs(), valleys(), wls_at_target()

Examples

Run this code
spikes(sun.spct)

Run the code above in your browser using DataLab