##### 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.