Skip to content

Commit

Permalink
Resolve conflito.
Browse files Browse the repository at this point in the history
Merge branch 'master' of https://github.com/tuberculo/incremental

# Conflicts:
#	Principal.R
  • Loading branch information
tuberculo committed Jun 27, 2020
2 parents 7cedbb8 + 2d8eed1 commit 8c41e78
Show file tree
Hide file tree
Showing 8 changed files with 148 additions and 16 deletions.
13 changes: 13 additions & 0 deletions CalcFatorPCH.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FatorPCH <- VazDiaria[VazDiaria$Posto %in% c(34, 94, 254, 277), ]
FatorPCH <- left_join(FatorPCH, tibble(Usina = unique(FatorPCH$Nome), Subsistema = c("Norte", "Sul", "Sudeste", "Nordeste")), by = c("Nome" = "Usina"))
FatorPCH <- mutate(FatorPCH, YEAR = year(Data), MONTH = month(Data), DAY = day(Data))
FatorPCH <- mutate(group_by(FatorPCH, Subsistema, MONTH), VazMedMens = mean(Vazao), fator = Vazao / VazMedMens)
FatorPCH <- pivot_wider(FatorPCH, names_from = Subsistema, values_from = fator, id_cols = c(YEAR, MONTH, DAY))
FatorPCH <- mutate(FatorPCH, across(where(is.double), round, 3))
write.table(FatorPCH, paste0("FatorPCH.tsv"), sep = "\t", dec = ",", row.names = FALSE)



FatorPCH <- mutate(group_by(FatorPCH, Subsistema), porMed = Vazao / mean(Vazao), FC = Vazao / max(Vazao))
summarise(group_by(FatorPCH, Subsistema, mes), média = mean(FC))
colMeans(FatorPCH[-1])
68 changes: 68 additions & 0 deletions InsereReservat.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@


# Bacia do Tietê -------------------------------------------------------------------

# "Barra Bonita" <- "Edgard de Souza" <- "Alto Tietê"
# "Edgard de Souza" <- "Traição" <- "Billings + Pedreira"
# 'Traição" <- "Guarapiranga"

## Edgard de Souza a montante de Barra Bonita.("EDGARD DE SOUZA+TRIBUT " – posto 161)
cascata_PDE_2029[cascata_PDE_2029$nome == "BARRA BONITA", c("Quantos a montante?", "Posto montante 1")] <- list(1, 161) # Muda usinas a montante
cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 107, nome = "Edgard de Souza",
posto = 161, `Quantos a montante?` = 2, `Posto jusante` = 37, # Jusante: Barra Bonita (37). Montante: Alto Tietê/Ponte Nova (160) e Traição (104)
`Posto montante 1` = 160, `Posto montante 2` = 104, `Posto montante 3` = 999,
`Posto montante 4` = 999, `Posto montante 5` = 999, `Posto montante 6` = 999,)

cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 105, nome = "Alto Tietê", #Também chamado de Ponte Nova
posto = 160, `Quantos a montante?` = 0, `Posto jusante` = 161, # Jusante: Edgard de Souza (161). Montante: nada
`Posto montante 1` = 999, `Posto montante 2` = 999, `Posto montante 3` = 999,
`Posto montante 4` = 999, `Posto montante 5` = 999, `Posto montante 6` = 999,)

cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 108, nome = "Traição",
posto = 104, `Quantos a montante?` = 2, `Posto jusante` = 161, # Jusante: Edgard de Souza (161). Montante: Guarapiranga (117) e Pedreira (109)
`Posto montante 1` = 117, `Posto montante 2` = 109, `Posto montante 3` = 999,
`Posto montante 4` = 999, `Posto montante 5` = 999, `Posto montante 6` = 999,)
cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 109, nome = "Pedreira",
posto = 109, `Quantos a montante?` = 1, `Posto jusante` = 104, # Jusante: Traição (104). Montante: Billings (118)
`Posto montante 1` = 118, `Posto montante 2` = 999, `Posto montante 3` = 999,
`Posto montante 4` = 999, `Posto montante 5` = 999, `Posto montante 6` = 999,)
cascata_PDE_2029[cascata_PDE_2029$num == 117, c("Posto jusante")] <- list(104) # Muda jusante de Guarapiranga para Traição
# Muda posto de Billings para 118 ("BILLINGS "), jusante para Pedreira (109) e montante para nada.
cascata_PDE_2029[cascata_PDE_2029$num == 118, c("posto", "Quantos a montante?", "Posto montante 1", "Posto jusante")] <- list(118, 0, 999, 109)


