phd/assets/optimize-curves.js

38 lines
893 B
JavaScript

const fs = require('fs');
const optimum = 500;
function find(path) {
let output = [];
for (let content of fs.readdirSync(path, {withFileTypes: true})) {
if (content.isDirectory()) {
output.push(...find(path + '/' + content.name));
} else {
output.push(path + '/' + content.name);
}
}
return output;
}
function optimizeCurve(path) {
let input = fs.readFileSync(path, 'utf-8')
.split('\n')
.map((x) => x.split(' '));
let output = [input[0]];
let step = Math.floor(input.length / optimum);
for (let i = 1; i < input.length; i += step) {
output.push(input[i]);
}
fs.writeFileSync(path.slice(0, - '-full.dat'.length) + '.dat', output.map((x) => x.join(' ')).join('\n'));
}
for (let file of find('.')) {
if (file.endsWith('-full.dat')) {
optimizeCurve(file);
}
}