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