# Bacia do Paraíba do Sul ----------------------------------------------------------
# (Pereira Passos) <- (Fontes) <- Lajes (202) //~~ Ribeirão das Lajes
# (Pereira Passos) <- (Nilo Peçanha) <- (Vigário)
# Ilha dos Pombos (130) <- Simplício/Anta (129) <- Sobragi <- Picada
# Simplício/Anta <- Santa Cecília (125) <- Funil < Santa Branca //~~ Rio Paraíba do Sul
# Santa Cecília (125) <- Santana (203) <- Tócos (201) //~~ Rio Piraí
## Obs.: Não colocar nenhuma vazão para Nilo Peçanha, Fontes e Pereira Passos no Plexos.

cascata_PDE_2029[cascata_PDE_2029$num == 129, c("Quantos a montante?", "Posto montante 2")] <- list(2, 125) # Adiciona Santa Cecília a montante de Simplício.
cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 125, nome = "Santa Cecília",
posto = 125, `Quantos a montante?` = 2, `Posto jusante` = 129, # Jusante: Simplício (129). Montante: Funil (123) e Santana (203)
`Posto montante 1` = 123, `Posto montante 2` = 203, `Posto montante 3` = 999,
`Posto montante 4` = 999, `Posto montante 5` = 999, `Posto montante 6` = 999,)
cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 181, nome = "Santana",
posto = 203, `Quantos a montante?` = 1, `Posto jusante` = 125, # Jusante: Santa Cecília (125). Montante: Tócos (201)
`Posto montante 1` = 201, `Posto montante 2` = 999, `Posto montante 3` = 999,
`Posto montante 4` = 999, `Posto montante 5` = 999, `Posto montante 6` = 999,)
cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 180, nome = "Tócos",
posto = 201, `Quantos a montante?` = 0, `Posto jusante` = 203, # Jusante: Santana (203).
`Posto montante 1` = 999, `Posto montante 2` = 999, `Posto montante 3` = 999,
`Posto montante 4` = 999, `Posto montante 5` = 999, `Posto montante 6` = 999,)

# Substitui Ilha Solteira equivalente por Ilha Solteira e Três Irmãos. -------

cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 43, nome = "Tres Irmãos",
posto = 243, `Quantos a montante?` = 1, `Posto jusante` = 245,
`Posto montante 1` = 242, `Posto montante 2` = 999, `Posto montante 3` = 999,
`Posto montante 4` = 999, `Posto montante 5` = 999, `Posto montante 6` = 999,)
cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 34, nome = "Ilha Solteira",
posto = 34, `Quantos a montante?` = 5, `Posto jusante` = 245,
`Posto montante 1` = 18, `Posto montante 2` = 33, `Posto montante 3` = 241,
`Posto montante 4` = 99, `Posto montante 5` = 261, `Posto montante 6` = 999,)
# Muda montante de Jupiá.
cascata_PDE_2029[cascata_PDE_2029$num == 45, c("Quantos a montante?", "Posto montante 1", "Posto montante 3")] <- list(3, 243, 34)

45 changes: 37 additions & 8 deletions Principal.R
Original file line number Diff line number Diff line change
@@ -1,12 +1,32 @@
library(lubridate)
library(tidyverse)
library(readxl)

CodUsinasExp <- read_csv2("código usinas expansão.csv")
ArquivoVazoesDiarias <- "../Vazões_Diárias_1982_nat+art_ONS+Exp_r08.xlsx"

source("calc_incr.R", encoding = "UTF-8")
source("importa vazões.R", encoding = "UTF-8")

# Preparação de dados -----------------------------------------------------
# Lê arquivo com cascata
cascata_PDE_2029 <- read_delim("cascata - PDE 2029.csv", ";", escape_double = FALSE, locale = locale(date_names = "pt", decimal_mark = ",", grouping_mark = "."), trim_ws = TRUE)

# Insere São Domingos a montante de Porto Primavera
cascata_PDE_2029[cascata_PDE_2029$num == 46, c("Quantos a montante?", "Posto montante 2")] <- list(2, 154)
cascata_PDE_2029 <- add_row(cascata_PDE_2029, num = 153, nome = "São Domingos",
posto = 154, `Quantos a montante?` = 0, `Posto jusante` = 246,
`Posto montante 1` = 999, `Posto montante 2` = 999, `Posto montante 3` = 999,
`Posto montante 4` = 999, `Posto montante 5` = 999, `Posto montante 6` = 999,)
# Muda número de COMP-PAX-MOX (176) para número de Moxotó (173)
cascata_PDE_2029[cascata_PDE_2029$num == 176, "num"] <- list(173)

