R/utils.r

##' @param sx
##' @param sy
##' @param x
##' @param y
##' @param z

##' @return ...

## sam <- function (sx = 50, sy = 50, x, y, z) 
## {
##     xind <- seq(1, length(x), length = sx)
##     yind <- seq(1, length(y), length = sy)
##     samplex <- x[xind]
##     sampley <- y[yind]
##     samplez <- z[xind, yind]
##     list(x = samplex, y = sampley, z = samplez)
## }

sam <- function(sx = 50, sy = 50, x, y, z){
  
  xind <- seq(range(x)[1], range(x)[2], length = sx)
  yind <- seq(range(y)[1], range(y)[2], , length = sy)
  invisible(interp.surface.grid(list(x=x, y=y, z=z), list(x=xind, y=yind)))

}

##' @param intensity
##' @param wavelength
##' @param peaks
##' @param window
##' @param sx
##' @param sy
##' @param ...

##' @return ...
visualize.peaks <- function(intensity, wavelength, peaks=NULL, window=10, sx = 150, sy = 150, ...){
  
  roughS <- sam(sx = sx, sy = sy,
                x = wavelength,
                y = seq(1, ncol(intensity)), 
                z = intensity)
  image(roughS)
  sapply(seq_along(peaks), function(ii)
         rect(min(wavelength), peaks[ii]-window,
              max(wavelength), peaks[ii]+window))
  
}

raman.shift <- function(lambda0=500, lambdaR=1000, stokes=FALSE){

  lambdaR <- 1 / lambdaR * 1e7
  lambda <- if(stokes) 1 / (1/lambda0 + 1/lambdaR) else 1 / (1/lambda0 - 1/lambdaR)

  return(lambda)
}

raman.shift(lambdaR=200)

Try the spectro package in your browser

Any scripts or data that you put into this service are public.

spectro documentation built on May 2, 2019, 4:45 p.m.