Skip to contents

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.

Usage

classify_iqa(
  x,
  classification = c("cetesb", "igam", "ana", "legacy"),
  locale = c("pt", "en"),
  scheme = NULL
)

Arguments

x

Vetor numerico com IQA em 0-100.

classification

Escala de classificacao: "cetesb" (padrao), "igam", "ana" ou "legacy".

locale

Idioma dos rotulos: "pt" (padrao) ou "en".

scheme

Depreciado (desde 0.11.0); use classification. Se ambos forem informados com valores diferentes, ocorre erro.

Value

Um fator ordenado com os rotulos de classe.

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