← back
Data Analysis · TypeScript
SpectraCalc
Открыть проект →TypeScriptNestJSReactDeployed

Проблематика
В результате процедуры спектроскопии комбинационного рассеяния образца по сетке 10*10 на выходе из прибора мы имеем .zip с сотней файлов-записей показаний прибора, в каждом из которых около 3500 пар значений. Для дальнейшей работы необходимо преобразовать такой .zip в heatmap распределения пиков вещества, а также вычислить среднее, σ и коэффициент вариации - с учетом количества данных и необходимой точности расчетов, вручную такой процесс занимает кучу времени
SpectraCalc берёт такой ZIP и интервал волновых чисел (см⁻¹) и за секунды отдаёт
тепловую карту распределения, PDF-отчёт, CSV с матрицей и вердикт об однородности -
через веб-интерфейс или Telegram-бота
Принцип работы
- Каждый из 100 файлов - это спектр (волновое число и интенсивность) в одной точке сетки, снятой на поверхности образца
- В заданном интервале для каждого спектра ищется пик и вычитается локальный фон
- 100 полученных значений выстраиваются в матрицу 10×10 по номеру файла - так плоский список снова становится картой образца
- По матрице считается статистика (среднее, σ, коэффициент вариации
Sr = σ/μ) и категория однородности: отлично / приемлемо / удовлетворительно / неприемлемо - Результат рендерится в тепловую карту (PNG), PDF-отчёт и CSV
Стек
- Backend - TypeScript + NestJS,
@napi-rs/canvas(рендер PNG),pdfkit(PDF),adm-zip, Telegram-бот наgrammy - Frontend - TypeScript + React + Vite, Tailwind