Home

Awesome

reservatoriosBR <img src="man/figures/logo.png" align="right" width="25%" min-width="120px"/>

<!-- badges: start -->

pix License DOI Twitter
Follow

<!-- badges: end -->

Pacote R para obtenção de dados dos principais reservatórios brasileiros a partir da plataforma SAR-ANA e da ONS.

Este pacote baixa e organiza os dados em uma estrutura para uso no R.

Atualmente estou buscando voluntários para testar as funções e dados. Se puder, entre em contato!

Se utilizar em algum trabalho, cite ou me avise! Gostaria de saber como este pacote pode ajudar!

Se você estiver procurando dados sobre os mananciais de abastecimento público na Região Metropolitana de São Paulo (SP - Brasil), o pacote mananciais foi feito para isso!

Instalação

Este pacote apenas está disponível para a instalação usando o devtools no R (mas é simples):

#install.packages("devtools")
devtools::install_github('brunomioto/reservatoriosBR')
library(reservatoriosBR)

Uso

Atualmente o pacote possui 9 funções:

Funções de datasets

Funções de busca de dados


As funções de datasets

A função tabela_reservatorios()

Essa função retorna uma tabela com informações sobre os reservatórios que podem ser utilizadas com as funções de busca de dados. Este são os reservatórios contabilizados pela ANA.

São 713 reservatórios (são 804 linhas pois reservatórios em 2 cidades são duplicados) com 12 variáveis, sendo elas:

Agradeço ao pessoal da ANA, em especial, o coordenador Antônio Augusto, o especialista Diego Pena e o técnico Théo Albuquerque, que construíram essa tabela e apoiam essa iniciativa de dados abertos!

library(reservatoriosBR)

tabela_reservatorios() 
#> # A tibble: 804 x 12
#>    sistema            codigo reservatorio  res_latitude res_longitude municipio 
#>    <chr>               <int> <chr>                <dbl>         <dbl> <chr>     
#>  1 nordeste_semiarido  12001 25 DE MARÇO          -6.11         -38.2 PAU DOS F~
#>  2 nordeste_semiarido  12002 ABÓBORAS             -8.09         -39.4 PARNAMIRIM
#>  3 nordeste_semiarido  12003 ACARAPE DO M~        -4.19         -38.8 REDENÇÃO  
#>  4 nordeste_semiarido  12004 ACARAÚ MIRIM         -3.51         -40.3 MASSAPÊ   
#>  5 nordeste_semiarido  12005 ACAUÃ                -7.44         -35.6 ITATUBA   
#>  6 nordeste_semiarido  12006 ADAUTO BEZER~        -6.04         -38.4 PEREIRO   
#>  7 nordeste_semiarido  12007 ADUSTINA            -10.6          -38.1 ADUSTINA  
#>  8 nordeste_semiarido  12008 ÁGUA FRIA II        -14.9          -40.6 BARRA DO ~
#>  9 nordeste_semiarido  12009 AIPIM               -10.6          -40.3 ANTONIO G~
#> 10 nordeste_semiarido  12010 ALAGADIÇO           -10.5          -37.6 FREI PAULO
#> # ... with 794 more rows, and 6 more variables: codigo_municipio_ibge <int>,
#> #   estado_nome <chr>, estado_sigla <chr>, rio <chr>, sub_bacia <chr>,
#> #   bacia <chr>

#caso queira uma lista sem códigos duplicados
#library(dplyr)
#tabela_reservatorios() %>% 
#  distinct(codigo, .keep_all = TRUE) 

Mapa dos reservatórios brasileiros!

library(tidyverse)

tabela_reservatorios() %>% 
  distinct(codigo, .keep_all = TRUE) %>% 
  ggplot()+
  borders("world", fill = "grey70", colour = "black")+
  theme_minimal()+
  geom_point(aes(x=res_longitude, y=res_latitude),
             colour = "blue",
             size = 2,
             alpha = 0.5) + 
  labs(x = "",
       y = "")+
  coord_fixed(xlim= c(-73,-35), ylim=c(-35,5))
<img src="https://raw.githubusercontent.com/brunomioto/reservatoriosBR/main/man/figures/mapa_pontos.png" width="100%" style="display: block; margin: auto;" />

A função tabela_reservatorios_ONS()

Essa função retorna uma tabela parecida com a tabela_reservatorios(), mas contendo apenas os reservatórios observados pela ONS.

São 39 reservatórios com 12 variáveis, sendo elas:

