curve-peak
TypeScript icon, indicating that this package has built-in type declarations

1.0.9 • Public • Published

curve-peak

English

介绍

输入曲线以{y: number}形式的点组成的曲线,找出指定区间内为波峰波谷值的点。

安装教程

使用npm进行安装

npm i curve-peak

使用说明

曲线定义为以{y: number}形式的点组成的数组,比如:

const curve = [{x: 2, y: 1.5}, {x: 4, y: 3}, ... ];

查找峰值点只需简单的如下调用:

import { findPV } from 'curve-peak';
const curve1 = [{ x: 0, y: 1 }, { x: 1, y: 3 }, { x: 2, y: 4 }, { x: 3, y: 3 }, { x: 4, y: 5 }, { x: 5, y: 5 }, { x: 6, y: 5 }, { x: 7, y: 1 }, { x: 8, y: 3 }];
console.log(findPV(curve1));  // { "peaks": [{ x: 2, y: 4 }, { x: 4, y: 5 }], "valleys": [{ x: 0, y: 1 }, { x: 3, y: 3 }, { x: 7, y: 1 }] }

默认情况下,区间范围大小为1,即只要某个点的y值大于左1点的y值,且不小于右1点的y值,即为峰值点。 可以在调用findPV时指定区间范围的大小为n,即只要某个点的y值大于左测n个点的y值,且不小于右测n个点的y值,即为峰值点。 对于极左侧和极右侧两个点,需满足为最低点或最高点时,视为峰值点。

import { findPV } from 'curve-peak';
const curve2 = [{ x: 0, y: 2 }, { x: 1, y: 2 }, { x: 2, y: 3 }, { x: 3, y: 3 }, { x: 4, y: 4 }, { x: 5, y: 3 }, { x: 6, y: 2 }, { x: 7, y: 1 }, 
        { x: 8, y: 1 }, { x: 9, y: 0 }, { x: 10, y: 0 }, { x: 11, y: 1 }, { x: 12, y: 0 }, { x: 13, y: 1 }, { x: 14, y: 2 }, { x: 15, y: 1 }, 
        { x: 16, y: 3 }, { x: 17, y: 2 }, { x: 18, y: 3 }, { x: 19, y: 4 }, { x: 20, y: 5 }, { x: 21, y: 4 }, { x: 22, y: 3 }, { x: 23, y: 4 }];
console.log(findPV(curve2, { peakCoverRange: 3 }));  // { "peaks": [{ x: 4, y: 4 }, { x: 20, y: 5 }], "valleys": [{ x: 9, y: 0 }, { x: 12, y: 0 }, { x: 22, y: 3 }] }

Readme

Keywords

Package Sidebar

Install

npm i curve-peak

Weekly Downloads

5

Version

1.0.9

License

Apache-2.0

Unpacked Size

38.5 kB

Total Files

9

Last publish

Collaborators

  • taiyosen