Download and process hydrological data from ANA (Brazil)
Project description
Hidroana
Biblioteca Python para consulta, download e processamento de dados hidrológicos da Agência Nacional de Águas e Saneamento Básico (ANA).
A biblioteca permite acessar automaticamente serviços web da ANA para obter:
- Inventário de estações hidrológicas
- Séries telemétricas (chuva, nível e vazão)
- Séries históricas convencionais
- Seleção espacial de estações por shapefile / GeoPackage
- Exportação automática em CSV
- Resumos de disponibilidade de dados
Instalação
pip install hidroana
Dependências
- pandas
- tqdm
- zeep
- geopandas
Instalação manual das dependências:
pip install pandas tqdm zeep geopandas
Importação
import hidroana
Funções
1. get_inventory()
Consulta o inventário oficial de estações da ANA.
Sintaxe
hidroana.get_inventory(...)
Parâmetros principais
| Parâmetro | Tipo | Default | Descrição |
|---|---|---|---|
| caminho_saida | str | inventario_ana.csv | Nome do arquivo de saída |
| var_tpEst | str | "" | Tipo de estação |
| var_nmEstado | str | "" | UF |
| var_nmMunicipio | str | "" | Município |
| var_nmRio | str | "" | Nome do rio |
| var_telemetrica | str | "" | 1 = sim / 0 = não |
| save | bool | False | Salvar CSV |
Tipo de estação (var_tpEst)
"1"= Fluviométrica"2"= Pluviométrica
Retorno
pandas.DataFrame
Exemplo
df = hidroana.get_inventory(
var_nmEstado="PR",
var_tpEst="2"
)
Observação importante sobre códigos de estações telemétricas
Na base da ANA, algumas estações possuem:
- código pluviométrico (plu)
- código fluviométrico (flu)
- ou ambos
Para consultas telemétricas, o comportamento do serviço pode variar:
- Se a estação for apenas pluviométrica, normalmente a consulta funciona com o código pluviométrico.
- Se a estação possuir código pluviométrico e fluviométrico, o serviço da ANA geralmente retorna as séries corretamente quando a requisição é feita com o código fluviométrico.
Recomendação
Sempre que a estação possuir ambos os códigos, prefira utilizar o código fluviométrico nas funções telemétricas.
Se o objetivo for baixar dados telemétricos pelo inventário, recomenda-se gerar o inventário sem definir var_tpEst.
Isso é especialmente importante para:
get_telemetric_inventory()get_telemetric_list()
Caso contrário, a estação pode ser encontrada no inventário, mas não retornar dados telemétricos.
2. get_telemetric_inventory()
Baixa dados telemétricos de todas as estações contidas em um inventário.
Sintaxe
hidroana.get_telemetric_inventory(df, caminho="", save_info=False)
Parâmetros
| Parâmetro | Tipo | Default |
|---|---|---|
| df | DataFrame | obrigatório |
| caminho | str | "" |
| save_info | bool | False |
Saída
-
Um CSV por estação
-
DataFrame resumo com disponibilidade de:
- chuva
- nível
- vazão
Exemplo
inv = hidroana.get_inventory(var_nmEstado="SC", var_telemetrica="1")
resumo = hidroana.get_telemetric_inventory(
inv,
caminho="./dados/",
save_info=True
)
3. get_telemetric_list()
Baixa dados telemétricos de uma lista de estações.
Sintaxe
hidroana.get_telemetric_list(
list_est,
d_i,
d_f,
caminho=""
)
Parâmetros
| Parâmetro | Descrição |
|---|---|
| list_est | Lista de códigos |
| d_i | Data inicial YYYY-MM-DD |
| d_f | Data final YYYY-MM-DD |
| caminho | Pasta saída |
Exemplo
hidroana.get_telemetric_list(
["74355000"],
"2020-01-01",
"2020-12-31",
"./dados/"
)
4. get_conv_data_list()
Baixa séries históricas convencionais de estações específicas.
Sintaxe
hidroana.get_conv_data_list(
list_est,
d_i,
d_f,
tipo,
caminho="",
cons=1
)
Tipo de dado (tipo)
"1"= Cota"2"= Chuva"3"= Vazão
Consistência (cons)
1= Prioriza dados consistidos quando existirem2= Apenas nível de consistência 2
Exemplo
hidroana.get_conv_data_list(
["02549000"],
"1990-01-01",
"2020-12-31",
tipo="3",
caminho="./vazao/",
cons=1
)
5. get_conv_inventory()
Baixa séries convencionais de todas as estações de um inventário.
Sintaxe
hidroana.get_conv_inventory(
df,
tipo,
caminho="",
cons=1,
save_info=False
)
Saída
- CSV por estação
- Resumo indicando disponibilidade
Exemplo
inv = hidroana.get_inventory(var_nmEstado="PR")
hidroana.get_conv_inventory(
inv,
tipo="2",
caminho="./chuva/",
save_info=True
)
6. get_series_by_shape()
Seleciona estações dentro de um shapefile / GeoPackage com buffer espacial e faz download automático.
Sintaxe
hidroana.get_series_by_shape(
arquivo,
d_i,
d_f,
buffer_km=0,
layer=None,
rede="conv",
tipo_dado="2",
caminho="",
save_inventory=True
)
Parâmetros
| Parâmetro | Descrição |
|---|---|
| arquivo | shp ou gpkg |
| d_i | Data inicial |
| d_f | Data final |
| buffer_km | Buffer em km |
| layer | Nome da camada (gpkg) |
| rede | "conv" ou "tele" |
| tipo_dado | 1,2,3 |
| caminho | Pasta saída |
Exemplo com shapefile
hidroana.get_series_by_shape(
arquivo="bacia.shp",
d_i="2000-01-01",
d_f="2020-12-31",
buffer_km=10,
rede="conv",
tipo_dado="2",
caminho="./saida/"
)
O que faz
- Lê o shapefile
- Aplica buffer
- Busca inventário ANA
- Seleciona estações dentro da área
- Salva inventário filtrado
- Baixa séries automaticamente
Estrutura dos Arquivos Gerados
saida/
├── 02549000.csv
├── 74355000.csv
├── info_estacoes.csv
└── inventario_filtrado.csv
Observações
- Requer internet
- Depende da disponibilidade dos serviços da ANA
- Algumas estações podem não possuir dados
- Datas devem estar em formato:
YYYY-MM-DD
Autora
Grenda Menezes
E-mail: grenda.menezes@gmail.com
Fonte dos Dados
Agência Nacional de Águas e Saneamento Básico (ANA)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hidroana-0.0.6.tar.gz.
File metadata
- Download URL: hidroana-0.0.6.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c2c3230e12731120592f1008f820aac4a281f545ab933fea971feacda3992e4
|
|
| MD5 |
752c2abeeaf92c28e07325ccbd7e04f1
|
|
| BLAKE2b-256 |
02d4470c1ffb8779e6662e460dfb34ae709e51d2c6983cac87f27e400b11aa79
|
File details
Details for the file hidroana-0.0.6-py3-none-any.whl.
File metadata
- Download URL: hidroana-0.0.6-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
234fd6ed058fd43a1455e862918268dfac0af1a3ad2ce1bd536d5a8dfee53f22
|
|
| MD5 |
e314d3b933867b466d838402a04ae8d6
|
|
| BLAKE2b-256 |
6be18c0e37a9757db4ebfbfab3996487bddd95bea4b4a06b03c83e6b203e6510
|