Finds all the peaks in a spectrum

xrd.get.AllPeaks(
  TwoTheta,
  Intensity,
  min.Prominence = 5,
  Try.Sigma = c(0.2, 0.1, 0.05, 0.3),
  deltaTheta = 5,
  Range = c(0, 90),
  verbose = FALSE
)

Arguments

TwoTheta

angle

Intensity

intensity signal

min.Prominence

minimum prominence in percent (optional)

Try.Sigma

vector with peak widths used to start fitting (optional)

deltaTheta

search area around main peak

Range

range to search for peaks (optional)

verbose

logical, if TRUE outputs additional info

Value

vector with peak positions

Examples


# \donttest{
filename = xrd.getSampleFiles()[1]
d = xrd.read.ASC(filename)
peak.list = xrd.get.AllPeaks(d$theta, d$I)
#> [1] "Checking:  5 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  7 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  9 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  11 deg"
#> [1] "Checking:  13 deg"
#> Warning: No Gaussian width.
#> [1] "Checking:  15 deg"
#> [1] "Checking:  17 deg"
#> [1] "Checking:  19 deg"
#> Error in nls(data = d, I ~ b + A * exp(-(TwoTheta - t)^2/(2 * s * s)),  : 
#>   step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Error in nls(data = d, I ~ b + A * exp(-(TwoTheta - t)^2/(2 * s * s)),  : 
#>   step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Error in nls(data = d, I ~ b + A * exp(-(TwoTheta - t)^2/(2 * s * s)),  : 
#>   step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Error in nls(data = d, I ~ b + A * exp(-(TwoTheta - t)^2/(2 * s * s)),  : 
#>   step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> Error in nls(data = d, I ~ b + A * exp(-(TwoTheta - t)^2/(2 * s * s)),  : 
#>   step factor 0.000488281 reduced below 'minFactor' of 0.000976562
#> [1] "Checking:  21 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  23 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  25 deg"
#> Warning: No Gaussian width.
#> [1] "Checking:  27 deg"
#> Warning: No Gaussian width.
#> [1] "Checking:  29 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  31 deg"
#> [1] "Checking:  33 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  35 deg"
#> Warning: No Gaussian width.
#> [1] "Checking:  37 deg"
#> [1] "Checking:  39 deg"
#> [1] "Checking:  41 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  43 deg"
#> [1] "Checking:  45 deg"
#> [1] "Checking:  47 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  49 deg"
#> [1] "Checking:  51 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  53 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  55 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  57 deg"
#> [1] "Checking:  59 deg"
#> Warning: No Gaussian width.
#> [1] "Checking:  61 deg"
#> [1] "Checking:  63 deg"
#> Warning: Amplitude drowned in noise.
#> [1] "Checking:  65 deg"
#> Warning: No Gaussian width.
#> [1] "Checking:  67 deg"
#> Warning: Amplitude drowned in noise.
#> [1] "Checking:  69 deg"
#> [1] "Checking:  71 deg"
#> [1] "Checking:  73 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  75 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  77 deg"
#> [1] "Checking:  79 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  6 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  8 deg"
#> [1] "Checking:  10 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  12 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  14 deg"
#> [1] "Checking:  16 deg"
#> [1] "Checking:  18 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  20 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  22 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  24 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  26 deg"
#> [1] "Checking:  28 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  30 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  32 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  34 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  36 deg"
#> Warning: No Gaussian width.
#> [1] "Checking:  38 deg"
#> [1] "Checking:  40 deg"
#> [1] "Checking:  42 deg"
#> Warning: No Gaussian width.
#> [1] "Checking:  44 deg"
#> [1] "Checking:  46 deg"
#> [1] "Checking:  48 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  50 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  52 deg"
#> [1] "Checking:  54 deg"
#> [1] "Checking:  56 deg"
#> [1] "Checking:  58 deg"
#> [1] "Checking:  60 deg"
#> [1] "Checking:  62 deg"
#> [1] "Checking:  64 deg"
#> [1] "Checking:  66 deg"
#> Warning: No Gaussian width.
#> [1] "Checking:  68 deg"
#> [1] "Checking:  70 deg"
#> [1] "Checking:  72 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  74 deg"
#> Warning: Peak leftwards.
#> [1] "Checking:  76 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
#> [1] "Checking:  78 deg"
#> Warning: Gaussian width too large, increase thetaDelta.
# }