Estados de los pozos petrolíferos
Se establece el directorio de trabajo y se importan los datos originales, verificando su estructura para confirmar que las variables fueron reconocidas correctamente.
setwd("C:/Users/Usuario/Desktop/TRABAJO DE ESTADISTICA/PDF-EXCEL-QGIS")
Datos <- read.csv("Pozos brasil 2.csv", header = TRUE, sep = ";", dec = ",", fileEncoding = "Latin1")
str(Datos)
## 'data.frame': 29575 obs. of 59 variables:
## $ POCO : chr "7-RO-123HP-RJS" "1-BP-7-RJS" "7-ARGO-4H-ESS" "7-ARGO-5H-ESS" ...
## $ CADASTRO : num 7.43e+10 7.43e+10 3.43e+10 3.43e+10 3.43e+10 ...
## $ OPERADOR : chr "Petrobras" "BP Energy" "Shell Brasil" "Shell Brasil" ...
## $ POCO_OPERADOR : chr "7RO123HPRJS" "ANU" "7ARGO4HESS" "7ARGO5HESS" ...
## $ ESTADO : chr "RJ" "RJ" "ES" "ES" ...
## $ BACIA : chr "Campos" "Campos" "Campos" "Campos" ...
## $ BLOCO : chr "" "C-M-473" "" "" ...
## $ SIG_CAMPO : chr "RO " "" "ARGO " "ARGO " ...
## $ CAMPO : chr "RONCADOR" "" "ARGONAUTA" "ARGONAUTA" ...
## $ TERRA_MAR : chr "M" "M" "M" "M" ...
## $ POCO_POS_ANP : chr "S" "S" "S" "S" ...
## $ TIPO : chr "Explotatório" "Exploratório" "Explotatório" "Explotatório" ...
## $ CATEGORIA : chr "Desenvolvimento" "Pioneiro" "Desenvolvimento" "Desenvolvimento" ...
## $ RECLASSIFICACAO : chr "PRODUTOR COMERCIAL DE PETRÓLEO" "PORTADOR DE PETRÓLEO" "ABANDONADO POR OUTRAS RAZÕES" "INDEFINIDO" ...
## $ SITUACAO : chr "PRODUTOR" "ABANDONADO POR LOGÍSTICA EXPLORATÓRIA" "ABANDONADO DEFINITIVAMENTE" "PRODUTOR" ...
## $ INICIO : chr "03/03/2012" "14/03/2012" "12/04/2012" "14/04/2012" ...
## $ TERMINO : chr "10/03/2013" "20/09/2012" "19/09/2012" "02/05/2013" ...
## $ CONCLUSAO : chr "10/03/2013" "19/10/2012" "28/09/2012" "13/05/2013" ...
## $ TITULARIDADE : chr "Público" "Público" "Público" "Público" ...
## $ LATITUDE_BASE_4C : chr "-21:57:45,630" "-23:06:09,622" "-21:08:06,801" "-21:08:12,535" ...
## $ LONGITUDE_BASE_4C : chr "-39:44:01,130" "-40:00:41,295" "-39:46:53,226" "-39:46:49,296" ...
## $ LATITUDE_BASE_DD : num -22 -23.1 -21.1 -21.1 -21.1 ...
## $ LONGITUDE_BASE_DD : num -39.7 -40 -39.8 -39.8 -39.8 ...
## $ DATUM_HORIZONTAL : chr "SIRGAS2000" "SIRGAS2000" "SIRGAS2000" "SIRGAS2000" ...
## $ TIPO_DE_COORDENADA_DE_BASE: chr "Definitiva" "Definitiva" "Definitiva" "Definitiva" ...
## $ DIRECAO : chr "Horizontal" "Vertical" "Horizontal" "Horizontal" ...
## $ PROFUNDIDADE_VERTICAL_M : num -3145 6900 2937 2934 2953 ...
## $ PROFUNDIDADE_SONDADOR_M : num 4050 6925 3809 4575 4570 ...
## $ PROFUNDIDADE_MEDIDA_M : num 4050 6925 3809 4575 4570 ...
## $ REFERENCIA_DE_PROFUNDIDADE: chr "MR" "MR" "MR" "MR" ...
## $ MESA_ROTATIVA : num 24 25 24.2 24.2 24.2 ...
## $ COTA_ALTIMETRICA_M : num 0 0 0 0 0 ...
## $ LAMINA_D_AGUA_M : num 1827 2730 1706 1705 1654 ...
## $ DATUM_VERTICAL : chr "NM" "NM" "NM" "NM" ...
## $ UNIDADE_ESTRATIGRAFICA : chr "" "" "" "" ...
## $ GEOLOGIA_GRUPO_FINAL : chr "Campos" "Lagoa Feia" "Campos" "Campos" ...
## $ GEOLOGIA_FORMACAO_FINAL : chr "Carapebus" "Macabu" "Ubatuba" "Ubatuba" ...
## $ GEOLOGIA_MEMBRO_FINAL : chr "" "" "" "" ...
## $ CDPE : chr "Existe" "Existe" "Existe" "" ...
## $ AGP : chr "" "" "" "" ...
## $ PC : chr "" "Existe" "" "" ...
## $ PAG : chr "" "" "" "" ...
## $ PERFIS_CONVENCIONAIS : chr "" "Existe" "" "" ...
## $ DURANTE_PERFURACAO : chr "Existe" "Existe" "Existe" "Existe" ...
## $ PERFIS_DIGITAIS : chr "" "" "" "" ...
## $ PERFIS_PROCESSADOS : chr "" "" "" "" ...
## $ PERFIS_ESPECIAIS : chr "" "" "" "" ...
## $ AMOSTRA_LATERAL : chr "" "Existe" "" "" ...
## $ SISMICA : chr "" "Existe" "" "" ...
## $ TABELA_TEMPO_PROFUNDIDADE : chr "" "" "" "" ...
## $ DADOS_DIRECIONAIS : chr "Existe" "Existe" "Existe" "Existe" ...
## $ TESTE_A_CABO : chr "Existe" "Existe" "" "" ...
## $ TESTE_DE_FORMACAO : chr "" "" "" "" ...
## $ CANHONEIO : chr "" "" "" "" ...
## $ TESTEMUNHO : chr "" "" "" "" ...
## $ GEOQUIMICA : chr "" "" "" "" ...
## $ SIG_SONDA : chr "SS-49" "DS4" "NB2" "NB2" ...
## $ NOM_SONDA : chr "SEDCO 707" "Deep Ocean Clarion" "Bully 2" "Bully 2" ...
## $ DHA_ATUALIZACAO : chr "28/1/18 5:00" "28/1/18 5:00" "28/1/18 5:00" "28/1/18 5:00" ...
Aquí se obtiene la frecuencia absoluta de los diferentes estados operativos de los pozos.
Situación <- Datos$SITUACAO
TDFSituación <- as.data.frame(table(Situación))
TDFSituación
## Situación
## 1
## 2 ABANDONADO AGUARDANDO ABANDONO DEFINITIVO/ARRASAMENTO
## 3 ABANDONADO AGUARDANDO REINÍCIO DE PERFURAÇÃO
## 4 ABANDONADO DEFINITIVAMENTE
## 5 ABANDONADO POR LOGÍSTICA EXPLORATÓRIA
## 6 ABANDONADO/PARADO AGUARDANDO INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO
## 7 ARRASADO
## 8 CEDIDO PARA PRODUÇÃO DE ÁGUA
## 9 DE DESCARTE
## 10 DEVOLVIDO
## 11 EM ABANDONO
## 12 EM INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO
## 13 EM PERFURAÇÃO
## 14 EQUIPADO AGUARDANDO INÍCIO DE INJEÇÃO
## 15 EQUIPADO AGUARDANDO INÍCIO DE PRODUÇÃO
## 16 INJETOR
## 17 OUTRO
## 18 PRODUÇÃO DE AGUA PARA INJEÇÃO
## 19 PRODUTOR
## Freq
## 1 824
## 2 3120
## 3 2
## 4 5074
## 5 719
## 6 253
## 7 2193
## 8 262
## 9 40
## 10 1446
## 11 8
## 12 2711
## 13 6
## 14 9
## 15 60
## 16 2653
## 17 96
## 18 187
## 19 9912
##Agrupación por condición En este bloque se recodifican los valores originales en grupos operativos más generales.
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
TDFSituación$Condición <- ifelse(TDFSituación$Situación %in% c("ABANDONADO AGUARDANDO ABANDONO DEFINITIVO/ARRASAMENTO
", "ABANDONADO AGUARDANDO REINÍCIO DE PERFURAÇÃO", "ABANDONADO DEFINITIVAMENTE", "ABANDONADO POR LOGÍSTICA EXPLORATÓRIA
", "ABANDONADO/PARADO AGUARDANDO INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO", "EM ABANDONO"), "Abandonados",
ifelse(TDFSituación$Situación %in% c("EM ABANDONO", "EM PERFURAÇÃO00"), "Intervención",
ifelse(TDFSituación$Situación %in% c("EQUIPADO AGUARDANDO INÍCIO DE PRODUÇÃO0", "EQUIPADO AGUARDANDO INÍCIO DE INJEÇÃO"), "Equipado en espera",
ifelse(TDFSituación$Situación %in% c("INJETOR", "PRODUTOR"), "En funcionamiento",
ifelse(TDFSituación$Situación %in% c("CEDIDO PARA PRODUÇÃO DE ÁGUA", "PRODUÇÃO DE AGUA PARA INJEÇÃO"), "Producción de agua",
ifelse(TDFSituación$Situación %in% c("DEVOLVIDO", "DE DESCARTE"), "Descartado",
ifelse(TDFSituación$Situación %in% c("ARRASADO"), "Devastado","Otros")))))))
head(TDFSituación$Condición)
## [1] "Otros" "Otros" "Abandonados" "Abandonados" "Otros"
## [6] "Abandonados"
Aquí se calculan las frecuencias por cada categoría operativa.
TDFSituación$Freq <- as.numeric(as.character(TDFSituación$Freq))
library(dplyr)
TDFSituación1 <- Datos$TDFSituación
TDFSituación1 <- TDFSituación %>%
group_by(Condición) %>%
summarise(
ni = sum(Freq),
hi = round(sum(Freq) / sum(TDFSituación$Freq)*100, 2))
TDFSituación1 <- data.frame(TDFSituación1)
Se agrega la fila acumulada y se forma la tabla final.
TDFSituación1 <- TDFSituación1 [, c("Condición", "ni", "hi")]
total_ni <- sum(TDFSituación1$ni)
total_hi <- 100
TDFSituacióncompleta <- rbind(TDFSituación1, data.frame( Condición = "Total",
ni = total_ni,
hi = total_hi))
print(TDFSituacióncompleta)
## Condición ni hi
## 1 Abandonados 5337 18.05
## 2 Descartado 1486 5.02
## 3 Devastado 2193 7.42
## 4 En funcionamiento 12565 42.49
## 5 Equipado en espera 9 0.03
## 6 Otros 7536 25.48
## 7 Producción de agua 449 1.52
## 8 Total 29575 100.00
En este bloque se ordenan las categorías según su importancia operativa para tratarlas como una variable cualitativa ordinal.
orden_niveles <- c("En funcionamiento",
"Equipado en espera",
"Producción de agua",
"Intervención",
"Abandonados",
"Descartado",
"Devastado",
"Otros",
"Total")
TDFSituacióncompleta$Condición <- factor(TDFSituacióncompleta$Condición,
levels = orden_niveles,
ordered = TRUE)
TDFSituacióncompleta <- TDFSituacióncompleta[order(TDFSituacióncompleta$Condición), ]
Se genera un cuadro formal utilizando
library(gt)
gt(TDFSituacióncompleta) %>%
tab_header(
title = md("**Cuadro No.1**"),
subtitle = "Situación de los pozos petrolíferos en Brasil") %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")),
locations = cells_title()
) %>%
tab_style(
style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
locations = cells_column_labels()
) %>%
tab_options(
table.border.top.color = "#2E4053",
table.border.bottom.color = "#2E4053",
column_labels.border.bottom.color = "#2E4053",
data_row.padding = px(6))
| Cuadro No.1 | ||
| Situación de los pozos petrolíferos en Brasil | ||
| Condición | ni | hi |
|---|---|---|
| En funcionamiento | 12565 | 42.49 |
| Equipado en espera | 9 | 0.03 |
| Producción de agua | 449 | 1.52 |
| Abandonados | 5337 | 18.05 |
| Descartado | 1486 | 5.02 |
| Devastado | 2193 | 7.42 |
| Otros | 7536 | 25.48 |
| Total | 29575 | 100.00 |
Este gráfico muestra la cantidad de pozos por categoría, sin incluir el total.
TDFSituaciónfinal <- TDFSituacióncompleta[TDFSituacióncompleta$Condición != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$ni,
main = "Gráfica N°1: Estado de los pozos petrolíferos en Brasil",
ylab = "Cantidad",
col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)
Este bloque amplía el rango del eje Y para observar categorías dominantes.
par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$ni,
main = "Gráfica N°2: Estado de los pozos petrolíferos en Brasil",
ylab = "Cantidad",
col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 0.99,
ylim = c(0,30000))
mtext("Condición", side = 1, line = 7)
Aquí se representa el porcentaje de pozos por cada categoría
par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$hi,
main = "Gráfica N°3: Porcentaje de la condición de los pozos en Brasil",
ylab = "Porcentaje",
col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)
Este bloque ajusta el eje Y hasta el 100%.
par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$hi,
main = "Gráfica N°4: Porcentaje de la condición de los pozos en Brasil",
ylab = "Porcentaje",
col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)
El diagrama representa la proporción de cada categoría respecto del total.
library(ggplot2)
library(ggrepel)
datos_plot <- TDFSituaciónfinal
datos_plot$ymax <- cumsum(datos_plot$hi)
datos_plot$ymin <- c(0, head(datos_plot$ymax, n=-1))
datos_plot$posicion_label <- (datos_plot$ymax + datos_plot$ymin) / 2
mis_colores <- c("#F1B6DA", "#FDE0EF", "#F7F7F7", "#E6F5D0", "#b4e6ae", "#7FBC41","#DE77AE")
ggplot(datos_plot, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=2, fill=Condición)) +
geom_rect(color = "black") +
coord_polar(theta="y") +
geom_label_repel(aes(y = posicion_label, x = 4, label = paste0(round(hi, 2))),
size = 4,
nudge_x = 0.5,
show.legend = FALSE) +
scale_fill_manual(values = mis_colores) +
ggtitle("Gráfica N°5: Distribución porcentual de las condiciones de los pozos petroliferos en Brasil") +
theme_void() +
theme(legend.position = "right",
plot.title = element_text(hjust = 0),
legend.background = element_rect(color = "black",
fill = "white",
linewidth = 0.5,
linetype = "solid"
),
legend.margin = margin(t = 10, r = 10, b = 10, l = 10)
)
Conclusiones <- data.frame(
Variable = "Condiciones de los pozos",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "En funcionamiento",
`Varianza (S²)` = "N/A",
`Desv. Est. (S)` = "N/A",
`C.V. (%)` = "N/A",
`Asimetría (As)` = "N/A",
`Curtosis (K)` = "N/A",
`Valores Atípicos` = "N/A",
check.names = FALSE
)
library(gt)
gt(Conclusiones) %>%
tab_header(
title = md("**CONCLUSIONES Y ESTADÍSTICOS**"),
subtitle = "Resumen de indicadores de las condiciones de los pozos") %>%
tab_source_note(source_note = "Autor: Anahi Macias") %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")),
locations = cells_title()
) %>%
tab_style(
style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
locations = cells_column_labels()
) %>%
tab_options(
table.border.top.color = "#2E4053",
table.border.bottom.color = "#2E4053",
column_labels.border.bottom.color = "#2E4053",
data_row.padding = px(6))
| CONCLUSIONES Y ESTADÍSTICOS | ||||||||||
| Resumen de indicadores de las condiciones de los pozos | ||||||||||
| Variable | Rango [Min; Max] | Media (X̄) | Mediana (Me) | Moda (Mo) | Varianza (S²) | Desv. Est. (S) | C.V. (%) | Asimetría (As) | Curtosis (K) | Valores Atípicos |
|---|---|---|---|---|---|---|---|---|---|---|
| Condiciones de los pozos | N/A | N/A | N/A | En funcionamiento | N/A | N/A | N/A | N/A | N/A | N/A |
| Autor: Anahi Macias | ||||||||||
La condición En funcionamiento constituye la moda de la variable, lo que indica que la mayor proporción de pozos petrolíferos en Brasil se encuentra actualmente operativa, reflejando una predominancia de actividades productivas frente a estados inactivos.