Converte valores numericos de IQA (0-100) em classes qualitativas conforme a escala institucional escolhida. A classificacao nao altera o valor numerico: ela apenas aplica cortes e rotulos a um IQA ja calculado.
Escalas disponiveis (intervalos fechados a direita, ex.: Ruim = (19, 36]):
"cetesb"CETESB/SP (padrao): Pessima [0, 19], Ruim (19, 36], Regular (36, 51], Boa (51, 79], Otima (79, 100] (Apendice D CETESB 2023, Tabela 1, p. 5).
"ana"Portal de Qualidade das Aguas da ANA (qualidadedaagua.ana.gov.br/iqa.html, consultado em 2026-10-15), que apresenta os mesmos cortes 19/36/51/79 da CETESB. E, portanto, um alias de
"cetesb". Faixas historicas de outros estados (ex.: 20/37/52/79) citadas em publicacoes antigas da ANA nao estao implementadas."igam"IGAM/MG: Muito Ruim [0, 25], Ruim (25, 50], Medio (50, 70], Bom (70, 90], Excelente (90, 100] (IGAM, relatorio de monitoramento da sub-bacia do ribeirao Pampulha, 3o trimestre de 2017, p. 9).
"legacy"Escala aproximada mantida por compatibilidade com versoes antigas do pacote (cortes 25/50/70/90, rotulos Muito ruim/Ruim/ Regular/Boa/Otima). Nao corresponde a nenhuma escala institucional verificada.
Valores NA/NaN resultam em NA. Valores fora de
[0, 100] (inclusive Inf) tambem resultam em NA, com aviso.
A classificacao e feita sobre o valor recebido, sem arredondamento adicional.
Note
Usar classification = "igam" sobre um IQA calculado pelo metodo
CETESB nao equivale ao IQA calculado integralmente pelo IGAM, que usa
parametros (nitrato, fosfato total), qi de temperatura (92) e regra de dados
ausentes proprios.
Examples
vals <- c(15, 28, 45, 65, 85, 95)
# Classificacao CETESB (padrao)
classify_iqa(vals)
#> [1] Pessima Ruim Regular Boa Otima Otima
#> Levels: Pessima < Ruim < Regular < Boa < Otima
# Classificacao IGAM (Minas Gerais)
classify_iqa(vals, classification = "igam")
#> [1] Muito Ruim Ruim Ruim Medio Bom Excelente
#> Levels: Muito Ruim < Ruim < Medio < Bom < Excelente
# Comparar escalas lado a lado
data.frame(
IQA = vals,
CETESB = classify_iqa(vals, classification = "cetesb"),
IGAM = classify_iqa(vals, classification = "igam")
)
#> IQA CETESB IGAM
#> 1 15 Pessima Muito Ruim
#> 2 28 Ruim Ruim
#> 3 45 Regular Ruim
#> 4 65 Boa Medio
#> 5 85 Otima Bom
#> 6 95 Otima Excelente