QUAL2K em Python e assistente web: software de simulação da qualidade da água
Esta ferramenta é uma alternativa em React e Python ao modelo de qualidade da água QUAL2K da EPA. Ela substitui a planilha Excel/VBA por uma interface web e por uma versão em Python do solucionador do QUAL2Kw 5.1, hospedada na nuvem. Planilhas QUAL2Kw existentes (.xls, .xlsx, .xlsm) podem ser importadas diretamente, e o motor reproduz as abas de resultados de 15 modelos QUAL2Kw calibrados dentro de 5% ou de uma faixa absoluta fixa (veja os resultados da validação, em inglês).
Arquitetura do sistema QUAL2K
O sistema tem três camadas: um assistente web em React para a entrada de dados, uma Cloud Function do Firebase que recebe o estado do assistente e um motor de simulação em Python que faz os cálculos hidráulicos e de qualidade da água. Os resultados voltam ao navegador para exibição e exportação.
Recursos de simulação do QUAL2K
- Simulação com passo de tempo: passo explícito de Euler sobre um ciclo diário repetido, como no QUAL2Kw, com a média, o mínimo e o máximo diários de cada trecho
- Qualidade da água: OD, DBOC (rápida e lenta), formas de nitrogênio, fósforo, fitoplâncton e algas de fundo, detritos, patógenos, SSI e alcalinidade, com o pH resolvido a cada passo
- Balanço de calor para a temperatura da água e do sedimento, com radiação solar, onda longa, vento e forçantes meteorológicas
- Equação de Manning na hidráulica, com solucionador iterativo de Newton-Raphson para a profundidade em seções transversais trapezoidais
- Correção de temperatura de Arrhenius em todas as taxas cinéticas de primeira ordem
- Várias fórmulas de reaeração: O'Connor-Dobbins, Churchill, Owens-Gibbs, Tsivoglou-Neal, Thackston-Dawson e valor definido pelo usuário
- Fontes pontuais e fontes difusas com mistura por balanço de massa nos limites dos trechos
- Calibração automática de 18 taxas cinéticas em relação a dados de campo observados (evolução diferencial, com algoritmo genético como alternativa)
- Importação de planilhas QUAL2Kw (.xls, .xlsx, .xlsm), além de importação e exportação em CSV e JSON
Constituintes suportados
Colunas de qualidade da água nos resultados (temperatura e pH também são informados)
| Índice | Constituinte | Unidades | Processo |
|---|---|---|---|
| 0 | Condutividade | μmhos | Conservativo |
| 1 | Sólidos suspensos inorgânicos (SSI) | mg/L | Sedimentação |
| 2 | Oxigênio dissolvido (OD) | mg/L | Reaeração, oxidação, demanda de oxigênio do sedimento (SOD) |
| 3 | DBOC lenta | mg/L | Oxidação lenta, fonte da hidrólise |
| 4 | DBOC rápida | mg/L | Oxidação, hidrólise a partir da DBOC lenta |
| 5 | Nitrogênio orgânico | μg/L | Hidrólise, sedimentação |
| 6 | Amônio (NH₄) | μg/L | Nitrificação |
| 7 | Nitrato (NO₃) | μg/L | Desnitrificação, fonte da nitrificação |
| 8 | Fósforo orgânico | μg/L | Hidrólise, sedimentação |
| 9 | Fósforo inorgânico | μg/L | Sedimentação |
| 10 | Fitoplâncton | μg Chl-a/L | Crescimento, respiração, mortalidade |
| 11 | Detritos | mg/L | Dissolução, sedimentação |
| 12 | Patógenos | UFC/100mL | Decaimento, sedimentação |
| 13 | Genérico | usuário | Decaimento definido pelo usuário |
| 14 | Alcalinidade | mg CaCO₃/L | Conservativo |
Pilha tecnológica
| Componente | Tecnologia | Finalidade |
|---|---|---|
| Front-end | React 19 + Vite | Interface do assistente em várias etapas, com gerenciamento de estado |
| Estilos | CSS puro | Tema escuro e claro com tokens de design |
| Autenticação | Firebase Authentication | Login com o Google para acesso dos usuários |
| Hospedagem | Firebase Hosting | Entrega do site estático via CDN |
| Back-end | Firebase Cloud Functions (2ª geração) | Execução de Python sem servidor (serverless) |
| Motor | Python com NumPy e SciPy | Versão em Python do solucionador do QUAL2Kw 5.1 e calibração automática |
| Dados | JSON / CSV | Formatos portáteis de intercâmbio de dados |
Princípios de projeto
- Fidelidade medida - o motor reproduz as abas de resultados de 15 modelos QUAL2Kw calibrados dentro de 5% ou de uma faixa absoluta fixa (pH 0,05, temperatura 0,2 °C)
- Nenhuma instalação - funciona inteiramente no navegador, com processamento na nuvem; sem instalar software, sem macros VBA, sem restrição de sistema operacional. Veja Primeiros passos (em inglês) para começar sua primeira simulação
- Matemática transparente - cada fórmula está documentada neste guia, com referências à documentação técnica original do QUAL2K
- Portabilidade dos dados - todas as entradas e saídas podem ser exportadas em JSON ou CSV para uso em ferramentas externas