Skip to content

biogaser/vfa-csv-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vfa-csv-parser

Parse the CSV exports from gas-chromatograph software for VFA (volatile fatty acid) analysis used in anaerobic digestion lab work. Tolerant of common header alias quirks (HAc, c2:0, iso-Butyric, etc.), comma vs semicolon delimiters, and European decimal commas.

Returns one row per sample with parsed VFA concentrations plus derived totalVfa and acetateEquivalent (a common stability indicator).

Install

npm install vfa-csv-parser

Usage

const { parse } = require('vfa-csv-parser');
const fs = require('node:fs');

const text = fs.readFileSync('lab-export.csv', 'utf8');
const { rows, totals } = parse(text);

for (const r of rows) {
  console.log(r.sample, r.totalVfa, 'mg/L total VFA, AcEq', r.acetateEquivalent);
}

console.log('mean acetic:', totals.mean.acetic);

Header aliases recognized:

Canonical Aliases
acetic Acetic, HAc, c2, c2:0, Acetate
propionic Propionic, HPr, c3, c3:0
butyric Butyric, n-Butyric, c4, c4:0
iso_butyric iso-Butyric, i-C4
valeric Valeric, n-Valeric, c5:0
iso_valeric iso-Valeric, i-C5
caproic Caproic, Hexanoic, c6:0

Blank cells, ND, and <LOD parse as null (not zero).

Acetate equivalent

The library returns acetateEquivalent per row, computed with these factors:

acetic     × 1.00
propionic  × 0.81
butyric    × 0.68
iso_butyric× 0.68
valeric    × 0.59
iso_valeric× 0.59
caproic    × 0.52

These approximate molar-mass-based conversions. Acetate-equivalent total above ~3000 mg/L is generally a sign of digester stress; check your local ratio (most operators use propionic/acetic > 1.4 as a stability flag).

Tests

npm test

15 tests, no deps.

License

MIT.

About

Parse VFA gas-chromatograph CSV exports for anaerobic digestion lab work. Header alias tolerant. Zero deps.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors