pingo
@pingo

Есть ли эффективый и не сложный алгоритм посика ярко выраженных пиков в 2D массивах без ML?

Подскажите, например для такого массива :
let arr = [
[4000.123, 0.0002250716, ],
[3999.641, 0.0002206956, ],
[3999.159, 0.0002314698, ],
[3998.677, 0.0002602464,],
//....... length 5678  
[2998.195, 0.0005059349,]
[2997.712, 0.0004620409, ]
..........
]

я потестил разные данные, прогоняя их через простые условия в редюсах и циклах, но это всё не то. данные получаю из софта подключенного к FTIR в виде csv файла, а вот сам софт показывает очень чётко основные всплески. (экспорты в других форматах - проприетарные типа Perkin Elmer и прочее, библиотек не нашел)
спасибо, если наведёте на здравую мысль в этой теме.
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 2
@dmshar
На сколько мне известно, строгого алгоритма поиска пиков в произвольном временнОм ряду - нет. Поэтому стоит довольствоваться эмпирикой.
Ну, я бы делал так.
1. Фиксировал бы размер скользящего окна.
2. На первом положении окна искал бы максимум.
3. Сдвигал-бы окно так, что-бы оно начиналось с найденной точки максимума.
4. Опять искал-бы максимум.
Если максимум на первом окне оставался максимумом и на втором окне - считал бы это "ярко выраженным пиком". Если нет - повторял бы процедуру .
Вопрос выбора размера скользящего окна - решается эмпирически.
Ответ написан
@res2001
Developer, ex-admin
Можно находить разность соседних элементов. Если модуль разности больше какой-то величины - ярко выраженный пик.
Фиксированную величину можно взять как среднее значение разностей или медианное или что-то другое.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы