Pozos

Mapa

Número de pozos por área de explotación

Datos

Pozos

2396

Pozos por operador

Petróleo

Producción

Producción total

Producción media por pozo

Datos

Millones de m\(^3\) producidos

8.6

Barriles producidos por día

359340

Producción por operador

Gas

Producción

Producción total

Producción media por pozo

Datos

Millones de m\(^3\) producidos

9868.2

BTU producidos por día

1771

Producción por operador

Listados

Listados

---
title: "Vaca Muerta: actividad en Neuquén [Ene-May 2024]"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    social: [ "facebook", "twitter", "linkedin", "instagram"]
    source_code: embed
---

```{r setup, include=FALSE}
library(flexdashboard)
library(DT)
library(sf)
library(leaflet)
library(dplyr)
library(RColorBrewer)
library(plotly)

st_layers("WFS:https://hidrocarburos.energianeuquen.gob.ar/geoserver/wfs")
varGeo1 <- "WFS:https://hidrocarburos.energianeuquen.gob.ar/geoserver/wfs"
capaA <- "Hidrocarburos:Pozos_VM"
capaB <- "Hidrocarburos:Areas"
pozosVM <- st_read(dsn = varGeo1, layer = capaA)
fields <- st_read(dsn = varGeo1, layer = capaB)

produccion <- read.csv("produccin-de-pozos-de-gas-y-petrleo-2024-ultimo.csv")
produccion <- filter(produccion, mes==1 | mes==2 | mes==3 | mes==4 | mes==5)

#produccion<-filter(produccion, provincia=="Neuquén" & formacion=="Vaca Muerta")

produccion_2024<-produccion%>%
  group_by(idpozo)%>%
  summarise(produccion_petroleo=sum(prod_pet), produccion_gas=sum(prod_gas))

pozosVM$idpozo<-pozosVM$UWI_SEN

produccion_por_pozo <- inner_join(pozosVM, produccion_2024, by="idpozo")

produccion_por_area<-produccion_por_pozo%>%
  group_by(ID_NQN)%>%
  summarise(produccion_petroleo=sum(produccion_petroleo), produccion_gas=sum(produccion_gas))

produccion_por_area<-st_drop_geometry(produccion_por_area)

pozos_por_area <- produccion_por_pozo%>%
  group_by(ID_NQN)%>%
  summarise(nro_de_pozos=n())

pozos_por_area<-st_drop_geometry(pozos_por_area)

prod_y_pozos_por_area<-inner_join(produccion_por_area, pozos_por_area, by="ID_NQN")

prod_y_pozos_por_area$prod_prom_gas<-prod_y_pozos_por_area$produccion_gas/prod_y_pozos_por_area$nro_de_pozos

prod_y_pozos_por_area$prod_prom_pet<-prod_y_pozos_por_area$produccion_petroleo/prod_y_pozos_por_area$nro_de_pozos

fields <- fields %>% 
  st_cast(to = "GEOMETRYCOLLECTION") %>% 
  st_collection_extract(type = "POLYGON")

fields <- st_make_valid(fields)

areas_sin_bloques <- fields%>%
  group_by(ID_NQN)%>%
  summarise(Shape = st_union(Shape))

areas_sin_bloques<-rename(areas_sin_bloques,geometry=Shape)

fields_OK<- fields%>%
  distinct(ID_NQN, .keep_all = TRUE)

fields_OK<-st_drop_geometry(fields_OK)

base_completa<-fields_OK%>%
  inner_join(prod_y_pozos_por_area, by="ID_NQN")

base_completa<-areas_sin_bloques%>%
  inner_join(base_completa, by="ID_NQN")

base_final<-select(base_completa, -gml_id, -BLOQUE, -SUP_LEGAL, -SUP_GIS, -SIGLA, -COD_EMPRES, -ANTEC_AREA, -MENSURA, -ID_BLOQUE, -OBSERVA, -OBJECTID, -TIPO_CONTRATO, -DCHO_OTORGADO, -NORMA_LEGAL, -INI_CONTRATO, -FIN_CONTRATO)

base_final$prod_prom_gas <- round(base_final$prod_prom_gas, 1)
base_final$prod_prom_pet <- round(base_final$prod_prom_pet, 1)
base_final$produccion_petroleo <- round(base_final$produccion_petroleo, 1)
base_final$produccion_gas <- round(base_final$produccion_gas, 1)

pozos_por_empresa <- base_final%>%
  group_by(OPERADOR)%>%
  summarise(Pozos = sum(nro_de_pozos))

pozos_por_empresa <- st_drop_geometry(pozos_por_empresa)

pozos_por_empresa <- pozos_por_empresa[order(-pozos_por_empresa$Pozos), ]
top_5 <- pozos_por_empresa[1:5, ]
empresas_restantes <- sum(pozos_por_empresa$Pozos[6:nrow(pozos_por_empresa)])
otras <- data.frame(OPERADOR = "Otras", Pozos = empresas_restantes)
pozos_por_empresa_para_graf<-rbind(top_5, otras)

graf_pozos_por_empresa <- plot_ly(pozos_por_empresa_para_graf, labels = ~OPERADOR, values = ~Pozos, type = 'pie') %>%
  layout(title = 'Número de pozos por empresa operadora', showlegend = FALSE)

prod_por_empresa <- base_final%>%
  group_by(OPERADOR)%>%
  summarise(Producción = sum(produccion_petroleo))

prod_por_empresa <- st_drop_geometry(prod_por_empresa)
prod_por_empresa <- prod_por_empresa[order(-prod_por_empresa$Producción), ]
prod_por_empresa <- prod_por_empresa[1:10,]
prod_por_empresa$Producción<-round(prod_por_empresa$Producción/1000000, 2)
prod_por_empresa$OPERADOR <- factor(prod_por_empresa$OPERADOR, levels = prod_por_empresa$OPERADOR)

graf_prod_por_empresa <- plot_ly(prod_por_empresa, x = ~OPERADOR, y=~Producción, type = "bar", color = ~OPERADOR,  colors = "Paired",  text = ~paste(OPERADOR, "<br>", Producción,"M de m<sup>3</sup>"), hoverinfo = 'text') %>%
  layout(title = "Top 10 de empresas productoras (en mills. de m<sup>3</sup>)", showlegend = FALSE, xaxis = list(showticklabels = FALSE))

gas_por_empresa <- base_final%>%
  group_by(OPERADOR)%>%
  summarise(Producción = sum(produccion_gas))

gas_por_empresa <- st_drop_geometry(gas_por_empresa)
gas_por_empresa <- gas_por_empresa[order(-gas_por_empresa$Producción), ]
gas_por_empresa <- gas_por_empresa[1:10,]
gas_por_empresa$Producción<-round(gas_por_empresa$Producción/1000, 1)
gas_por_empresa$OPERADOR <- factor(gas_por_empresa$OPERADOR, levels = gas_por_empresa$OPERADOR)

graf_gas_por_empresa <- plot_ly(gas_por_empresa, x = ~OPERADOR, y=~Producción, type = "bar", color = ~OPERADOR,  colors = "Paired",  text = ~paste(OPERADOR, "<br>", Producción,"M de m<sup>3</sup>"), hoverinfo = 'text') %>%
  layout(title = "Top 10 de empresas productoras (en mills. de m<sup>3</sup>)", showlegend = FALSE, xaxis = list(showticklabels = FALSE))

listado<-as.data.frame(select(produccion_por_pozo, idpozo, AREA_LEGAL, OPERADOR, produccion_petroleo, produccion_gas, ID_NQN))
listado<-listado %>%
  left_join(base_final %>% select(ID_NQN, NOMBRE), by = "ID_NQN")
listado <- st_drop_geometry(listado)
listado <- select(listado, -SHAPE, -ID_NQN, -AREA_LEGAL, -geometry)
listado<-rename(listado, ID_Pozo=idpozo, Área=NOMBRE, Operador=OPERADOR, Petróleo.m3=produccion_petroleo, Gas.Miles_m3=produccion_gas)
listado<-select(listado, ID_Pozo, Área, Operador, Petróleo.m3, Gas.Miles_m3)
listado$Petróleo.m3<- round(listado$Petróleo.m3, 1)
listado$Gas.Miles_m3<- round(listado$Gas.Miles_m3, 1)
```

