##### UNIVERSIDAD CENTRAL DEL ECUADOR #####
#### AUTOR: LISS MURILLO ####
### CARRERA: INGENIERÍA EN PETROLEOS #####

#### VARIABLE RESERVORIO  ####
## DATOS ###
library(readxl)
datos <- read_excel("r-graficas/Producción Campo Sacha.csv.xlsx")
## New names:
## • `` -> `...16`
View(datos)
str(datos)
## tibble [8,344 × 31] (S3: tbl_df/tbl/data.frame)
##  $ mes                   : chr [1:8344] "Ene" "Ene" "Ene" "Ene" ...
##  $ día                   : num [1:8344] 1 1 1 1 1 1 1 1 1 1 ...
##  $ Pozo                  : chr [1:8344] "SACHA-001A" "SACHA-019A" "SACHA-052B" "SACHA-083A" ...
##  $ Campo                 : chr [1:8344] "SACHA" "SACHA" "SACHA" "SACHA" ...
##  $ Reservorio            : chr [1:8344] "U" "U" "U INFERIOR" "HOLLIN INFERIOR" ...
##  $ Bpd                   : num [1:8344] NA 53 249 139 186 136 NA 456 161 164 ...
##  $ Bppd_BH               : num [1:8344] 159 NA NA NA NA NA 155 NA NA NA ...
##  $ Bfpd_BE               : num [1:8344] NA 534 346 1158 1163 ...
##  $ Bfpd_BH               : num [1:8344] 695 NA NA NA NA NA 441 NA NA NA ...
##  $ Bapd_BE               : num [1:8344] NA 481 97 1019 977 ...
##  $ Bapd_BH               : num [1:8344] 536 NA NA NA NA NA 286 NA NA NA ...
##  $ Bsw_BE                : num [1:8344] NA 90.1 28 88 84 ...
##  $ Bsw_BH                : num [1:8344] 77.1 NA NA NA NA ...
##  $ Api_BE                : num [1:8344] NA 26.7 27.8 27.7 24 20.5 NA 28.5 29.9 26.3 ...
##  $ Api_BH                : num [1:8344] 27.8 NA NA NA NA NA 23.2 NA NA NA ...
##  $ ...16                 : num [1:8344] NA 10.76 50.55 1.11 27.9 ...
##  $ Gas_BH                : num [1:8344] 32.3 NA NA NA NA ...
##  $ Salinidad_BE          : num [1:8344] NA 15920 30227 1600 13000 ...
##  $ Salinidad_BH          : num [1:8344] 10800 NA NA NA NA NA 3800 NA NA NA ...
##  $ Rgl_BE                : num [1:8344] NA 20.15 146.1 0.96 23.99 ...
##  $ Rgl_BH                : num [1:8344] 46.5 NA NA NA NA ...
##  $ Gor_BE                : num [1:8344] NA 203.02 203.01 7.99 150 ...
##  $ Gor_BH                : num [1:8344] 203 NA NA NA NA ...
##  $ Horas_BE              : num [1:8344] NA 4 5 4 4 10 NA 4 10 10 ...
##  $ Horas_BH              : num [1:8344] 4 NA NA NA NA NA 4 NA NA NA ...
##  $ Bomba_BE              : chr [1:8344] NA "SF-320|SF-320|SF-900|SFGH2500/520/180/9259" "RC 1000|RC 1000|RC 1000/300/120/9250" "P23/68/30/7000" ...
##  $ Bomba_BH              : chr [1:8344] "JET  12K/0//0" NA NA NA ...
##  $ Frecuencia Operaciones: num [1:8344] NA 65 62 46 59 52 NA 58.5 57 54 ...
##  $ Voltaje               : num [1:8344] NA 479 457 364 440 452 NA 475 455 439 ...
##  $ Amperaje              : num [1:8344] NA 29 35 14 59 30 NA 23 35 34 ...
##  $ Presión Intake        : num [1:8344] NA 484 406 0 345 162 NA 546 338 0 ...
library(gt)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## 
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## 
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
Reservorio <- datos$Reservorio
TDF_Reservorio<- table(Reservorio)
tabla_reservorio <- as.data.frame(TDF_Reservorio)
hi <- tabla_reservorio$Freq/sum(tabla_reservorio$Freq)
hi_porc <- hi*100
sum(hi_porc)
## [1] 100
tabla_Reservorio <- data.frame(tabla_reservorio,hi_porc)
### Agrupación ####
tabla_Reservorio$grupo <- case_when(
  grepl("Hollin|Hollín", tabla_reservorio$Reservorio, ignore.case = TRUE) ~ "Formación Hollín",
  grepl("^U$|U ", tabla_reservorio$Reservorio, ignore.case = TRUE) ~ "Formación U / Napo",
  grepl("Basal|B Sand", tabla_reservorio$Reservorio, ignore.case = TRUE) ~ "Areniscas Basales",
  grepl("Tena", tabla_reservorio$Reservorio, ignore.case = TRUE) ~ "Formación Tena",
  grepl("M1|M2|Mococha|Mocoa", tabla_reservorio$Reservorio, ignore.case = TRUE) ~ "Formación M1 - M2",
  grepl("Arenisc|Arena|Sand", tabla_reservorio$Reservorio, ignore.case = TRUE) ~ "Litología arenosa",
  grepl("Arcilla|Lutita|Shale", tabla_reservorio$Reservorio, ignore.case = TRUE) ~ "Litología arcillosa",
  TRUE ~ "Otros / Sin especificar")

