Skip to content

mljs/peak-shape-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6f7b45d · Nov 11, 2020

History

60 Commits
Oct 14, 2020
Nov 11, 2020
Feb 14, 2020
Feb 14, 2020
Feb 14, 2020
Nov 11, 2020
Feb 14, 2020
Nov 3, 2020
Feb 14, 2020
Nov 11, 2020
Feb 14, 2020

Repository files navigation

ml-peak-shape-generator

NPM version build status npm download

Peak shape generator, the current kind of shapes supported are:

Name Equation
Gaussian
Lorentzian
Pseudo Voigt

where

Installation

$ npm i ml-peak-shape-generator

Usage

import { gaussian, lorentzian, pseudoVoigt} from 'ml-peak-shape-generator';

// It's possible to specify the windows size with factor option
let {data, fwhm} = gaussian({factor: 3.5, sd: 500});
// or fix the number of points as Full Width at Half Maximum
let {data, fwhm} = gaussian({factor: 3.5, fwhm: 500});

// It's possible to specify the windows size with factor option
let {data, fwhm} = loretzian({factor: 5, fwhm: 500});

// It's possible to specify the windows size with factor option
let {data, fwhm} = pseudoVoigt({{factor: 5, fwhm: 500}});
import { getShape, GAUSSIAN, LORENTZIAN, PSEUDO_VOIGT} from 'ml-peak-shape-generator';

// If you want to dynamically select a shape you can use the `getShape` method.
let {data, fwhm} = getShape(LORENTZIAN, {factor: 3.5, sd: 500});

It is also possible to get a function that allows to calculate y for any x

import { gaussianFct} from 'ml-peak-shape-generator';
const func = gaussianFct({ x: 0, y: 2, width: 0.2 });

You can create a class as well and add many peaks

const peakShapeGenerator = new PeakShapeGenerator({cacheSize:20});

let shape = peakShapeGenerator.getShape(GAUSSIAN, { fwhm: 500 });
let shape2 = peakShapeGenerator.getShape(GAUSSIAN, { fwhm: 500 });
// shape===shape2 true

let shape3 = peakShapeGenerator.getShape(GAUSSIAN, { fwhm: 100 });
// shape===shape3 false
let shape4 = peakShapeGenerator.getShape(GAUSSIAN, { fwhm: 100 });
// shape3===shape4 true

License

MIT