Análisis de la reclasificación de los pozos petroleros en Brasil
En este bloque se define el directorio de trabajo, se importa la base de datos de pozos petroleros y se verifica su estructura general.
setwd("C:/Users/luna2/OneDrive/Datos Brasil")
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 : chr "-21,962675" "-23,1026727777" "-21,1352225" "-21,1368152777" ...
## $ LONGITUDE_BASE_DD : chr "-39,7336472222" "-40,0114708333" "-39,7814516666" "-39,78036" ...
## $ 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 : chr "-3145,4" "6900" "2936,99" "2934,18" ...
## $ PROFUNDIDADE_SONDADOR_M : chr "4050" "6925" "3809" "4575" ...
## $ PROFUNDIDADE_MEDIDA_M : chr "4050" "6925" "3809" "4575" ...
## $ REFERENCIA_DE_PROFUNDIDADE: chr "MR" "MR" "MR" "MR" ...
## $ MESA_ROTATIVA : chr "24" "25" "24,24" "24,24" ...
## $ COTA_ALTIMETRICA_M : chr "0" "0" "0" "0" ...
## $ LAMINA_D_AGUA_M : chr "1827" "2730" "1705,84" "1705,35" ...
## $ 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" ...
Se obtiene la frecuencia absoluta de los pozos según su reclasificación operativa original.
Reclasificación <- Datos$RECLASSIFICACAO
TDFReclasificación <- as.data.frame(table(Reclasificación))
TDFReclasificación
## Reclasificación Freq
## 1 1603
## 2 ABANDONADO POR ACIDENTE MECÂNICO 794
## 3 ABANDONADO POR ERUPÇÃO 4
## 4 ABANDONADO POR IMPOSSIBILIDADE DE AVALIAÇÃO 14
## 5 ABANDONADO POR OBJETIVO FORA DE PREVISÃO 43
## 6 ABANDONADO POR OBJETIVO/ALVO NÃO ATINGIDO 75
## 7 ABANDONADO POR OUTRAS RAZÕES 697
## 8 ABANDONADO POR PERDA CIRCULAÇÃO 19
## 9 CONTROLE DE ERUPÇÃO 1
## 10 DESCARTE DE ÁGUA 9
## 11 DESCOBRIDOR DE CAMPO COM GÁS NATURAL 84
## 12 DESCOBRIDOR DE CAMPO COM GÁS NATURAL E CONDENSADO 18
## 13 DESCOBRIDOR DE CAMPO COM PETRÓLEO 352
## 14 DESCOBRIDOR DE CAMPO COM PETRÓLEO E GÁS NATURAL 48
## 15 DESCOBRIDOR DE CAMPO COM PETRÓLEO, GÁS NATURAL E CONDENSADO 9
## 16 DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL 57
## 17 DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL E CONDENSADO 13
## 18 DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO 301
## 19 DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO E GÁS NATURAL 46
## 20 DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO, GÁS NATURAL E CONDENSADO 7
## 21 EXPERIMENTAL 6
## 22 EXTENSÃO PARA GÁS NATURAL 70
## 23 EXTENSÃO PARA GÁS NATURAL E CONDENSADO 22
## 24 EXTENSÃO PARA PETRÓLEO 630
## 25 EXTENSÃO PARA PETRÓLEO E GÁS NATURAL 59
## 26 EXTENSÃO PARA PETRÓLEO, GÁS NATURAL E CONDENSADO 29
## 27 INDEFINIDO 358
## 28 INJEÇÃO DE ÁGUA 1309
## 29 INJEÇÃO DE ÁGUA ADITIVADA 8
## 30 INJEÇÃO DE CO2 1
## 31 INJEÇÃO DE GÁS NATURAL 29
## 32 INJEÇÃO DE QUALQUER OUTRO FLUIDO 4
## 33 INJEÇÃO DE VAPOR 96
## 34 OBSERVAÇÃO 766
## 35 OUTRAS FINALIDADES 89
## 36 PESQUISA MINERAL 4
## 37 PORTADOR DE GÁS NATURAL 133
## 38 PORTADOR DE GÁS NATURAL E CONDENSADO 10
## 39 PORTADOR DE PETRÓLEO 490
## 40 PORTADOR DE PETRÓLEO E GÁS NATURAL 71
## 41 PORTADOR DE PETRÓLEO, GÁS NATURAL E CONDENSADO 9
## 42 PRODUÇÃO DE ÁGUA 26
## 43 PRODUTOR COMERCIAL DE GÁS NATURAL 358
## 44 PRODUTOR COMERCIAL DE GÁS NATURAL E CONDENSADO 42
## 45 PRODUTOR COMERCIAL DE PETRÓLEO 14506
## 46 PRODUTOR COMERCIAL DE PETRÓLEO E GÁS NATURAL 373
## 47 PRODUTOR COMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO 89
## 48 PRODUTOR SUBCOMERCIAL DE GÁS NATURAL 154
## 49 PRODUTOR SUBCOMERCIAL DE GÁS NATURAL E CONDENSADO 29
## 50 PRODUTOR SUBCOMERCIAL DE PETRÓLEO 744
## 51 PRODUTOR SUBCOMERCIAL DE PETRÓLEO E GÁS NATURAL 49
## 52 PRODUTOR SUBCOMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO 1
## 53 SECO COM INDÍCIOS DE GÁS NATURAL E CONDENSADO 10
## 54 SECO COM INDÍCIOS DE PETRÓLEO 790
## 55 SECO COM INDÍCIOS DE PETRÓLEO E GÁS NATURAL 143
## 56 SECO COM INDÍCIOS GÁS NATURAL 252
## 57 SECO SEM INDÍCIOS 3621
## 58 TREINAMENTO 1
En este bloque se reclasifican los pozos en grandes grupos funcionales mediante estructuras condicionales, con el fin de simplificar el análisis.
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
TDFReclasificación$Grupo <- ifelse(TDFReclasificación$Reclasificación %in% c("ABANDONADO POR ACIDENTE MECÂNICO", "ABANDONADO POR ERUPÇÃO", "ABANDONADO POR IMPOSSIBILIDADE DE AVALIAÇÃO", "ABANDONADO POR OBJETIVO FORA DE PREVISÃO", "ABANDONADO POR OBJETIVO/ALVO NÃO ATINGIDO", "ABANDONADO POR OUTRAS RAZÕES", "ABANDONADO POR PERDA CIRCULAÇÃO"), "Pozos abandonados",
ifelse(TDFReclasificación$Reclasificación %in% c("DESCOBRIDOR DE CAMPO COM GÁS NATURAL", "DESCOBRIDOR DE CAMPO COM GÁS NATURAL E CONDENSADO", "DESCOBRIDOR DE CAMPO COM PETRÓLEO", "DESCOBRIDOR DE CAMPO COM PETRÓLEO E GÁS NATURAL", "DESCOBRIDOR DE CAMPO COM PETRÓLEO, GÁS NATURAL E CONDENSADO", "DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL", "DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL E CONDENSADO", "DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO", "DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO E GÁS NATURAL", "DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO, GÁS NATURAL E CONDENSADO"), "Pozos descubridores",
ifelse(TDFReclasificación$Reclasificación %in% c("EXTENSÃO PARA GÁS NATURAL", "EXTENSÃO PARA GÁS NATURAL E CONDENSADO", "EXTENSÃO PARA PETRÓLEO", "EXTENSÃO PARA PETRÓLEO E GÁS NATURAL", "EXTENSÃO PARA PETRÓLEO, GÁS NATURAL E CONDENSADO"), "Pozos de extensión",
ifelse(TDFReclasificación$Reclasificación %in% c("INJEÇÃO DE ÁGUA", "INJEÇÃO DE ÁGUA ADITIVADA", "INJEÇÃO DE CO2", "INJEÇÃO DE GÁS NATURAL", "INJEÇÃO DE QUALQUER OUTRO FLUIDO", "INJEÇÃO DE VAPOR"), "Pozos de inyección",
ifelse(TDFReclasificación$Reclasificación %in% c("PRODUTOR COMERCIAL DE GÁS NATURAL", "PRODUTOR COMERCIAL DE GÁS NATURAL E CONDENSADO", "PRODUTOR COMERCIAL DE PETRÓLEO", "PRODUTOR COMERCIAL DE PETRÓLEO E GÁS NATURAL", "PRODUTOR COMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO", "PRODUTOR SUBCOMERCIAL DE GÁS NATURAL", "PRODUTOR SUBCOMERCIAL DE GÁS NATURAL E CONDENSADO", "PRODUTOR SUBCOMERCIAL DE PETRÓLEO", "PRODUTOR SUBCOMERCIAL DE PETRÓLEO E GÁS NATURAL", "PRODUTOR SUBCOMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO"), "Productores comerciales",
ifelse(TDFReclasificación$Reclasificación %in% c("PORTADOR DE GÁS NATURAL", "PORTADOR DE GÁS NATURAL E CONDENSADO", "PORTADOR DE PETRÓLEO", "PORTADOR DE PETRÓLEO E GÁS NATURAL", "PORTADOR DE PETRÓLEO, GÁS NATURAL E CONDENSADO"), "Pozos portadores",
ifelse(TDFReclasificación$Reclasificación %in% c("SECO COM INDÍCIOS DE GÁS NATURAL E CONDENSADO", "SECO COM INDÍCIOS DE PETRÓLEO", "SECO COM INDÍCIOS DE PETRÓLEO E GÁS NATURAL", "SECO COM INDÍCIOS GÁS NATURAL", "SECO SEM INDÍCIOS"), "Pozos secos", "Otros usos y control")))))))
head(TDFReclasificación)
## Reclasificación Freq Grupo
## 1 1603 Otros usos y control
## 2 ABANDONADO POR ACIDENTE MECÂNICO 794 Pozos abandonados
## 3 ABANDONADO POR ERUPÇÃO 4 Pozos abandonados
## 4 ABANDONADO POR IMPOSSIBILIDADE DE AVALIAÇÃO 14 Pozos abandonados
## 5 ABANDONADO POR OBJETIVO FORA DE PREVISÃO 43 Pozos abandonados
## 6 ABANDONADO POR OBJETIVO/ALVO NÃO ATINGIDO 75 Pozos abandonados
Se calculan las frecuencias absolutas (ni) y relativas (hi) por grupo de reclasificación.
TDFReclasificación$Freq <- as.numeric(as.character(TDFReclasificación$Freq))
library(dplyr)
TDFReclasificación1 <- Datos$TDFReclasificación
TDFReclasificación1 <- TDFReclasificación %>%
group_by(Grupo) %>%
summarise(
ni = sum(Freq),
hi = round(sum(Freq) / sum(TDFReclasificación$Freq)*100, 2))
TDFReclasificación1 <- data.frame(TDFReclasificación1)
En este bloque se construye la tabla final incluyendo la fila de totales.
TDFReclasificación1 <- TDFReclasificación1 [, c("Grupo", "ni", "hi")]
total_ni <- sum(TDFReclasificación1$ni)
total_hi <- 100
TDFReclasificación1.1 <- rbind(TDFReclasificación1, data.frame( Grupo = "Total",
ni = total_ni,
hi = total_hi))
print(TDFReclasificación1.1)
## Grupo ni hi
## 1 Otros usos y control 2863 9.68
## 2 Pozos abandonados 1646 5.57
## 3 Pozos de extensión 810 2.74
## 4 Pozos de inyección 1447 4.89
## 5 Pozos descubridores 935 3.16
## 6 Pozos portadores 713 2.41
## 7 Pozos secos 4816 16.28
## 8 Productores comerciales 16345 55.27
## 9 Total 29575 100.00
Se presenta la tabla resumen utilizando el paquete gt para una visualización formal.
library(gt)
gt(TDFReclasificación1.1) %>%
tab_header(
title = md("**Cuadro No.1**"),
subtitle = "Reclasificación de pozos petroleros 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 | ||
| Reclasificación de pozos petroleros en Brasil | ||
| Grupo | ni | hi |
|---|---|---|
| Otros usos y control | 2863 | 9.68 |
| Pozos abandonados | 1646 | 5.57 |
| Pozos de extensión | 810 | 2.74 |
| Pozos de inyección | 1447 | 4.89 |
| Pozos descubridores | 935 | 3.16 |
| Pozos portadores | 713 | 2.41 |
| Pozos secos | 4816 | 16.28 |
| Productores comerciales | 16345 | 55.27 |
| Total | 29575 | 100.00 |
Este gráfico muestra la cantidad de pozos por grupo de reclasificación (sin el total).
TDFReclasificación2 <- TDFReclasificación1.1[TDFReclasificación1.1$Grupo != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFReclasificación2$ni,
main = "Gráfica N°1: Distribución de pozos por reclasificación",
ylab = "Cantidad",
col = "darkseagreen1", names.arg = TDFReclasificación2$Grupo,
las = 2, cex.names = 0.8, cex.axis = 0.7, cex.main = 1)
mtext("Reclasificación", side = 1, line = 7.3, adj = 0.8)
En este gráfico se muestra la cantidad total de pozos por grupo de reclasificación considerando una escala ampliada,
par(mar = c(9, 4, 4, 2))
barplot(TDFReclasificación2$ni,
main = "Gráfica N°2: Distribución de pozos por reclasificación",
ylab = "Cantidad",
col = "darkseagreen1", names.arg = TDFReclasificación2$Grupo,
las = 2, cex.names = 0.8, cex.axis = 0.7, cex.main = 1, ylim = c(0,30000))
mtext("Reclasificación", side = 1, line = 7.3, adj = 0.8)
Este gráfico representa el porcentaje de participación de cada grupo de reclasificación.
par(mar = c(9, 4, 4, 2))
barplot(TDFReclasificación2$hi,
main = "Gráfica N°3: Distribución porcentual de pozos por reclasificación",
ylab = "Porcentaje",
col = "darkseagreen1", names.arg = TDFReclasificación2$Grupo,
las = 2, cex.names = 0.8, cex.axis = 0.7, cex.main = 1)
mtext("Reclasificación", side = 1, line = 7.3, adj = 0.8)
Aquí se visualiza la distribución porcentual de los pozos por tipo de reclasificación en una escala completa hasta el 100 %, lo que permite identificar la proporción real de cada grupo.
par(mar = c(9, 4, 4, 2))
barplot(TDFReclasificación2$hi,
main = "Gráfica N°4: Distribución porcentual de pozos por reclasificación",
ylab = "Porcentaje",
col = "darkseagreen1", names.arg = TDFReclasificación2$Grupo,
las = 2, cex.names = 0.8, cex.axis = 0.7, cex.main = 1, ylim = c(0,100))
mtext("Reclasificación", side = 1, line = 7.3, adj = 0.8)
Este gráfico representa la participación porcentual de cada grupo de reclasificación.
pie(TDFReclasificación2$hi,
main = "Gráfica N°5: Distribución porcentual de la reclasificación de pozos en Brasil",
radius = 0.6,
labels = paste0(round(TDFReclasificación2$hi,2)),
col = c("#78C679", "#41AB5D", "#238443", "#006837", "#FFFFE5", "#F7FCB9", "#D9F0A3", "#ADDD8E"),
cex = 1, cex.main = 1,
init.angle = 270)
legend(x = -1.95, y =1,
legend = TDFReclasificación2$Grupo,
fill = c("#78C679", "#41AB5D", "#238443", "#006837", "#FFFFE5", "#F7FCB9", "#D9F0A3", "#ADDD8E"),
cex = 0.6,
title = "Reclasificación")