Nothing
##' @param intensity
##' @param wavelength
##' @param slice
##' @param 1.2
##' @param length
##' @return ...
findPeaks <- function(intensity, wavelength, slice=seq(0.8, 1.2, length=10)*mean(wavelength),
threshold = NULL, ...){
slices.index <- sapply(slice, function(x) which.min(abs(x - wavelength)))
if(length(slices.index) == 1)
avg.slice <- intensity[slices.index, ] else
avg.slice <- colMeans(intensity[slices.index, ])
avg.slice <- avg.slice - min(avg.slice)
avg.slice <- avg.slice / max(avg.slice)
pixels <- seq(1, ncol(intensity))
if(is.null(threshold))
threshold <- max(avg.slice)/20
par(new = TRUE)
plot(pixels, avg.slice, type = "n", xlab = "px",
ylab = "Intensity [a.u]", ylim = c(0, max(avg.slice)))
lines(pixels, avg.slice)
peaks <- isPeak(cbind(pixels, avg.slice), SoN=3, area.w = 1e-1, span = 101, sm.span = 11,
add = TRUE, plot = TRUE, zerothrsh = threshold, ratio = 1e-4)
peakPositions <- which(peaks$peak == "TRUE")
}
##' @param intensity
##' @param wavelength
##' @param peaks
##' @param window
##' @param ...
##' @return ...
extract.spectra <- function(intensity, wavelength, peaks, window=10, ...){
lapply(peaks, function(peak)
data.frame(wavelength=wavelength, intensity=rowMeans(intensity[, seq(peak-window, peak+window)]) ))
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.