# Pozos

## Mapa {data-width="650"}

### Número de pozos por área de explotación

```{r}
pal1 <- colorBin(palette = "Reds",
                     domain=base_final$nro_de_pozos,
                     bins = c(0, 3, 3*3, 3*3*3, 3*3*3*3, 3*3*3*3*3, 3*3*3*3*3*3, Inf))

leaflet()%>%
  addTiles('https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/mapabase_gris@EPSG%3A3857@png/{z}/{x}/{-y}.png') %>%
  addWMSTiles(
    "https://wms.ign.gob.ar/geoserver/capabaseargenmap/gwc/service/wmts?request=GetCapabilities",
    layers= "Capa base Argenmap",
    options = WMSTileOptions(format = "image/png", transparent = TRUE),
    tileOptions(tms = TRUE),
    attribution = "") %>%
  addPolygons(data = base_final,color = "blue", weight = 1, opacity = 0.5,
              popup = ~paste("<b>Área:</b>", NOMBRE,"<br>",
                             "<b>Número de pozos:</b>", nro_de_pozos), fillOpacity = 1,  fillColor = ~pal1(base_final$nro_de_pozos))%>%
   addLegend(
    pal = pal1,
    values = c(0, 3, 3*3, 3*3*3, 3*3*3*3, 3*3*3*3*3, 3*3*3*3*3*3, Inf),
    opacity = 0.7,
    title = "Número de pozos",
    position = "bottomright")
```

