Skip to the content.

hidroquimica

Biblioteca open-source (MIT) de hidroquímica em TypeScript, sem dependências. É o núcleo de cálculo das ferramentas grátis da Phreatica, plataforma de hidroquímica e monitoramento de áreas contaminadas.

Prefere usar sem programar? As mesmas funções estão disponíveis online, de graça e sem cadastro:

Instalação

npm install hidroquimica

Conversões

meq/L = mg/L × |z| ÷ M, em que M é a massa molar (g/mol) e z a carga do íon.

import { converter, conjuntoParaMeq, durezaTotal } from "hidroquimica";

converter("Ca", 100, "mg/L", "meq/L");   // 4,990
conjuntoParaMeq({ Ca: 45, Cl: 22 });      // { Ca: 2,246, Cl: 0,621 }
durezaTotal(70, 35);                      // 318,9 mg/L de CaCO₃

Balanço iônico

erro (%) = 100 × (Σ cátions − Σ ânions) ÷ (Σ cátions + Σ ânions), com concentrações em meq/L.

Critérios disponíveis em avaliarCriterio(balanco, criterio):

criterio Regra
"apha-1030e" Σ ânions ≤ 3,0 meq/L → ±0,2 meq/L; de 3,0 a 10,0 → ±2%; de 10,0 a 800 → ±5%
"fixo-5" ±5%
"fixo-10" ±10%

A função informa dentro ou fora do critério escolhido. Ela não declara a análise “válida”.

Diagrama de Piper

Frações em meq/L (Ca, Mg, Na+K; HCO₃+CO₃, SO₄, Cl) e coordenadas num triângulo de lado 1:

O ponto do losango é a interseção das projeções a 60° e 120° dos pontos dos triângulos, o que é verificado em teste.

const f = fracoesPiper(meq);
const g = geometria(0.2);           // d = 0,2 (vão entre os triângulos)
const p = pontoLosango(f, g);       // multiplique por um fator de escala e inverta o eixo y para SVG

Stiff e Schoeller

Leitura de dados de laboratório

lerNumero("1.234,5") → 1234,5 · lerNumero("<0,5", "metade-lq") → 0,25 (censurado) · lerTabela(texto) reconhece cabeçalhos como “Cálcio (mg/L)”, “Mg²⁺” e “Cloreto”.

Referências


Código no GitHub: phreatica/hidroquimica · Feito pela Phreatica · Do mesmo ecossistema: Estrato Perfis e Rhoa Geo