SubstArtificiais <- TRUE ## Decide se usa vazões naturais ou artificiais
# Muda os postos de artificiais para naturais de acordo com a listagem. Aplica em todas as colunas com posto no nome.
Nat_x_Art <- read_csv2("posto natural x artificial.csv")
cascata_PDE_2029 <- mutate_at(cascata_PDE_2029, vars(contains("Posto")), ~ ifelse(. %in% Nat_x_Art$Artificial, Nat_x_Art[match(., Nat_x_Art$Artificial),]$Natural, .))
Nat_x_Art <- mutate(Nat_x_Art, NovaNatural = ifelse(Usa_sempre | SubstArtificiais, Natural, Artificial))
cascata_PDE_2029 <- mutate_at(cascata_PDE_2029, vars(contains("Posto")), ~ ifelse(. %in% Nat_x_Art$Artificial, Nat_x_Art[match(., Nat_x_Art$Artificial),]$NovaNatural, .))
if (SubstArtificiais) source("InsereReservat.R")

# Tempo de viagem
# Do arquivo texto:
Expand Down Expand Up @@ -47,18 +67,27 @@ casc2029longa$TempViag <- replace_na(casc2029longa$TempViag, 0)

Vaz2029DiariaIncr <- CalcIncr(VazDiaria, casc2029longa)
Vaz2029DiariaIncr <- drop_na(Vaz2029DiariaIncr)
# Valores mensais a partir da média das vazões diárias.
Vaz2029MensalIncrMedia <- group_by(mutate(Vaz2029DiariaIncr, Ano = year(Data), Mes = month(Data)), Ano, Mes, Nome, Posto) %>% summarize(VazIncrcomTV = mean(VazIncrcomTV))
Vaz2029MensalIncrMedia <- mutate(ungroup(Vaz2029MensalIncrMedia), Data = make_date(Ano, Mes))

ggplot(filter(Vaz2029DiariaIncr, Posto == 169, Data < as_date("1985/01/01"), Data > as_date("1983/01/01"))) + geom_line(aes(x = Data, y = VazIncrcomTV), colour = "blue") + geom_line(aes(x = Data, y = VazIncr), colour = "red") + geom_line(aes(x = Data, y = Vazao)) + geom_line(aes(x = Data, y = VazMontTotal), colour = "orange") + geom_line(aes(x = Data, y = VazMontTotalcomTV), colour = "green")

group_by(Vaz2029DiariaIncr, Nome) %>% summarise(n(), min(VazIncrcomTV), max(VazIncrcomTV), qneg = sum(VazIncrcomTV < 0), prop = min(VazIncrcomTV) / max(VazIncrcomTV)) %>% arrange(prop) %>% print(n = 200)
# Muda para um posto por coluna
VazIncrMesPlexos <- FormatoPlexos(Vaz2029MensalIncr, casc2029longa, FALSE) # Valores mensais a partir do arquivo vazoes.txt.
VazIncrDiaPlexos <- FormatoPlexos(Vaz2029DiariaIncr, casc2029longa, TRUE)
VazIncrMesPlexosMedia <- FormatoPlexos(Vaz2029MensalIncrMedia, casc2029longa, FALSE)

# Cria arquivos csv
write_csv(Vaz2029MensalIncrTabela, "VazIncr2029porMes.csv")
write_csv(Vaz2029DiariaIncr, "VazIncr2029porDia.csv")
# Cria arquivos tsv
if (SubstArtificiais) NomeArq <- "Naturais" else NomeArq <- "Artificiais"

write.table(VazIncrMesPlexos, paste0("VazIncrMesPlexos_PDE", NomeArq, ".tsv"), sep = "\t", dec = ",", row.names = FALSE)
write.table(VazIncrMesPlexosMedia, paste0("VazIncrMesMediaPlexos", NomeArq, ".tsv"), sep = "\t", dec = ",", row.names = FALSE)
write.table(VazIncrDiaPlexos, paste0("VazIncrDiaPlexos", NomeArq, ".tsv"), sep = "\t", dec = ",", row.names = FALSE)

ggplot(filter(Vaz2029DiariaIncr, Posto == 169, Data < as_date("1985/01/01"), Data > as_date("1983/01/01"))) + geom_line(aes(x = Data, y = VazIncrcomTV), colour = "blue") + geom_line(aes(x = Data, y = VazIncr), colour = "red") + geom_line(aes(x = Data, y = Vazao)) + geom_line(aes(x = Data, y = VazMontTotal), colour = "orange") + geom_line(aes(x = Data, y = VazMontTotalcomTV), colour = "green")
left_join(Vaz2029DiariaIncr, select(casc2029longa, posto, NomePlexos), by = c("Posto" = "posto")) %>% filter(is.na(NomePlexos)) %>% distinct(Nome) %>% print(n = 40)

