knitr::opts_chunk$set(echo = TRUE, message  = FALSE, warning = FALSE)

library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.4.4     v purrr   0.3.4
## v tibble  3.2.0     v dplyr   1.1.0
## v tidyr   1.1.3     v stringr 1.4.0
## v readr   2.1.2     v forcats 0.5.1
## Warning: package 'tibble' was built under R version 4.1.3
## Warning: package 'readr' was built under R version 4.1.2
## Warning: package 'dplyr' was built under R version 4.1.3
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(colorspace)
library(sp)
library(sf)
## Linking to GEOS 3.10.2, GDAL 3.4.1, PROJ 7.2.1; sf_use_s2() is TRUE
library(spData)
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source')`
library(patchwork)
## Warning: package 'patchwork' was built under R version 4.1.2
library(forecast)
## Warning: package 'forecast' was built under R version 4.1.2
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
#siga_empreendimentos_geracao <- readRDS("siga_empreendimentos_geracao.rds")



#siga_empreendimentos_geracao <- read_csv("siga_empreendimentos_geracao.csv")


endereco_aneel<- "https://dadosabertos.aneel.gov.br/dataset/6d90b77c-c5f5-4d81-bdec-7bc619494bb9/resource/2f65a1b0-19b8-4360-8238-b34ab4693d55/download/siga-empreendimentos-geracao-diario.csv"

siga_empreendimentos_geracao<- 
  read_delim(endereco_aneel,
             delim = ";",
             escape_double = FALSE,
             locale = locale(decimal_mark = ",",
                             grouping_mark = ".",
                             encoding = "latin1"),
             trim_ws = TRUE) %>%
  janitor::clean_names()

#saveRDS(siga_empreendimentos_geracao,"siga_empreendimentos_geracao.rds")

#dados_grafico_ember <- readRDS("dados_grafico_ember.rds")

dados_grafico_ember <- read_csv("dados_grafico_ember.csv")


data("world")

mapa_brasil<- geobr::read_country(showProgress = FALSE)

sedes<- geobr::read_municipal_seat(showProgress = FALSE)

estados<- geobr::read_state(showProgress = FALSE, simplified = FALSE)

biomas<- 
  geobr::read_biomes(simplified = FALSE, showProgress = FALSE) %>%
  filter(name_biome!= "Sistema Costeiro")

# ide_nucleo_ceg <- 
#   (siga_empreendimentos_geracao %>%
#   filter(num_coord_e_empreendimento == 0) %>%
#   select(ide_nucleo_ceg))$ide_nucleo_ceg
# 
# 
# Munic_pios_com_C_digo_IBGE <- read_csv("Munic_pios_com_C_digo_IBGE.csv")
# 
# Munic_pios_com_C_digo_IBGE$ide_nucleo_ceg <- ide_nucleo_ceg


  


# usinas_coordenadas_ajustadas<-
# siga_empreendimentos_geracao %>%
#   inner_join(
#     Munic_pios_com_C_digo_IBGE %>%
#       rename(code_muni = codigo_ibge) %>%
#       select(code_muni, ide_nucleo_ceg)
#   ) %>%
#   inner_join(
#     sedes %>%
#       rename(geometry = geom)
#   ) %>%
#   select(dsc_fase_usina, dsc_origem_combustivel, mda_potencia_outorgada_kw, mda_potencia_outorgada_kw,geometry) 
#   
# usinas_coordenadas_ajustadas$geometry <- st_transform(usinas_coordenadas_ajustadas$geometry,crs = 4326)

coords_usinas<-
  siga_empreendimentos_geracao %>%
  st_as_sf(coords = c("num_coord_e_empreendimento" , "num_coord_n_empreendimento"),
           crs = 4326) %>%
  select(dsc_fase_usina, dsc_origem_combustivel, mda_potencia_outorgada_kw, mda_potencia_outorgada_kw,geometry) #%>%
  #bind_rows(usinas_coordenadas_ajustadas)