tabela_reservatorios_ONS()
#> # A tibble: 39 x 12
#>    subsistema      reservatorio  codigo res_latitude res_longitude municipio    
#>    <chr>           <chr>          <int>        <dbl>         <dbl> <chr>        
#>  1 Nordeste        IRAPE          19115       -16.7          -42.6 GRÃO MOGOL   
#>  2 Nordeste        SOBRADINHO     19121        -9.42         -40.8 CASA NOVA    
#>  3 Nordeste        TRÊS MARIAS    19119       -18.2          -45.3 TRÊS MARIAS  
#>  4 Nordeste        LUIZ GONZAGA   19122        -9.15         -38.3 JATOBÁ       
#>  5 Norte           BALBINA        19141        -1.92         -59.5 PRESIDENTE F~
#>  6 Norte           SERRA DA MESA  19128       -13.8          -48.3 MINAÇU       
#>  7 Norte           TUCURUI        19134        -3.75         -49.7 TUCURUÍ      
#>  8 Sudeste / Cent~ A. VERMELHA    19015       -19.9          -50.4 ITURAMA      
#>  9 Sudeste / Cent~ FURNAS         19004       -20.7          -46.3 ALPINÓPOLIS  
#> 10 Sudeste / Cent~ M. MORAES      19005       -20.3          -47.1 SACRAMENTO   
#> # ... with 29 more rows, and 6 more variables: codigo_municipio_ibge <int>,
#> #   estado_nome <chr>, estado_sigla <chr>, rio <chr>, sub_bacia <chr>,
#> #   bacia <chr>

A função info_reservatoriosBR()

Essa função retorna uma tabela com informações das funções utilizadas nesse pacote.

As variáveis retornadas são:

FunçãoAçãoNível.de.detalhamentoDados.disponíveisFonte
ONS_EAR_subsistemas()Dados históricos da EAR de subsistemasSubsistemasA partir de 2000ONS
ONS_reservatorios()Dados atuais da EAR dos reservatórios segundo a ONSReservatóriosÚltima dataONS
reservatorio_sin()Dados históricos de reservatórios do SINReservatórios-SAR-ANA
reservatorio_cantareira()Dados históricos de reservatórios do Sist. CantareiraReservatóriosA partir de 2000SAR-ANA
reservatorio_nordeste_semiarido()Dados históricos de reservatórios do Mód. Nordeste-SemiáridoReservatórios-SAR-ANA
ultima_medicao()Dados atuais dos reservatórios segundo o SARReservatóriosÚltima dataSAR-ANA
tabela_reservatorios()Dataset dos reservatórios do SAR disponíveis para buscaReservatóriosDatasetSAR-ANA
tabela_reservatorios_ONS()Dataset dos reservatórios da ONS disponíveis para buscaReservatóriosDatasetONS
info_reservatoriosBR()Lista todas as funções do pacote reservatoriosBR---

As funções de busca de dados

A função reservatorio_sin()

Utilize a função para obter os dados históricos dos principais reservatórios brasileiros que pertencem ao SIN - Sistema Interligado Nacional. A imagem abaixo apresenta as bacias dos reservatórios contidos no SIN.

<img src="https://raw.githubusercontent.com/brunomioto/reservatoriosBR/main/man/figures/modelo-principal-mapa-sin.png" width="100%" style="display: block; margin: auto;" />

reservatorio_sin(codigo_reservatorio, data_inicial, data_final)

Dessa forma, a função funciona utilizando apenas: reservatorio_sin(codigo_reservatorio)

reservatorio_sin(19058, "2000-01-01", "2019-12-31")
#> # A tibble: 7,306 x 11
#>    data       codigo_reservatorio reservatorio cota_m afluencia_m3_s
#>    <date>     <fct>               <fct>         <dbl>          <dbl>
#>  1 2000-01-01 19058               ITAIPU         216.           9761
#>  2 2000-01-02 19058               ITAIPU         216.           9300
#>  3 2000-01-03 19058               ITAIPU         216.           9385
#>  4 2000-01-04 19058               ITAIPU         216.           9450
#>  5 2000-01-05 19058               ITAIPU         216.           8868
#>  6 2000-01-06 19058               ITAIPU         216.           8275
#>  7 2000-01-07 19058               ITAIPU         215.           7963
#>  8 2000-01-08 19058               ITAIPU         215.           8367
#>  9 2000-01-09 19058               ITAIPU         215.           9408
#> 10 2000-01-10 19058               ITAIPU         215.           8706
#> # ... with 7,296 more rows, and 6 more variables: defluencia_m3_s <dbl>,
#> #   vazao_vertida_m3_s <dbl>, vazao_turbinada_m3_s <dbl>,
#> #   vazao_natural_m3_s <dbl>, volume_util_percentual <dbl>,
#> #   vazao_incremental_m3_s <dbl>

As variáveis retornadas são:

As unidades de medida foram mantidas no nome das variáveis para não haver problemas de interpretação.

Podemos utilizar estes dados históricos para fazer análises e gráficos. A Afluência(m³/s), por exemplo, mede a quantidade de água que chega nas represas.

<img src="https://raw.githubusercontent.com/brunomioto/reservatoriosBR/main/man/figures/plot1.png" width="100%" style="display: block; margin: auto;" />

A função reservatorio_cantareira()

Utilize a função para obter os dados históricos dos reservatórios brasileiros que pertencem ao sistema Cantareira. A imagem abaixo apresenta as bacias dos reservatórios contidos no Sistema Cantareira.

<img src="https://raw.githubusercontent.com/brunomioto/reservatoriosBR/main/man/figures/outros-sistemas-hidricos-cantareira-principal.png" width="100%" style="display: block; margin: auto;" />