group_by(Vaz2029DiariaIncr, Nome) %>% summarise(n(), min(VazIncrcomTV), max(VazIncrcomTV), qneg = sum(VazIncrcomTV < 0), prop = min(VazIncrcomTV) / max(VazIncrcomTV)) %>% arrange(prop) %>% print(n = 200)
left_join(Vaz2029DiariaIncr, select(casc2029longa, posto, NomePlexos), by = c("Posto" = "posto")) %>% filter(is.na(NomePlexos)) %>% filter(VazMontTotal != 0) %>% distinct(Nome)
left_join(Vaz2029DiariaIncr, select(casc2029longa, posto, NomePlexos), by = c("Posto" = "posto")) %>% filter(is.na(NomePlexos)) %>% distinct(Nome) %>% print(n = 40)

left_join(group_by(mutate(VazDiaria, mes = month(Data), ano = year(Data)), Posto, ano, mes) %>% summarise(mean(Vazao)), filter(Vazoes2029Mensal, Ano >= 1982), by = c("ano" = "Ano", "mes" = "Mes"))
# Calcula diferença entre vazões mensal e diária
Expand Down
Binary file added Tempo-de-Viagem-Plexos.xlsx
Binary file not shown.
8 changes: 8 additions & 0 deletions calc_incr.R
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,12 @@ CalcIncr <- function(Vazoes, Cascata) {
# Calcula incremental.
Vazoes <- mutate(Vazoes, VazIncr = Vazao - VazMontTotal, VazIncrcomTV = Vazao - VazMontTotalcomTV)
Vazoes
}

FormatoPlexos <- function(Vaz, cascata = casc2029longa, diario = FALSE) {
Vaz <- mutate_if(Vaz, is.numeric, round, digits = 3)
Vaz <- distinct(select(drop_na(left_join(Vaz, cascata, by = c("Posto" = "posto"))), Data, NomePlexos, VazIncrcomTV))
Vaz <- mutate(Vaz, YEAR = year(Data), MONTH = month(Data))
if (diario) {Vaz <- mutate(Vaz, DAY = day(Data))}
Vaz <- pivot_wider(select(Vaz, -Data), values_from = VazIncrcomTV, names_from = NomePlexos)
}
1 change: 1 addition & 0 deletions código usinas expansão.csv
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ SINOP;SINOP;227;227;
SAO MANOEL;SÃO MANOEL;230;230;
SALTO APIACAS;SALTO APIACÁS;225;225;hidr.dat
TIBAGI MONT;TIBAGI MONT.;55;55;
S BRANCA TIB;SANTA BRANCA TIB;54;54;
10 changes: 2 additions & 8 deletions importa vazões.R
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
library(lubridate)
library(tidyverse)
library(readxl)

CodUsinasExp <- read_csv2("código usinas expansão.csv")

VazDiariaExist <- read_xlsx("../Vazões_Diárias_1982_ONS+Exp_r01.xlsx", 1)
VazDiariaNovas <- read_xlsx("../Vazões_Diárias_1982_ONS+Exp_r01.xlsx", 2)
VazDiariaExist <- read_xlsx(ArquivoVazoesDiarias, 1)
VazDiariaNovas <- read_xlsx(ArquivoVazoesDiarias, 2)
VazDiariaExist$Data <- parse_date_time(VazDiariaExist$Data, "dmY")

VazDiariaExist <- pivot_longer(VazDiariaExist, cols = -Data, names_to = "Usina", values_to = "Vazao")
Expand Down
19 changes: 19 additions & 0 deletions posto natural x artificial.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Usina; Natural; Artificial; Usa_sempre
Itaocara I; 199; 314; FALSE
Lajes; 202; 132; FALSE
Santana; 203; 315; FALSE
Barra Bonita; 237; 37; FALSE
Bariri; 238; 38; FALSE
Ibitinga; 239; 39; FALSE
Promissão; 240; 40; FALSE
Nova Avanhandava; 242; 42; FALSE
Três Irmãos; 243; 43; FALSE
Ilha Solteira equivalente; 244; 44; FALSE
Jupiá; 245; 45; FALSE
Porto Primavera; 246; 46; FALSE
Itaipu; 266; 66; TRUE
Segredo; 76; 75; FALSE; Obs.: Não estava na lista do ONS
Jordão; 73; 70; FALSE; Obs.: Não estava na lista do ONS
Ilha dos Pombos; 130; 299; FALSE; Obs.: Não estava na lista do ONS
Anta/Simplício; 129; 126; FALSE; Obs.: Não estava na lista do ONS
Moxotó; 173; 176; TRUE; Obs.: Troca COMP-PAF-MOX por Moxotó

0 comments on commit 8c41e78

Please sign in to comment.