gera_dados_mapa<- function(){
  coords_usinas %>%
  filter(dsc_origem_combustivel != "Nuclear") %>%
  mutate(fase = case_when(
    dsc_fase_usina == "Operação" ~ "Em operação",
    dsc_fase_usina != "Operação" ~ "Em desenvolvimento"
  )) %>%
  mutate(fase = factor(fase, levels = c("Em operação", "Em desenvolvimento"))) %>%
  mutate(tipo_renovavel= case_when(
    dsc_origem_combustivel == "Fóssil" ~ "Não renovável",
    dsc_origem_combustivel != "Fóssil" ~ "Renovável",
  )) 
}

gera_dados_mapa_estados<- function(){
 estados %>%
  inner_join(
    siga_empreendimentos_geracao %>%
      filter(dsc_origem_combustivel != "Nuclear") %>%
      mutate(fase = case_when(
        dsc_fase_usina == "Operação" ~ "Em operação",
        dsc_fase_usina != "Operação" ~ "Em desenvolvimento"
      )) %>%
        mutate(fase = factor(fase, levels = c("Em operação", "Em desenvolvimento"))) %>%
      summarise(total = sum(mda_potencia_outorgada_kw),
                .by = c(sig_uf_principal, dsc_origem_combustivel, fase  )) %>%
      rename(abbrev_state = sig_uf_principal)
  )
}

gera_dados_grafico<- function(){
  siga_empreendimentos_geracao %>%  
  filter(dsc_origem_combustivel != "Nuclear") %>%
  mutate(fase = case_when(
    dsc_fase_usina == "Operação" ~ "Em operação",
    dsc_fase_usina != "Operação" ~ "Em desenvolvimento"
  )) %>%
  mutate(fase = factor(fase, levels = c("Em operação", "Em desenvolvimento"))) %>%
  mutate(tipo_renovavel= case_when(
    dsc_origem_combustivel == "Fóssil" ~ "Não renovável",
    dsc_origem_combustivel != "Fóssil" ~ "Renovável",
  )) %>%
  summarise(quantidade = n(),
            total_outorgado = sum(mda_potencia_outorgada_kw),
            .by = c(fase,tipo_renovavel, dsc_origem_combustivel))

}




forca_tendencia <- function(serie){
  tendencia<- 
    serie$data %>%
    filter(parts=="trend")

  remanescente<- 
    serie$data %>%
    filter(parts=="remainder")
  
  tend_rem<-
    bind_rows(tendencia, remanescente)
  
  proporcao_variancias<-
    var(remanescente$y)/var(tend_rem$y)
    
    
  max(0, 1- proporcao_variancias  )
  
}


forca_sazonalidade <- function(serie){
  sazonalidade<- 
    serie$data %>%
    filter(parts=="seasonal")
  
  remanescente<- 
    serie$data %>%
    filter(parts=="remainder")
  
  sazon_rem<-
    bind_rows(sazonalidade, remanescente)
  
  proporcao_variancias<-
    var(remanescente$y)/var(sazon_rem$y)
  
  
  max(0, 1- proporcao_variancias  )
  
}


decompoe_serie_pais<- function(area_nome){
  
  dados_ts <-
    (dados_grafico_ember %>%
       filter(area == area_nome) %>%
       select(value))$value
  
  
  
  ts(dados_ts, frequency = 12)%>%
    stl(t.window=12, s.window="periodic", robust=TRUE) %>%
    autoplot()
  
  
}


data_geracao_dados<- format( siga_empreendimentos_geracao$dat_geracao_conjunto_dados[1], format = "%d/%m/%Y") 

areas <-unique(dados_grafico_ember$area)


cor_fundo<- "#D0D0D0"# "#F8F8F8"

cor_fundo_painel<- "#F5F5F5"

cor_fundo_estados<- "#696969"

cor_fundo_mapa_pontos <- "#2B2B2B" #"#505050"

cor_texto<- "#324e5a"


cores_tipo_combustivel<- c("#999999","#009E73" )
cores_combustivel<- c("#D55E00", "#4BB5C1","#999999","#0072B2","#F0E442") # 
cores_biomas<- c("#88902b","#ffd795","#f9e994","#b5ce94","#fef9d1", "#cbb3c3" )

