R packages I developed

Shiny applications

  • Artificial Lift selector: WebApp, Repository

  • Well Batch Automation (in progress)

Repositories I am working on

Data Analytics and Production Optimization Projects

Projects in the pipeline

  • Multiwell scanning application
  • Well network optimization application
  • VLP/IPR well test matching application
  • Dual Gas Lift simulator application
  • Reservoir fine tuning using material balance

Current projects

  • Performing the analysis of the Volve public dataset published by Equinor. So far, was able to download thirteen out of fourteen datasets. The last one is 2.6 terabytes size. Most of the data is readable such in the cases of production data, reservoir data, drilling real time data. Other data is binary but readable such in the case of seismic data but there are two open source applications for that purpose segyio in Python and OpendTect. Writing a tutorial for public consumption and reproducibility.

  • Writing an application for production optimization combining Python and R. The first part, multiwell statistics is almost completed (preparing for publication). The next modules are multiwell scanning, well test quality control, well network optimization, and VLP/IPR matching from tests.

  • Plans for publishing rNodal, a small application for nodal analysis that has already been written (read below). This should be the starting point for petroleum engineers to start coding more in R, as they will use it as a base application or template to model their own packages.

Past projects

  • Performed the Exploratory Data Analysis (EDA) and delineation of the strategy for a machine learning project for water injection optimization. Several datasets were collected, cleaned, tidied up, merged and reported using Rmarkdown for literate programming. 2018.

  • Wrote an application in R to communicate with GAP and OpenServer in order to generate automated forecasts by field, by tank, by well. The application was named rGAP. 2018

  • Wrote an application using R to communicate with MBAL to produce curves not able to be generated by MBAL itself. The data was read from MBAL and converted to tidy datasets that would be used to generate material balance plots -being one of them p/z for carbonate gas reservoirs. The action is remotely initiated from a web server at request of the user without the need to interface directly with MBAL. This is done using OpenServer commands. The application was called rMBAL. 2018

  • Wrote an application in R that talked directly with Prosper via OpenServer with the intention of reading hundreds of wells directly from Prosper models. This operation created a tidy dataset for subsequent analysis in preparation for machine learning algorithms. The application was named rProsper. 2018.

  • Prepared the conceptual of an application for dual gas lift simulation using R and rProsper. The idea was replicating the original application written in Excel in 2015. See few paragraphs below. Functions for dual gas lift operations were written but not tested with real well cases. 2018.

  • Showed the operator and contractor on how to remotely operate multiuser Prosper, GAP and MBAL living in a Citrix server via a web interface. This was a breakthrough for the organization because finally the operator learned how to control PC based engineering applications via the web and an API. 2018

  • Wrote a nodal analysis application using known VLP and IPR correlations. The purpose was showing petroleum engineers how to write modular applications in R and the use of algorithms for looping in vertical and inclined strings. The application was called rNodal. Unpublished. 2017

  • Wrote an application in R to remotely collect paper searches from OnePetro and put the results in datasets for analysis, interpretation and text mining. The application was named petro.One. It is available via CRAN. 2017

  • Wrote a comparison paper and an application in R that put together all the correlations to calculate the gas compressibility factor. The resulting application was named zFactor and was published in CRAN. 2017.

  • Wrote a scientific application in R to solve ordinary differential equations (ODE) . The intention of the applications was to teach physics and engineering students on how to start writing applications in R; also get them familiar with object orientation using S4 classes. The application was named rODE and is published in CRAN. 2017

  • Built a multiwell scanner application able to read hundreds of wells from Prosper models creating a dataset for statistical analysis, quality control of the input data and outlier detection of well variables. This work reduced the time of building a whole network model for a field from 6-9 months to 3-5 weeks. The application was built in Python and used Petex OpenServer. With the help of these scripts we were able to perform network optimization to more fields in less time. The Network Optimization process was selected as one of the key revenue generators by a corporate task force. 2015.

  • Built a network solver scenarios selector using GAP, OpenServer and Jupyter notebooks. This application allowed the engineer to create multiple possible scenarios in a worksheet that later would be read automatically from Jupyter. The user would execute commands via OpenServer to run GAP, using the input in the notebook and a worksheet. The well network would then be optimized to find the best solution (highest oil production, less gas injection rate, lowest THP, etc.), would be suggested in a form of a table and plots to be presented in graphical form in the notebook. 2015.

  • Built a small well test matching application using Excel, Python and OpenServer. The well test data would be read via SQL from an Oracle database and plugged in to a worksheet. The user would enter the external conditions, other well parameters (PVT, VLP, IPR correlations), and with a push of a button, the matching process would proceed until convergence. 2016.

  • Built an application using Jupyter notebooks and a SQL connector to interrogate the master production database in Oracle in order to get the most current information about production of the wells. The notebooks worked as templates that engineers could modify with their own field, well name and conditions. With these queries the engineer could immediately know what gas lift wells were producing at the highest oil rate with the less gas injection volumes; how many wells had been idle the longest and were good oil producers; what wells had the highest GOR and watercut; what caused an oil well to drop production; what wells were the highest consumers of injection gas but were poor oil producers; etc. SQL queries demonstrated to be faster than the web browser application built for that purpose. 2015

  • Built a small application using Python, OpenServer and Prosper to plot all the VLP and IPR curves intersection of several wells at once in a worksheet. The output data was captured from Prosper models. By seeing all the plots in one shot, the engineer could know what wells were producing at their best, what wells were at risk of stopping production, measure the quality of the matching process; and what wells required immediate attention.

  • Built a prototype application using Prosper and OpenServer to simulate dual gas lift wells. The application was written in Excel VBA. Its main innovation was allowing the user to open two simultaneous Prosper instances via OpenServer, where one instance represented the long string, and the second instance the short string. The main objective of the application was to demonstrate to the Integrated Operations group that multipointing detection was possible to achieve with Prosper in dual gas lift wells. 2015.

  • Wrote an internal white paper where all the fields of the operator were analyzed in order to pick the best field candidates for production optimization. The paper was instrumental for the creation of a task force (well modeling team), and start an initiative of continuous field optimization. The document cited numerous SPE papers of cases where oil and gas operators had used production modeling gaining an oil increase from 3% up to 24%. 2013.