## Datos {data-width="350"}

### Pozos

```{r}
var1 <- nrow(pozosVM)
valueBox(var1, icon = "fa-fire")
```

### Pozos por operador

```{r}
graf_pozos_por_empresa
```

# Petróleo

## Producción {.tabset data-width="650"}

### Producción total

```{r}
pal3 <- colorBin(palette = "Oranges",
                     domain=base_final$produccion_petroleo,
                     bins = c(0, 11, 11*11, 11*11*11, 11*11*11*11, 11*11*11*11*11, 11*11*11*11*11*11, Inf))

leaflet()%>%
  addTiles('https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/mapabase_gris@EPSG%3A3857@png/{z}/{x}/{-y}.png') %>%
  addWMSTiles(
    "https://wms.ign.gob.ar/geoserver/capabaseargenmap/gwc/service/wmts?request=GetCapabilities",
    layers= "Capa base Argenmap",
    options = WMSTileOptions(format = "image/png", transparent = TRUE),
    tileOptions(tms = TRUE),
    attribution = "") %>%
  addPolygons(data = base_final, color = "blue", weight = 1, opacity = 0.5,
              popup = ~paste("<b>Área:</b>", NOMBRE,"<br>",
                             "<b>Producción:</b>", produccion_petroleo, "<b> m<sup>3</sup>:</b>"), fillOpacity = 1,  fillColor = ~pal3(base_final$produccion_petroleo))%>%
  addLegend(
    pal = pal3,
    values = c(0, 11, 11*11, 11*11*11, 11*11*11*11, 11*11*11*11*11, 11*11*11*11*11*11, Inf),
    opacity = 0.7,
    title = "Producción de petróleo (en m<sup>3</sup>)",
    position = "bottomright")
```

### Producción media por pozo

```{r}
pal2 <- colorBin(palette = "Oranges", 
                     domain=base_final$prod_prom_pet,
                     bins = c(0, 3, 3*3, 3*3*3, 3*3*3*3, 3*3*3*3*3, 3*3*3*3*3*3, 3*3*3*3*3*3*3, 3*3*3*3*3*3*3*3, Inf))

leaflet()%>%
  addTiles('https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/mapabase_gris@EPSG%3A3857@png/{z}/{x}/{-y}.png') %>%
  addWMSTiles(
    "https://wms.ign.gob.ar/geoserver/capabaseargenmap/gwc/service/wmts?request=GetCapabilities",
    layers= "Capa base Argenmap",
    options = WMSTileOptions(format = "image/png", transparent = TRUE),
    tileOptions(tms = TRUE),
    attribution = "") %>%
  addPolygons(data = base_final, color = "blue", weight = 1, opacity = 0.5,
              popup = ~paste("<b>Área:</b>", NOMBRE,"<br>",
                             "<b>Producción:</b>", prod_prom_pet, "<b> m<sup>3</sup> por pozo</b>"), fillOpacity = 1,  fillColor = ~pal2(base_final$prod_prom_pet))%>%
  addLegend(
    pal = pal2,
    values = c(0, 3, 3*3, 3*3*3, 3*3*3*3, 3*3*3*3*3, 3*3*3*3*3*3, 3*3*3*3*3*3*3, 3*3*3*3*3*3*3*3, Inf),
    opacity = 0.7,
    title = "Producción (en m<sup>3</sup> por pozo)",
    position = "bottomright")
```