Brasil: tradição renovável, futuro de baixo impacto

O Brasil sempre esteve à frente na geração de energia a partir de fontes renováveis. Durante décadas, grandes hidrelétricas foram o pilar da matriz elétrica nacional, garantindo uma participação limpa muito acima da média mundial. Essa tradição é um ativo valioso na corrida global para conter as mudanças climáticas.

Desde meados da década passada, o país entrou em uma nova fase dessa história. Em 2025, apenas 10% das usinas em operação utilizam fontes não renováveis, e entre os projetos em desenvolvimento essa proporção cai para 0,5%. O protagonismo passa para as fontes solar e eólica, que já representam 80% das usinas instaladas e alcançam 95% dos empreendimentos em desenvolvimento. Traduzindo as quantidades de usinas em potência instalada, as a junção eólica e fotovoltaica representam cerca de 23% da capacidade instalada do país. E já é muito.

gera_dados_mapa() %>%
  ggplot()+
  geom_sf(data = world, fill= "lightgray" )+
  geom_sf(data= mapa_brasil,
          alpha=1,
          fill= cor_fundo_mapa_pontos) +
  geom_sf( aes(fill= dsc_origem_combustivel ),
           pch=21, 
           alpha=1,
           color= cor_fundo_mapa_pontos) +
  scale_fill_manual(values = cores_combustivel) +
  coord_sf(xlim = c(-31,-72), ylim=c(-35,5))+
  theme_void() +
  theme(
    panel.background = element_rect(fill="#0077be"),
    legend.position = "bottom",
    legend.background = element_rect(fill= cor_fundo, color = cor_fundo),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto),
    strip.text = element_text(size= 8, face ="bold")
  ) + 
  labs(
    fill= "",
    title = " Localização das usinas geradoras de energia elétrica",
    caption = paste0("Fonte: ANEEL (", data_geracao_dados,"). Elaboração: Fernando Barbalho") 
  ) +
  facet_wrap(fase+tipo_renovavel~., ncol=2)

Mais dados confirmam que a transição não é apenas quantitativa, mas qualitativa. O número total de usinas crescerá 16%, enquanto a potência outorgada aumentará 76% — impulsionada por usinas solares muito mais robustas, com potência média de 44 MW nos projetos, contra apenas 1 MW nas atuais.

dados_grafico_fontes <- gera_dados_grafico() 
#
graf_quantidade<-
  dados_grafico_fontes %>%
  ggplot(aes(y=dsc_origem_combustivel, x= quantidade)) +
  geom_col(aes( fill= tipo_renovavel ), color ="black") +
  geom_text(aes(x= quantidade, 
                y= dsc_origem_combustivel,
                label= paste0(" ", format(quantidade, big.mark = ".") ) ,
                color = tipo_renovavel), 
            show.legend = FALSE,
            hjust =0,
            fontface = "bold",
            color = cor_texto)+
  scale_fill_manual(values=cores_tipo_combustivel) +
  scale_color_manual(values=cores_tipo_combustivel) +
  scale_x_continuous(expand = expansion(mult = c(0.03, 0.17))) +  
  theme_light()  +
  theme(
    panel.background =  element_rect( fill= cor_fundo_painel),
    panel.grid =  element_blank(),
    strip.background = element_blank(),
    strip.text = element_text(face = "bold", colour = cor_texto),
    legend.position = "bottom",
    legend.title = element_blank(),
    legend.background = element_rect(fill= cor_fundo),
    axis.text.x = element_blank(),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto)
    
  ) +
  labs(
    title= "Quantidade de usinas",
    fill="",
    x="",
    y=""
  ) +
  facet_wrap(fase~.) 

  
