|dc.description.abstract||The process of digitalization within the oil and gas industry has been rapidly expanding, as a means of coping with the complexity and cost of collecting data and to minimize delays and downtime. One such cost saving measure is the installation of Permanent Downhole Gauges (PDG) in modern wells. PDGs automatically collect reservoir data such as pressure and flow-rate, parameters which are needed when performing Pressure Transient Analysis (PTA). Traditionally data collection for PTA was performed only on shut-in periods which require production to halt, while PDGs allow for data collection while the wells are producing. The tradeoff with data collected from PDGs is the amount of noise, which is caused by the flowing regime in which the data is collected.
In recent years there has been a focus on developing automatic processes using machine learning to interpret this data. The focus in previous works has mostly been on the reconstruction of missing sensor data using machine- and/or deep-learning, and automatic PTA analysis using mostly simplified or synthetic datasets with little-to-no noise.
This thesis focuses on the development of Python code to enable the automatic preprocessing and storage of raw data collected from PDGs. The objective is to develop and test approaches in automatic identification of pressure transients utilizing machine learning and pattern recognition.
During the project an efficient way to store the PDG data which minimizes redundant data was developed, by constructing easily searchable Python objects. Several approaches to automatically divide the dataset into separate pressure transients were developed, these approaches were initially developed using a synthetic dataset, and then further expanded on to also work on raw PDG-data.
The originally developed approaches were too sensitive to the noise which was present in the raw PDG-data. To make the methodology more robust, the methods were rewritten to use derivative values. In addition, a moving average window and breakpoint thresholds were implemented to minimize the effect noisy data/outliers had on the transient breakpoint detection.||