## Datos {data-width="350"}

### Millones de m$^3$ producidos

```{r}
var2 <- round((sum(base_final$produccion_petroleo)/1000000), 1)
valueBox(var2, icon = "fa-tint")
```

### Barriles producidos por día

```{r}
var3 <- round(((sum(base_final$produccion_petroleo))*6.29)/as.numeric(difftime(as.Date("2024-05-31"), as.Date("2024-01-01"), units = "days")), 0)
valueBox(var3, icon = "fa-trash")
```

### Producción por operador

```{r}
graf_prod_por_empresa
```

# Gas

## Producción {.tabset data-width="650"}

### Producción total

```{r}
pal5 <- colorBin(palette = "Greens",
                     domain=base_final$prod_prom_gas,
                     bins = c(0, 17, 17*17, 17*17*17, 17*17*17*17, 17*17*17*17*17, Inf))

leaflet()%>%
  addTiles('https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/mapabase_gris@EPSG%3A3857@png/{z}/{x}/{-y}.png') %>%
  addWMSTiles(
    "https://wms.ign.gob.ar/geoserver/capabaseargenmap/gwc/service/wmts?request=GetCapabilities",
    layers= "Capa base Argenmap",
    options = WMSTileOptions(format = "image/png", transparent = TRUE),
    tileOptions(tms = TRUE),
    attribution = "") %>%
  addPolygons(data = base_final, color = "blue", weight = 1, opacity = 0.5,
              popup = ~paste("<b>Área:</b>", NOMBRE,"<br>",
                             "<b>Producción:</b>", produccion_gas, "<b>miles de m<sup>3</sup></b>"), fillOpacity = 1,  fillColor = ~pal5(base_final$produccion_gas))%>%
  addLegend(
    pal = pal5,
    values = c(0, 17, 17*17, 17*17*17, 17*17*17*17, 17*17*17*17*17, Inf),
    opacity = 0.7,
    title = "Producción (en miles de m<sup>3</sup>)",
    position = "bottomright")
```

### Producción media por pozo

```{r}
pal4 <- colorBin(palette = "Greens",
                     domain=base_final$prod_prom_gas,
                     bins = c(0, 4, 4*4, 4*4*4, 4*4*4*4, 4*4*4*4*4, 4*4*4*4*4*4, 4*4*4*4*4*4*4, Inf))

leaflet()%>%
  addTiles('https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/mapabase_gris@EPSG%3A3857@png/{z}/{x}/{-y}.png') %>%
  addWMSTiles(
    "https://wms.ign.gob.ar/geoserver/capabaseargenmap/gwc/service/wmts?request=GetCapabilities",
    layers= "Capa base Argenmap",
    options = WMSTileOptions(format = "image/png", transparent = TRUE),
    tileOptions(tms = TRUE),
    attribution = "") %>%
  addPolygons(data = base_final, color = "blue", weight = 1, opacity = 0.5,
              popup = ~paste("<b>Área:</b>", NOMBRE,"<br>",
                             "<b>Producción:</b>", prod_prom_gas, "<b>miles de m<sup>3</sup> por pozo</b>"), fillOpacity = 1,  fillColor = ~pal4(base_final$prod_prom_gas))%>%
   addLegend(
    pal = pal4,
    values = c(0, 4, 4*4, 4*4*4, 4*4*4*4, 4*4*4*4*4, 4*4*4*4*4*4, 4*4*4*4*4*4*4, Inf),
    opacity = 0.7,
    title = "Producción (en miles de m<sup>3</sup> por pozo)",
    position = "bottomright")
```

## Datos {data-width="350"}

### Millones de m$^3$ producidos

```{r}
var4 <- round((sum(base_final$produccion_gas)/1000), 1)
valueBox(var4, icon = "fa-fire")
```

### BTU producidos por día

```{r}
var5 <- round((sum(base_final$produccion_gas)*27.096344*0.001)/as.numeric(difftime(as.Date("2024-05-31"), as.Date("2024-01-01"), units = "days")), 0)
valueBox(var5, icon = "fa-gas-pump")
```

### Producción por operador

```{r}
graf_gas_por_empresa
```

Listados
==================================================================

Listados
------------------------------------------------------------------
### Pozos: producción, área legal y empresa operadora
```{r}
datatable(
  listado,
  filter = 'top',
  options = list(
    pageLength = 10
  ))
```