Obtém dados da ANA por uma interface única. A função cobre leituras locais, consultas ao WebService legado e consultas à API autenticada, sempre que a rota correspondente estiver disponível para o produto solicitado.
Arguments
- product
Produto solicitado. Valores usuais incluem
"daily_discharge","daily_stage","daily_rainfall","discharge_measurements","rating_curves","cross_sections","stations","states","municipalities","basins","subbasins","rivers","entities"e"all". Para arquivos locais, o produto diário pode ser inferido a partir do leitor usado.- data_source
Origem dos dados. Use
"api"para a API autenticada,"webservice"para o WebService online legado,"xml"para arquivo XML local da operaçãoHidroSerieHistorica, ou"hidroweb"para arquivo CSV/ZIP local do HidroWeb.- station_code
Código da estação ANA. Pode ser texto ou número; códigos com zeros à esquerda devem ser informados como texto.
- path
Caminho de arquivo local, quando
data_sourcefor"xml","hidroweb"ou outra fonte local suportada.- ...
Argumentos adicionais usados pela rota escolhida. Os mais comuns são
start_date,end_date,token,source,include_cross_sections,variables,timeout,max_attemptse opções de repetição de requisições.
Value
O tipo de objeto depende do produto. Séries diárias retornam um
data.frame padronizado. Produtos especializados retornam tabelas ou listas
com tabelas. Aquisições agregadas retornam uma lista com os produtos obtidos,
a tabela diária combinada em daily_data e um request_report com o estado
de cada requisição.
Details
Esta é a principal porta de entrada para aquisição de dados no hydroDataBR.
Para uso cotidiano, escolha o produto em product, a origem em data_source
ou source, e informe os demais argumentos necessários, como código da
estação, período ou caminho de arquivo local.
Para séries diárias, o retorno segue o contrato padronizado do pacote, com as
colunas station_code, date, variable, value, unit,
consistency_level, source_status e source. Essa padronização permite
usar diretamente os resultados em analyze_hydro_data(), plot_hydro_data(),
table_hydro_data() e write_hydro_data().
Com product = "all" e data_source = "api", a função monta uma aquisição
agregada para uma estação. Para postos fluviométricos, são avaliados dados de
vazão diária, cota diária, medições de descarga e curvas-chave; chuva diária
só é solicitada quando houver disponibilidade pluviométrica no inventário. As
seções transversais são opcionais e ficam desativadas por padrão com
include_cross_sections = FALSE, pois essa rota pode ser lenta ou instável.
As rotas da API autenticada são planejadas em janelas de no máximo um ano. Em
períodos longos, o download pode demorar, retornar resultados vazios para
algumas janelas ou falhar por instabilidade temporária do serviço. Isso é
especialmente comum em produtos especializados, como curvas-chave e seções
transversais. Resultados vazios de rating_curves podem ser válidos e não
indicam, por si só, erro do pacote.
Examples
# Exemplo operacional com API autenticada. Requer credenciais válidas da ANA.
if (FALSE) {
token <- ana_authenticate(
identifier = Sys.getenv("ANA_HIDROWEBSERVICE_IDENTIFIER"),
password = Sys.getenv("ANA_HIDROWEBSERVICE_PASSWORD")
)
dados <- get_ana_data(
product = "daily_discharge",
data_source = "api",
station_code = "56460000",
start_date = "2020-01-01",
end_date = "2020-01-31",
token = token
)
agregado <- get_ana_data(
product = "all",
data_source = "api",
station_code = "56460000",
start_date = "2020-01-01",
end_date = "2020-12-31",
include_cross_sections = FALSE,
token = token
)
}
# Exemplo local com arquivo ja baixado do HidroWeb.
if (FALSE) {
dados <- get_ana_data(
product = "daily_discharge",
data_source = "hidroweb",
path = "Estacao_56460000.zip"
)
}