data = {
const data = [],
rnd = d3.randomNormal(),
{ channels, times } = userSetupForData,
channel = {};
var v = 0;
for (let c = 0; c < channels; ++c) {
channel[c] = { v1: v };
for (let t = 0; t < times; ++t) {
data.push({ i: c * times + t, channel: c, time: t, value: v });
if (t === times - 1) Object.assign(channel[c], { v2: v });
v += rnd();
}
}
data.map((d) => {
const { v1, v2 } = channel[d.channel],
{ value, time } = d;
const value2 = value - v1 - (time / (times - 1)) * (v2 - v1);
Object.assign(d, { value2 });
});
Object.assign(data, { channels, times });
return data;
}