graf_outorgado<-
dados_grafico_fontes %>%
  ggplot(aes(y=dsc_origem_combustivel, x= total_outorgado/10^6)) +
  geom_col(aes( fill= tipo_renovavel ), color ="black") +
  geom_text(aes(x= total_outorgado/10^6, 
                y= dsc_origem_combustivel,
                label=paste0(" ", format(round(total_outorgado/10^6,0), big.mark   = ".") )  ,
                color = tipo_renovavel), 
            hjust =0, 
            show.legend = FALSE,
            fontface = "bold",
            color = cor_texto)+
  scale_fill_manual(values=cores_tipo_combustivel) +
  scale_color_manual(values=cores_tipo_combustivel) +
  scale_x_continuous(expand = expansion(mult = c(0.03, 0.09))) +  
  theme_light() +
  theme(
    panel.background =  element_rect( fill= cor_fundo_painel),
    panel.grid =  element_blank(),
    strip.background = element_blank(),
    strip.text = element_text(face = "bold", colour = cor_texto),
    legend.position = "bottom",
    legend.title = element_blank(),
    legend.background = element_rect(fill= cor_fundo, color = cor_fundo),
    axis.text.x = element_blank(),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto)
    
  ) +
  labs(
    title= "Potência outorgada (valores em GW)",
    fill="",
    caption = paste0("Fonte: ANEEL (", data_geracao_dados,"). Elaboração: Fernando Barbalho"), 
    x="",
    y=""
  ) +
  facet_wrap(fase~.) 

  graf_quantidade / graf_outorgado

A estratégia de transição brasileira tem aspectos de pioneirismo. Destaque ao programa PROINFA que atua no estímulo à nacionalização de empreendimentos da indústria de base de fontes alternativas. Um ponto importante das EOLs e UFVs ou da Transição em si é que as tecnologias propostas têm que ser de baixo custo e de replicação fácil. Ao migrar de grandes barragens para tecnologias mais distribuídas, o Brasil reduz impactos socioambientais e reforça sua contribuição para as metas climáticas.

O mapa da expansão solar

A expansão da energia solar redefine o mapa da geração no Brasil. Minas Gerais lidera com 35 GW em novos projetos solares, seguida por Bahia (24 GW), Piauí (21 GW) e Ceará (16 GW). Esses números refletem um avanço expressivo de estados com forte potencial para abrigar grandes empreendimentos fotovoltaicos, fortalecendo especialmente o Nordeste e parte do Sudeste como motores dessa nova etapa da transição energética.

A radiação solar, destaca-se como uma fonte renovável que oferece energia renovável, sem causar danos ao meio ambiente. O Sol desempenha um papel fundamental na evaporação da água, contribuindo para a formação de reservatórios de rios e permitindo a geração de energia em hidrelétricas. Além disso, a circulação atmosférica impulsionada pela radiação solar possibilita a captura de energia eólica em parques eólicos. Essa abordagem sustentável ressalta a importância da energia solar como um recurso fundamental para a produção de eletricidade, aproveitando os elementos naturais de maneira eficiente.

dados_sel<-
  gera_dados_mapa_estados() %>%
  filter(dsc_origem_combustivel == "Solar",
         fase == "Em desenvolvimento",
         abbrev_state %in% c("MG","BA","PI","CE"))


gera_dados_mapa_estados() %>%
  filter(dsc_origem_combustivel == "Solar") %>%
  mutate(total = total/10^6) %>%
  ggplot() +
  geom_sf(data = world, fill= "lightgray" )+
  geom_sf(data = mapa_brasil,
          fill= cor_fundo_estados )+
  geom_sf( aes( fill= total )) +
  scale_fill_continuous_sequential(palette = "Heat 2") +
  theme_void() +
  theme(
    panel.background = element_rect(fill="#0077be"),
    legend.position = "bottom",
    legend.background = element_rect(fill= cor_fundo, color = cor_fundo),
    legend.key.size = unit(4, "mm"),
    legend.title = element_text(size =8, color = cor_texto),
    legend.text = element_text(size =8, color = cor_texto),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto),
    strip.text = element_text(size= 8, face ="bold")
  ) +
  labs(
    fill= "Potência em GW",
    caption = paste0("Fonte: ANEEL (", data_geracao_dados,"). Elaboração: Fernando Barbalho") ,
    title= " Potência total outorgada por estado",
    subtitle = " Energia solar"
  )+
  coord_sf(xlim = c(-31,-72), ylim=c(-35,5)) +
  facet_wrap(fase~., nrow = 1)

