Análisis de la reclasificación de los pozos petroleros en Brasil

1 Carga y exploración de datos

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

2 Tabla de distribución de frecuencia

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

3 Agrupación por tipo de pozo

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

4 Cálculo de frecuencias absolutas y relativas

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)

5 Cuadro resumen con totales

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

6 Presentación tabular con formato

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

7 Gráficas

7.1 Histograma de frecuencia absoluta local (ni)

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)

7.2 Histograma de frecuencia absoluta global (ni)

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) 

7.3 Histograma de frecuencia relativa local (hi)

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)

7.4 Histograma de frecuencia relativa global (hi)

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)

7.5 Diagrama circular

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")