reservatorio_cantareira(codigo_reservatorio, data_inicial, data_final)

ReservatorioCodigo
Jaguari-Jacareí29001
Cachoeira29002
Atibainha29003
Paiva Castro29004

Dessa forma, a função funciona utilizando apenas: reservatorio_cantareira(codigo_reservatorio)

As variáveis retornadas são:

A função reservatorio_nordeste_semiarido()

Utilize a função para obter os dados históricos dos reservatórios brasileiros que pertencem ao módulo Nordeste e Semiárido do SAR. A imagem abaixo apresenta os estados dos reservatórios contidos no SAR.

Dessa forma, a função funciona utilizando apenas: reservatorio_nordeste_semiarido(codigo_reservatorio)

<img src="https://raw.githubusercontent.com/brunomioto/reservatoriosBR/main/man/figures/mapa-principal-ns.png" width="100%" style="display: block; margin: auto;" />

A função ultima_medicao()

Essa função retorna a última medição (e somente ela) dos dados de um reservatório.

Fiz essa função pois ela fornece o Volume útil de alguns reservatórios que não estão inclusos no dataset criado pela função reservatorio_sin(), como é o exemplo de Itaipu.

ultima_medicao(codigo_reservatorio)

As variáveis retornadas são:

As funções ONS - Operador Nacional do Sistema Elétrico

A função ONS_reservatorios()

Essa função busca os dados atuais dos reservatórios brasileiros observados pelo Operador Nacional do Sistema Elétrico (ONS) e pode retornar valores em 2 formatos:

Gera um dataframe com diversas variáveis de 39 reservatórios observados pela ONS.

ONS_reservatorios(formato = "tabela")
#> # A tibble: 39 x 19
#>    data       subsistema bacia  reservatorio  reservatorio_max reservatorio_ear~
#>    <date>     <fct>      <fct>  <chr>                    <dbl>             <dbl>
#>  1 2021-11-03 Norte      AMAZO~ BALBINA                   776.              470.
#>  2 2021-11-03 Norte      TOCAN~ TUCURUI                  7686.             3781.
#>  3 2021-11-03 Norte      TOCAN~ SERRA DA MESA            6530.             7238.
#>  4 2021-11-03 Nordeste   JEQUI~ IRAPE                    1006.              366.
#>  5 2021-11-03 Nordeste   SAO F~ ITAPARICA                3415.             2617.
#>  6 2021-11-03 Nordeste   SAO F~ SOBRADINHO              30048.             9923.
#>  7 2021-11-03 Nordeste   SAO F~ TRÊS MARIAS             16013               675.
#>  8 2021-11-03 Sul        CAPIV~ G. P. SOUZA               377.              153.
#>  9 2021-11-03 Sul        IGUACU SANTA CLARA-~             378.              308.
#> 10 2021-11-03 Sul        IGUACU G. B. MUNHOZ             5934.             3292.
#> # ... with 29 more rows, and 13 more variables:
#> #   reservatorio_ear_verificada_porcentagem <dbl>,
#> #   reservatorio_valor_util <dbl>, reservatorio_porcentagem <dbl>,
#> #   bacia_max <dbl>, bacia_ear_verificada_mw_mes <dbl>,
#> #   bacia_ear_verificada_porcentagem <dbl>, bacia_porcentagem <dbl>,
#> #   subsistema_max <dbl>, subsistema_ear_verificada_mw_mes <dbl>,
#> #   subsistema_valor_util <dbl>, sin_max <dbl>, ...

Gera um relatório dos 4 subsistemas da ONS e o percentual atual em cada um.

ONS_reservatorios(formato = "resumo")
#> # A tibble: 4 x 3
#>   data       subsistema             percentual
#>   <date>     <chr>                       <dbl>
#> 1 2021-11-03 Nordeste                     36.3
#> 2 2021-11-03 Norte                        45.2
#> 3 2021-11-03 Sudeste / Centro-Oeste       18.6
#> 4 2021-11-03 Sul                          52.9

A função ONS_EAR_subsistemas()

Essa função tem como objetivo buscar a série histórica da Energia Armazenada (EAR) dos subsistemas observados pela ONS.

ONS_EAR_subsistemas(ano_inicial, ano_final)

Dessa forma, rodando a função ONS_EAR_subsistemas() retorna todos os dados de todos os subsistemas de 2000 até o ano atual.

As variáveis retornadas são:

Esses valores são utilizados como referência para o nível dos reservatórios e quanta energia eles ainda podem produzir.

Com esses dados, podemos observar os resultados da seca nos reservatórios do subsistema Sudeste / Centro-oeste, por exemplo:

<img src="https://raw.githubusercontent.com/brunomioto/reservatoriosBR/main/man/figures/plot2.png" width="100%" style="display: block; margin: auto;" />

Como citar o pacote

DOI

To-do

Melhorias e sugestões

Tem alguma ideia para o pacote ou sugestão de como posso melhorá-lo? Crie uma nova issue para que eu possa ajudar!