tabla_resumen <- tabla_Reservorio %>%
  group_by(grupo) %>%
  summarise(
    Frecuencia = sum(Freq),
    Porcentaje = sum(hi_porc)
  ) %>%
  arrange(desc(Frecuencia))


sum(tabla_resumen$Frecuencia)
## [1] 8344
sum(tabla_resumen$Porcentaje)
## [1] 100
colnames(tabla_resumen) <- c("Reservorio","ni","hi (%)")
print(tabla_resumen)
## # A tibble: 4 × 3
##   Reservorio                 ni `hi (%)`
##   <chr>                   <int>    <dbl>
## 1 Formación U / Napo       4242    50.8 
## 2 Otros / Sin especificar  2417    29.0 
## 3 Formación Hollín         1460    17.5 
## 4 Areniscas Basales         225     2.70
#### Crear de fila de totales ####
totales <- c( Reservorio = "TOTAL",
              ni= sum(tabla_resumen$ni),
              hi= sum(hi*100))

tabla_reservorios <- rbind(tabla_resumen,totales)
tabla_reservorios
## # A tibble: 5 × 3
##   Reservorio              ni    `hi (%)`        
##   <chr>                   <chr> <chr>           
## 1 Formación U / Napo      4242  50.8389261744966
## 2 Otros / Sin especificar 2417  28.9669223394056
## 3 Formación Hollín        1460  17.4976030680729
## 4 Areniscas Basales       225   2.69654841802493
## 5 TOTAL                   8344  100
# Asignar a una variable más corta para facilitar el trabajo
database <- datos
#  RESERVORIO
# Frecuencias completas
frecuencias_reservorio <- table(database$Reservorio)

# Ordenar de mayor a menor
frecuencias_reservorio_ordenadas <- sort(frecuencias_reservorio, decreasing = TRUE)

# Gráfico local (TODOS los reservorios)
barplot(frecuencias_reservorio_ordenadas,
        main = "Gráfica Nº1 Distribución de Reservorios Campo Sacha",
        xlab = "",
        ylab = "Cantidad",
        col = colorRampPalette(c("#4ECDC4"))(length(frecuencias_reservorio_ordenadas)),
        border = "white",
        cex.names = 0.6,
        las = 2)

mtext("Reservorio", side = 1, line = 7)

# Diagrama de barras global ni
top_reservorios <- head(frecuencias_reservorio_ordenadas, 10)

barplot(top_reservorios,
        main = "Gráfica Nº2 Distribución de Reservorios Campo Sacha",
        xlab = "",
        ylab = "Cantidad", 
        col = colorRampPalette(c("#4ECDC4", "#4ECDC4", "#4ECDC4"))(length(top_reservorios)),
        border = "white",
        cex.names = 0.7,
        las = 2,
        ylim = c(0,5234))
mtext("Reservorio", side = 1, line = 8)

# Diagrama de barras local hi

barplot(tabla_resumen$`hi (%)`,main="Gráfica N°3: Distribución del porcentaje de Reservorios del Campo Sacha",
        xlab = "",
        ylab = "Porcentaje %",
        col = "skyblue",
        names.arg=tabla_resumen$Reservorio,
        cex.names = 0.8,
        las = 2)
mtext("Reservorio", side = 1, line = 8)

# Diagrama de barrras global hi

barplot(tabla_resumen$`hi (%)`,main="Gráfica N°4: Distribución del porcentaje de Reservorios del Campo Sacha ",
        xlab = "",
        ylab = "Porcentaje %",
        col = "skyblue",
        ylim = c(0,100),
        names.arg=tabla_resumen$Reservorio,
        cex.names = 0.8,
        las = 2)
mtext("Reservorio", side = 1, line = 8)

# Diagrma circular

pie (tabla_resumen$`hi (%)`,main = "Gráfica N°5: Distribución porcentual de los reservorios del Campo Sacha",
     radius = 1,
     labels = paste0(round(tabla_resumen$`hi (%)`,2),"%"),
     col = colores <- c(rev(heat.colors(7))),
     cex=0.8,
)
par(xpd = TRUE)  # Permite que la leyenda salga del área del gráfico

legend(x = 1.5, y = 1,
       legend = tabla_resumen$Reservorio,
       fill = colores <- c(rev(heat.colors(7))),
       cex = 0.5,
       title = "Reservorios del Campo Sacha")

#Tabla de indicadores 
tabla_indicadores <- data.frame(
  Estadístico = c("Variable", "Rango", "Media", "Mediana", "Moda", "Desviación Estándar"),
  Valor = c("Tipos de Reservorios", "Campo Sacha",
            paste0(round(mean(tabla_resumen$`hi (%)`), 1), "%"),
            paste0(round(median(tabla_resumen$`hi (%)`), 1), "%"),
            paste0(tabla_resumen$Reservorio[which.max(tabla_resumen$ni)],
                   " (", round(max(tabla_resumen$`hi (%)`), 1), "%)"),
            paste0(round(sd(tabla_resumen$`hi (%)`), 1), "%"))
)

print(tabla_indicadores)
##           Estadístico                      Valor
## 1            Variable       Tipos de Reservorios
## 2               Rango                Campo Sacha
## 3               Media                        25%
## 4             Mediana                      23.2%
## 5                Moda Formación U / Napo (50.8%)
## 6 Desviación Estándar                      20.3%
# Conclusión
#El análisis muestra la distribución de los tipos de reservorios en el Campo Sacha, evidenciando la predominancia de ciertas categorías según los días de producción registrados, lo cual resulta clave para la gestión productiva del campo.