From a231dc2ec6816e365fede4fa0bf718c9dbc1fac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20P?= Date: Thu, 4 May 2023 10:46:35 +0200 Subject: [PATCH] Add XRF and MIR to plots --- js/plot.js | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/js/plot.js b/js/plot.js index 4cdb6af..23959a3 100644 --- a/js/plot.js +++ b/js/plot.js @@ -4,10 +4,9 @@ // included via script tag in HTML // ******************************** + const processXRD = rawData => { - const sep = rawData.includes('\r') ? '\r': '\n'; - const axes = rawData.split(sep) - .map(r => r.replace('\n', '') + const axes = rawData.map(r => r.replace('\n', '') .split(/[\s,]+/)); let x = [], y = []; @@ -21,7 +20,28 @@ const processXRD = rawData => { }; const processXRF = rawData => { - // Do stuff... + const axes = rawData.slice(19, -1); + let x = [], y = []; + + axes.forEach((val, index) => { + x.push(index); + y.push(val); + }); + + return [x, y]; +}; + +const processMIR = rawData => { + const axes = rawData.slice(1,); + + let x = [], y = []; + + for (const value of axes) { + x.push(value[0]); + y.push(value[1]); + } + + return [x, y]; }; const techniques = { @@ -31,7 +51,18 @@ const techniques = { x_title : '2Theta (°)', y_title : 'Intensity (Counts)', }, - 'XRF' : processXRF, + 'XRF' : { + process: processXRF, + plot_type : 'XRF Spectrometer', + x_title : 'Energy (keV)', + y_title : 'Intensity (Counts)', + }, + 'MIR' : { + process: processMIR, + plot_type : 'MIR Spectrum', + x_title : 'X Axis', + y_title : 'Y Axis', + } }; /** * @param {string} rawData @@ -43,6 +74,8 @@ const techniques = { export function plot(rawData, technique, containerId) { let container = document.querySelector(`#${containerId}`); + const sep = rawData.includes('\r') ? '\r': '\n'; + rawData = rawData.split(sep); const spectrumType = techniques[technique]; const processed = spectrumType.process(rawData);