Skip to contents

Rescales intensities to sum to a specified value.

Usage

rescale_total(x, y, ...)

# S4 method for class 'numeric,numeric'
rescale_total(x, y, total = 1)

# S4 method for class 'ANY,missing'
rescale_total(x, total = 1)

Arguments

x, y

A numeric vector. If y is missing, an attempt is made to interpret x in a suitable way (see grDevices::xy.coords()).

...

Currently not used.

total

A legnth-one numeric vector specifying the output total. Defaults to 1, i.e. normalizes by total intensity.

Value

Returns a list with two components x and y.

See also

Other normalization methods: rescale_area(), rescale_range(), rescale_snv(), rescale_transform()

Author

N. Frerebeau

Examples

## gamma-ray spectrometry
data("BEGe")

## Subset from 2.75 to 200 keV
BEGe <- signal_select(BEGe, from = 3, to = 200)

## Plot spectrum
plot(BEGe, type = "l", xlab = "Energy (keV)", ylab = "Count")


## Normalize by area under the curve
BEGe_area <- rescale_area(BEGe)
plot(BEGe_area, type = "l", xlab = "Energy (keV)", ylab = "Count")

integrate_rectangle(BEGe)
#> [1] 147922.1
integrate_rectangle(BEGe_area)
#> [1] 1

## Rescale so that intensities sum to 1
BEGe_total <- rescale_total(BEGe, total = 1)
plot(BEGe_total, type = "l", xlab = "Energy (keV)", ylab = "Count")


## Rescale intensities to 0-1
BEGe_range <- rescale_range(BEGe, min = 0, max = 1)
plot(BEGe_range, type = "l", xlab = "Energy (keV)", ylab = "Count")