Теперь, когда мы извлекли данные из файла PDF в базу, мы можем легко построить какую-нибудь аналитику, поупражнявшись настройке графиков ggplot разных типов.
iyear <- 2016
load(file=paste0(iyear,".RData"))
# install.packages("pdftools")
library(pdftools)
library(dplyr)
library(ggplot2)
iyear <- 2016
load(file=paste0(iyear,".RData"))
# install.packages("pdftools")
library(pdftools)
library(dplyr)
library(ggplot2)
Число скважин
dd <- odb_y[ odb_y$COMP >= "2005-01-01", ] %>% mutate( YF = as.factor( format( COMP, "%Y") ) ) %>% group_by( YF ) %>% summarise( Cnt = length(FID), OilT = sum(Oil))
ggplot( dd, aes( x=YF, y= Cnt) ) +
geom_col(position="dodge", fill="blue") +
ggtitle(paste("Число скважин Bakken (по годам открытия)"))+
ylab("Число скважин")+xlab("Год открытия")
После падения цен на нефть в 2014м году количество новых скважин совратилось по сравнению с пиком примерно втрое.
dd <- odb_y[ odb_y$COMP >= "2005-01-01", ] %>% mutate( YF = as.factor( format( COMP, "%Y") ) ) %>% group_by( YF ) %>% summarise( Cnt = length(FID), OilT = sum(Oil))
ggplot( dd, aes( x=YF, y= Cnt) ) +
geom_col(position="dodge", fill="blue") +
ggtitle(paste("Число скважин Bakken (по годам открытия)"))+
ylab("Число скважин")+xlab("Год открытия")
После падения цен на нефть в 2014м году количество новых скважин совратилось по сравнению с пиком примерно втрое.
Распределение скважин по доле воды в скважинной жидкости.
dd <- odb_y[ odb_y$COMP >="2009-01-01", ]
dd$YF <- as.factor( format( dd$COMP, "%Y") )
ggplot( dd, aes( x=Wtr/(Wtr+Oil+1), color=YF ) ) +
geom_freqpoly(position="dodge", binwidth=0.1, size=2)+
ggtitle(paste("Доля воды в скважинах Bakken в", iyear))+
ylab("Количество скважин")+
xlab("Доля воды в скважинной жидкости")+
scale_color_discrete("Год ввода\nв эксплуатацию")+xlim(0,1)
## Warning: Removed 63 rows containing non-finite values (stat_bin).
## Warning: Removed 24 rows containing missing values (geom_path).
ggplot( dd, aes( x=Wtr/(Wtr+Oil+1), y=stat(density), color=YF ) ) +
geom_freqpoly(position="dodge", binwidth=0.1, size=1.2)+
ggtitle(paste("Доля воды в скважинах Bakken в", iyear))+
ylab("Плотность распределения")+
xlab("Доля воды в скважинной жидкости")+
scale_color_discrete("Год ввода\nв эксплуатацию")+xlim(0,1)
## Warning: Removed 63 rows containing non-finite values (stat_bin).
## Warning: Removed 24 rows containing missing values (geom_path).
ggplot( dd, aes( y=Wtr/(Wtr+Oil+1), x=YF, fill=YF ) ) +
geom_boxplot(position="dodge")+
ggtitle(paste("Доля воды в скважинах Bakken в", iyear))+
ylab("Доля воды")+
xlab("Год ввода в эксплуатацию")+
scale_fill_discrete("Год ввэ.")
## Warning: Removed 63 rows containing non-finite values (stat_boxplot).
Как видим на картинке доля воды в более новых скважинах в среднем заметно выше, чем в более старых, открытых в 2009-2010 годах, и составляет в среднем 50%.
dd <- odb_y[ odb_y$COMP >="2009-01-01", ]
dd$YF <- as.factor( format( dd$COMP, "%Y") )
ggplot( dd, aes( x=Wtr/(Wtr+Oil+1), color=YF ) ) +
geom_freqpoly(position="dodge", binwidth=0.1, size=2)+
ggtitle(paste("Доля воды в скважинах Bakken в", iyear))+
ylab("Количество скважин")+
xlab("Доля воды в скважинной жидкости")+
scale_color_discrete("Год ввода\nв эксплуатацию")+xlim(0,1)
## Warning: Removed 63 rows containing non-finite values (stat_bin).
## Warning: Removed 24 rows containing missing values (geom_path).
ggplot( dd, aes( x=Wtr/(Wtr+Oil+1), y=stat(density), color=YF ) ) +
geom_freqpoly(position="dodge", binwidth=0.1, size=1.2)+
ggtitle(paste("Доля воды в скважинах Bakken в", iyear))+
ylab("Плотность распределения")+
xlab("Доля воды в скважинной жидкости")+
scale_color_discrete("Год ввода\nв эксплуатацию")+xlim(0,1)
## Warning: Removed 63 rows containing non-finite values (stat_bin).
## Warning: Removed 24 rows containing missing values (geom_path).
ggplot( dd, aes( y=Wtr/(Wtr+Oil+1), x=YF, fill=YF ) ) +
geom_boxplot(position="dodge")+
ggtitle(paste("Доля воды в скважинах Bakken в", iyear))+
ylab("Доля воды")+
xlab("Год ввода в эксплуатацию")+
scale_fill_discrete("Год ввэ.")
## Warning: Removed 63 rows containing non-finite values (stat_boxplot).
Как видим на картинке доля воды в более новых скважинах в среднем заметно выше, чем в более старых, открытых в 2009-2010 годах, и составляет в среднем 50%.
Распределение скважин по среднему дебиту.
ggplot( dd, aes( x=Oil/(WD+0.01) ) ) +
geom_freqpoly(position="dodge", binwidth=10, size=2, color="red")+
ggtitle(paste("Распределение скважин по среднему дебиту за период", iyear))+
ylab("Количество скважин")+
xlab("Бар./д")+
scale_color_discrete("Год ввода\nв эксплуатацию")+ xlim(0,2500)
## Warning: Removed 63 rows containing non-finite values (stat_bin).
## Warning: Removed 2 rows containing missing values (geom_path).
dd$OilAv <- dd$Oil/(dd$WD+0.01)
ecdf1 <- ecdf( dd$OilAv )
ggplot( dd, aes( x=OilAv, y=ecdf1(OilAv) )) +
geom_line( size=2, color="red")+
ggtitle(paste("Кумулятивное распределение скважин по среднему\nдебиту за период", iyear))+
ylab("% скважин c дебитом меньше заданного")+xlab("Бар./д.")+
scale_color_discrete("Год ввода\nв эксплуатацию")+ xlim(0,2500)
## Warning: Removed 63 rows containing missing values (geom_path).
Как можно видеть в 2016м году скважин с хорошиv дебитом было немного. 90% скважин имеют дебит меньше 200 баррелей в сутки.
ggplot( dd, aes( x=Oil/(WD+0.01) ) ) +
geom_freqpoly(position="dodge", binwidth=10, size=2, color="red")+
ggtitle(paste("Распределение скважин по среднему дебиту за период", iyear))+
ylab("Количество скважин")+
xlab("Бар./д")+
scale_color_discrete("Год ввода\nв эксплуатацию")+ xlim(0,2500)
## Warning: Removed 63 rows containing non-finite values (stat_bin).
## Warning: Removed 2 rows containing missing values (geom_path).
dd$OilAv <- dd$Oil/(dd$WD+0.01)
ecdf1 <- ecdf( dd$OilAv )
ggplot( dd, aes( x=OilAv, y=ecdf1(OilAv) )) +
geom_line( size=2, color="red")+
ggtitle(paste("Кумулятивное распределение скважин по среднему\nдебиту за период", iyear))+
ylab("% скважин c дебитом меньше заданного")+xlab("Бар./д.")+
scale_color_discrete("Год ввода\nв эксплуатацию")+ xlim(0,2500)
## Warning: Removed 63 rows containing missing values (geom_path).
Как можно видеть в 2016м году скважин с хорошиv дебитом было немного. 90% скважин имеют дебит меньше 200 баррелей в сутки.
Вклад скважин в общую добычу в разрезе даты их открытия.
dd2 <- dd %>% group_by(YF) %>% summarise( Oilt = sum(Oil, na.rm=TRUE) )
dd2$share <- dd2$Oilt / sum( dd2$Oilt)
ggplot( dd2, aes( x="", y=share, fill= YF)) +
geom_col(width=1) +coord_polar("y", start = 0) +
ggtitle(paste("Вклад скважин разных лет запуска в общую добычу", iyear)) +
geom_text( aes( x=1.2, y = 1-( cumsum(share) - share/2),
label = paste0( round(share*100), "%")), size=3, hjust=0.5, vjust=0.5) + ylim(0,1) +
theme(
axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.border = element_blank(),
panel.grid = element_blank(),
axis.ticks.y = element_blank(),
axis.ticks.x = element_blank()
)
Наибольший вклад, вполне логично, давали более новые скважины.
dd2 <- dd %>% group_by(YF) %>% summarise( Oilt = sum(Oil, na.rm=TRUE) )
dd2$share <- dd2$Oilt / sum( dd2$Oilt)
ggplot( dd2, aes( x="", y=share, fill= YF)) +
geom_col(width=1) +coord_polar("y", start = 0) +
ggtitle(paste("Вклад скважин разных лет запуска в общую добычу", iyear)) +
geom_text( aes( x=1.2, y = 1-( cumsum(share) - share/2),
label = paste0( round(share*100), "%")), size=3, hjust=0.5, vjust=0.5) + ylim(0,1) +
theme(
axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.border = element_blank(),
panel.grid = element_blank(),
axis.ticks.y = element_blank(),
axis.ticks.x = element_blank()
)
Наибольший вклад, вполне логично, давали более новые скважины.
Распределение скважин относительно соотношения добываемых газа и нефти.
ggplot( dd, aes( x=Gas/(Oil+1), stat(density), color=YF ) ) +
geom_freqpoly(position="dodge", binwidth=0.1, size=1.2)+
ggtitle(paste("Распределение скважин по отношению дебитов газа и нефти, Bakken", iyear))+
ylab("Плотность распределения")+
xlab("Gas (mfc/y)/Oil (b/y)")+
scale_color_discrete("Год ввода\nв эксплуатацию")+xlim(0,1)
## Warning: Removed 7818 rows containing non-finite values (stat_bin).
## Warning: Removed 24 rows containing missing values (geom_path).
Из приведенного графика можно предположить, что более новые скважины (запущенные в 2011м и позднее), дают с среднем заметно большую долю газа.
ggplot( dd, aes( x=Gas/(Oil+1), stat(density), color=YF ) ) +
geom_freqpoly(position="dodge", binwidth=0.1, size=1.2)+
ggtitle(paste("Распределение скважин по отношению дебитов газа и нефти, Bakken", iyear))+
ylab("Плотность распределения")+
xlab("Gas (mfc/y)/Oil (b/y)")+
scale_color_discrete("Год ввода\nв эксплуатацию")+xlim(0,1)
## Warning: Removed 7818 rows containing non-finite values (stat_bin).
## Warning: Removed 24 rows containing missing values (geom_path).
Из приведенного графика можно предположить, что более новые скважины (запущенные в 2011м и позднее), дают с среднем заметно большую долю газа.
Комментариев нет:
Отправить комментарий