wprautoencoders
This is one of Petrobras' open repositories on GitHub. It contains the WPRAutoencoders project which encompasses a wellbore pressure response generator, a dataset of 20.000 synthetic pressure responses and an autoencoder neural network capable of clustering this data based on transmissibility and reservoir geometry.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.0%) to scientific vocabulary
Keywords
Repository
This is one of Petrobras' open repositories on GitHub. It contains the WPRAutoencoders project which encompasses a wellbore pressure response generator, a dataset of 20.000 synthetic pressure responses and an autoencoder neural network capable of clustering this data based on transmissibility and reservoir geometry.
Basic Info
Statistics
- Stars: 42
- Watchers: 4
- Forks: 8
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Table of Contents
- Introduction
- Wellbore Pressure Response Generator
- Autoencoder Neural Network
- Wellbore Pressure Response Dataset
Introduction
This is Petrobras' second repository on GitHub. It contains the Reservoir Autoencoders codebase which is part of the CÉOS Strategic Reservoir program.
Motivation
Well testing strategies are based on measuring pressure variation on reservoirs after production or injection. Based on these values and their derivatives, important information can be gathered about the formation such as the transmissibility, formation damage (skin), reservoir geometry, etc.
The Reservoir Autoencoders repository contains the wellbore pressure response generator, an autoencoder neural network and a wellbore pressure response dataset.
This solution has two practical day-to-day applications on reservoir evaluation:
- Building a well test interpretation assistant capable of suggesting transmissibility and reservoir geometry automatically based on the raw pressure data;
- Enabling the use of pressure dynamic data asd inputs for analogous reservoir queries.
Strategy
The Reservoir Autoencoders is the second entry the Petrobras' program called Conexões para Inovação - Módulo Open Lab. This is an open project with three different parts:
- A Wellbore Pressure Response Generator capable of building pressure responses for 7 different well/reservoir configurations;
- An Autoencoder Neural Network trained on a dataset of 20.000 synthetic wellbore pressure responses capable of clustering the data based on transmissibility and reservoir geometries;
- A Wellbore Pressure Response Dataset with 20.000 synthetic wellbore pressure responses based on 20.000 different combinations of reservoir properties such as permeability, heught, storage, skin factor, etc.
Ambition
With this project, Petrobras intends to develop (fix, improve, supplement, etc.) and/or foment:
- The wellbore pressure response generator itself;
- The autoencoder network itself;
- New algorithms using the wellbore pressure response dataset.
Contributions
We expect to receive various types of contributions from individuals, research institutions, startups, companies and partner oil operators.
Before you can contribute to this project, you need to read and agree to the following documents:
It is also very important to know, participate and follow the discussions. See the discussions section.
Licenses
All the code of this project is licensed under the Apache 2.0 License and all dataset data files (CSV files in the subdirectories of the dataset directory) are licensed under the Creative Commons Attribution 4.0 International License.
Wellbore Pressure Response Generator
The WPRGenerator class synthesizes wellbore pressure response based on 13 parameters:
- Permeability
- Porosity
- Reservoir height
- Total compressibility
- Volume formation factor
- Viscosity
- Flow rate
- Skin factor
- Barriers distances (L1, L2, L3, L4)
- Well radius
The image method is then used to compute the wellbore pressure response for each time stamp.
Based on different configurations of the barrier distances parameters, the WPRGenerator class can synthesize responses for any of 6 six common configurations: infinite reservoir, one barrier, two orthogonal barriers, two parallel barriers, three orthogonal barriers and four orthogonal barriers.
In order to compute wellbore storage, the RadialStorage.py helper file is needed. This strategy was implemented to separate wellbore responses created using the Laplace transform and subsequent Stefehst inversion.
Autoencoder Neural Network
Autoencoders are deep learning algorithms for compression and decompression of data.
Network training is based on using the same datasets as inputs and outputs, effectively training the network to reproduce the data. The caveat here is based on the network architecture, that has an encoding and a decoding halves.
In the first block, the number of neuros on each layers decreases progressively, reaching a minimum in the so called latent layer. From this layer on, starts the decoding block, with an increasing number of neurons on each layer, until the same input dimmensionality is reached in the last layer.
These networks' capacity to reduce data dimmensionality until the latent layer and then rebuild it with minimum data loss leads to the conclusion that the information outputted by the latent layer contains is a "minimal representation" of the input data. Therefore, this network becomes an interesting alternative to reduce dimmensionality of complex datasets.
Wellbore Pressure Response Dataset
This is the dataset that was used to train the Autoencoder Neural Network. Each row represents a different wellbore pressure response, ate its columns are described below.
|Columns|Description| |---|---| |1 through 15|Contains the input data used to generate the current response| |16 through 35|Timestamps used to calculate pressure variation and its derivative| |36 through 55|Pressure variation values| |56 through 75|Pressure variation derivative values|
Parameter variation
|Parameter|Minimum|Maximum| |---|---|---| |Permeability — k (md)|50|1000| |Reservoir height — h (m)|10|300| |Volume formation factor — B (m3/m3)|1|2| |Wellbore storage|0.01|5| |Skin|-2|5| |Flow rate - m3/d|100|1000| |Porosity|20%|20%|20%| |Total compressibility (cm2/kgf)|1e-5|1e-5|1e |Viscosity — $\mu (cp)$*|1|1| |Well radius - m|0.108|0.108|
Owner
- Name: Petróleo Brasileiro S.A.
- Login: petrobras
- Kind: organization
- Website: https://petrobras.com.br
- Repositories: 1
- Profile: https://github.com/petrobras
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use any resource published in this repository, please cite it as below." authors: - family-names: "Moreira Araújo" given-names: "Rodrigo" email: rodrigoma@petrobras.com.br affiliation: Petróleo Brasileiro S.A. orcid: "https://orcid.org/0000-0001-5341-1549" - family-names: "Kenji Kubota" given-names: "Leonardo" email: lkubota@petrobras.com.br affiliation: Petróleo Brasileiro S.A. orcid: "https://orcid.org/0000-0002-0327-861X" - family-names: "Forero Mendoza" given-names: "Leonardo Alfredo" email: prof.leonardo@ica.ele.puc-rio.br affiliation: Pontifícia Universidade Católica do Rio de Janeiro orcid: "" title: "WPRAutoencoders" version: 1.0.0 date-released: "2022-08-26" url: "https://github.com/petrobras/wprautoencoders"
GitHub Events
Total
- Watch event: 5
- Fork event: 1
Last Year
- Watch event: 5
- Fork event: 1
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: less than a minute
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- rodrigo-m-araujo (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- matplotlib ==3.5.3
- numpy ==1.23.3
- openTSNE ==0.6.2
- pandas ==1.4.3
- scikit-learn ==1.1.2
- scipy ==1.9.0
- seaborn ==0.11.2
- tensorflow ==2.10.1