Se há avanços, há ainda pontos de preocupação. O Pará ilustra, de forma emblemática, os dilemas da mudança de paradigma. Lar das duas maiores hidrelétricas do país — Belo Monte (11 GW) e Tucuruí (8,5 GW) —, o estado não conta com novos projetos hídricos em desenvolvimento. Mais amplamente, a região Norte sitntetiza os desafios para as políticas públicas de geração e consumo de energia. Do lado da oferta, não há expansão significativa nem da fonte hídrica nem de alternativas renováveis. Ao mesmo tempo, muitas comunidades isoladas continuam carentes de soluções confiáveis e de baixo impacto ambiental para geração e distribuição de eletricidade.

gera_dados_mapa_estados() %>%
  mutate(total = total/10^6) %>%
  ggplot() +
  geom_sf(data = world, fill= "lightgray" )+
  geom_sf(data = mapa_brasil,
          fill= cor_fundo_estados )+
  geom_sf( aes( fill= total )) +
  scale_fill_continuous_sequential(palette = "Heat 2") +
  theme_void() +
  theme(
    panel.background = element_rect(fill="#0077be"),
    legend.position = "bottom",
    legend.background = element_rect(fill= cor_fundo, color = cor_fundo),
    legend.key.size = unit(4, "mm"),
    legend.title = element_text(size =8, color = cor_texto),
    legend.text = element_text(size =8, color = cor_texto),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto),
    strip.text = element_text(size= 8, face ="bold")
  ) +
  labs(
    fill= "Potência em GW",
    caption = paste0("Fonte: ANEEL (", data_geracao_dados,"). Elaboração: Fernando Barbalho") ,
    title= " Potência total outorgada por estado"
  )+
  coord_sf(xlim = c(-31,-72), ylim=c(-35,5)) +
  facet_wrap(fase+dsc_origem_combustivel~., nrow = 2)

dados_grafico_historia<-
  siga_empreendimentos_geracao %>%
  filter( dsc_origem_combustivel != "Nuclear" ) %>% 
  filter(dsc_fase_usina == "Operação"  ) %>%
  mutate(ano_inicio = lubridate::year(dat_entrada_operacao)) %>%
  filter( ano_inicio> 1900) %>%
  summarise( total_outorgado  = sum(mda_potencia_outorgada_kw), #
             .by = c(ano_inicio, dsc_origem_combustivel)) %>%
  mutate(total_outorgado = total_outorgado/10^6)

dados_2016 <-
  dados_grafico_historia %>%
  filter(ano_inicio == 2016) %>%
  summarise(total_outorgado = sum(total_outorgado),
            .by = ano_inicio)

ordem_origem_combustivel<- 
  dados_grafico_historia %>%
  filter(between(ano_inicio, 1901, 2000)) %>%
  summarise(total = sum(total_outorgado),
            .by = c(dsc_origem_combustivel)) %>%
  arrange(desc(total))



dados_grafico_historia %>%
  ggplot(aes(x=ano_inicio,y=total_outorgado)) +
  geom_area(aes(fill= dsc_origem_combustivel), 
            position = "stack", 
            outline.type = "full", 
            color= "#404040",
            linewidth = 0.1,
            show.legend = TRUE) +
  geom_text(data = dados_2016, 
            aes(label = str_wrap("Em 2016 entra em operação Belo Monte. Potência outorgada atual: 11 GW   ", 100) ),
            hjust = 1.01,
            color = cor_texto)   +
  geom_text(data = tibble(ano_inicio =1950, total_outorgado = 7), 
            label = str_wrap("Das usinas que entraram em operação entre 1901 e 2000, 90% da potência instalada é de fonte hídrica.",40),
            hjust = 0.5,
            color = cor_texto) +
  geom_curve( data = tibble(ano_inicio = 1985, total_outorgado= 14.9),
              aes( xend = 2016, yend = 11),
              curvature = 0.25, ncp = 50,
              arrow = arrow(length = unit(3, "mm"), type = "closed"),
              color = cor_texto,
              linetype = "dashed"
  )   +
  geom_text(data = tibble(ano_inicio =1955, total_outorgado = 12), 
            label = str_wrap("Das usinas em operação desde 2017, 73% da potência instalada é de fontes solares ou eólicas.",40),
            hjust = 0.5,
            color = cor_texto) +
  geom_curve(data = tibble(ano_inicio = 1982, total_outorgado= 11),
             aes(
               xend = 2023, yend = 9.5),
             curvature = 0.25, ncp = 50,
             arrow = arrow(length = unit(3, "mm"), type = "closed"),
             color = cor_texto,
             linetype = "dashed"
  )   + 
  scale_fill_manual(values = cores_combustivel) +
  scale_y_continuous(labels = scales::comma_format(big.mark = ".")) +
  theme_light() +
  theme(
    panel.background =  element_rect( fill= cor_fundo_painel),
    panel.grid =  element_blank(),
    legend.position = "bottom",
    legend.title = element_blank(),
    legend.background = element_rect(fill= cor_fundo),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto)
  ) +
  labs(
    title = "Ecos do passado na energia elétrica de hoje",
    subtitle =str_wrap("Uma linha do tempo das fontes que moldaram cada gigawatt outorgado",70)  ,
    caption = "Fonte: ANEEL. Elaboração: Fernando Barbalho. Consultoria: Sérgio Leite (ANEEL)",
    y= "Potência outorgada em GW",
    x= ""
  )

tendencias<- 
  purrr::map_dfr(areas, function(nome_area){
   
   serie<- 
   decompoe_serie_pais(nome_area)
   
   tendencia<-
   serie$data %>%
    filter(parts=="trend")
   
   tendencia$area <- nome_area
   
   tendencia$date <-
     (dados_grafico_ember %>%
       filter(area == nome_area))$date
   
   tendencia$value = tendencia$y
   
   tendencia

  })

dados_grafico_ember %>%
  ggplot(aes(x=date, y=value)) +
  geom_area(fill = cores_combustivel[5], color= "black") +
  geom_line(data = tendencias, color= "red", size =1.2) +
  geom_text(data = tibble(area= "Brazil", date= as.Date("2021-01-01"),value=7),
            aes(label= str_wrap("Sazonalidades climáticas com baixo impacto",20)),
            color = cor_texto,
            fontface = "bold")+
  geom_text(data = tibble(area= "Brazil", date= as.Date("2021-06-01"),value=1),
            aes(label= str_wrap("Tendência",20)),
            color = "red",
            hjust =0,
            fontface = "bold")+
  theme_light() +
  theme(
    panel.background =  element_rect( fill= cor_fundo_painel),
    panel.grid =  element_blank(),
    strip.background = element_blank(),
    strip.text = element_text(face = "bold", colour = cor_texto),
    legend.position = "bottom",
    legend.title = element_blank(),
    legend.background = element_rect(fill= cor_fundo, color = cor_fundo),
    #axis.text.x = element_blank(),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto)
    
  ) +
  labs(
    title = "Energia Solar: Série temporal de geração",
    y= "Energia gerada em TwH",
    x="",
    caption =  "Fonte: EMBER. Dados coletados em Maio de 2025. Elaboração: Fernando Barbalho"
  ) +
  facet_wrap(area~., scales= "free_y")

decompoe_serie_pais("Brazil")

decompoe_serie_pais("Germany")

season_trend<-
  purrr::map_dfr(areas, function(area){
    
    #print(area)
    
    dados_area<- decompoe_serie_pais(area)
      
    tibble(area = area, sazonalidade = forca_sazonalidade(dados_area), tendencia = forca_tendencia(dados_area))
    
  })

dados_grafico<-
  season_trend %>%
  pivot_longer(cols = sazonalidade:tendencia, names_to = "forca", values_to = "valor") %>%
  mutate(forca = ifelse(forca == "tendencia", "Tendência", "Sazonalidade")) 


graf1<-
  season_trend %>%
  mutate(area = reorder(area, sazonalidade)) %>%
  ggplot(aes(x= sazonalidade, y=area )) +
  geom_col(aes(fill= sazonalidade), color="lightgray", show.legend = FALSE)+
  geom_text(aes(label = round(sazonalidade,2)),
            color = cor_texto,
            hjust= 1,
            fontface = "bold") +
  scale_fill_continuous_sequential(palette = "Heat 2") +
  theme_light() +
  theme(
    panel.background =  element_rect( fill= cor_fundo_painel),
    panel.grid =  element_blank(),
    strip.background = element_blank(),
    strip.text = element_text(face = "bold", colour = cor_texto),
    legend.position = "bottom",
    legend.title = element_blank(),
    legend.background = element_rect(fill= cor_fundo, color = cor_fundo),
    axis.text.x = element_blank(),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto)
    
  ) +
  labs(
    title = "Força da sazonalidade",
    y= "",
    x="",
    #caption =  "Fonte: EMBER. Elaboração: Fernando Barbalho"
  )

graf2<-
  season_trend %>%
  mutate(area = reorder(area, tendencia)) %>%
  ggplot(aes(x= tendencia, y=area )) +
  geom_col(aes(fill= tendencia), color="lightgray", show.legend = FALSE)+
  geom_text(aes(label = round(tendencia,2)),
            color = cor_texto,
            hjust= 1,
            fontface = "bold") +
  scale_fill_continuous_sequential(palette = "Heat 2") +
  theme_light() +
  theme(
    panel.background =  element_rect( fill= cor_fundo_painel),
    panel.grid =  element_blank(),
    strip.background = element_blank(),
    strip.text = element_text(face = "bold", colour = cor_texto),
    legend.position = "bottom",
    legend.title = element_blank(),
    legend.background = element_rect(fill= cor_fundo),
    axis.text.x = element_blank(),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto)
    
  ) +
  labs(
    title = "Força da tendência",
    y= "",
    x="",
    caption =  "Fonte: EMBER. Elaboração: Fernando Barbalho"
  )


graf1 + graf2

gera_dados_mapa() %>%
  mutate(mda_potencia_outorgada_kw = mda_potencia_outorgada_kw/10^3) %>%
  filter(dsc_origem_combustivel=="Solar") %>%
  ggplot()+
  geom_sf(data = world, fill= "lightgray" )+
  geom_sf(data = mapa_brasil,
          fill= "black",
          color = NA )+
  geom_sf(data= biomas[1,],
          fill= cores_biomas[1],
          color = NA) +
  geom_sf(data= biomas[2,],
          fill= cores_biomas[2],
          color = NA) +
  geom_sf(data= biomas[3,],
          fill= cores_biomas[3],
          color = NA) +
  geom_sf(data= biomas[4,],
          fill= cores_biomas[4],
          color = NA) +
  geom_sf(data= biomas[5,],
          fill= cores_biomas[5],
          color = NA) +
  geom_sf(data= biomas[6,],
          fill= cores_biomas[6],
          color = NA) +
  
  geom_sf( aes( size= mda_potencia_outorgada_kw ),
           pch=21, 
           alpha=1,
           fill= cores_combustivel[5], #"#D55E00"
           color = "#D55E00") + #AD1A1A"
  coord_sf(xlim = c(-31,-72), ylim=c(-35,5))+
  theme_void()  +
  theme(
    panel.background = element_rect(fill="#0077be"),
    legend.position = "bottom",
    legend.background = element_rect(fill= cor_fundo, color = cor_fundo),
    plot.background = element_rect(fill =cor_fundo ),
    plot.title = element_text(size = 14, face = "bold"),
    plot.subtitle = element_text(size = 12, face = "italic"),
    text = element_text(family = "Noto Sans", colour = cor_texto),
    strip.text = element_text(size= 8, face ="bold")
  ) +
  labs(
    size= "Potência em MW",
    caption = paste0("Fonte: ANEEL (",data_geracao_dados,"). Elaboração: Fernando Barbalho") ,
    title = "Distribuição da potência outorgada entre os seis biomas terrestres"
  ) +
  facet_wrap(fase+dsc_origem_combustivel~.)