Lightweight library for corner-point reservoir grid modeling, visualization and property modeling.
Project description
Introduction
Petres is a lightweight, open-source Python library for corner-point reservoir grid generation, property modeling, and visualization. It provides a fully code-driven workflow for static reservoir modeling.
For complete documentation, see the Petres documentation.
Stability Notice
Petres is currently in early development. The API is not yet stable and may change without notice.
Why Petres?
-
Open Access: Free alternative for engineers and students without access to expensive commercial softwares.
-
Scriptable Modeling: Avoid UI complexity and work with code-driven workflows.
-
Fully Customizable: Integrate your own code alongside built-in methods.
-
AI Integration: Use the Python ecosystem to apply AI and Machine Learning techniques.
Features
-
Grid Generation: Construct Corner-Point, Rectilinear, and Regular grids.
Apply boundary polygons to deactivate cells outside the target region. -
Structural Modeling: Generate horizon and zone surfaces from well tops to support grid construction.
-
Property Modeling: Assign petrophysical properties to grid cells using stochastic or deterministic methods, derived attributes, or interpolation from well data.
-
Import & Export Grids: Handle Eclipse grids (SLB reservoir simulator) using the
.GRDECLfile format. Visualize and export modeled Corner-Point grids. -
Visualization: Interactive 2D and 3D rendering of Corner-Point grids, structural zones, horizons, and spatial property distributions.
Installation
Full installation instructions are available in the documentation.
Quickstart
Import and visualize a corner-point grid from a .GRDECL file:
from petres.grids import CornerPointGrid
# Define the path to the ".GRDECL" file containing the grid data
path = r"https://raw.githubusercontent.com/jamalbaylit/petres/v0.1.0/data/opm/norne/grdecl/norne_with_props.grdecl"
# Import corner-point grid from a ".GRDECL" file, including specified properties
grid = CornerPointGrid.from_grdecl(
path,
properties=["PORO", "PERMX"]
)
# Visualize grid
grid.show(scalars="depth", z_scale=5)
# Visualize property
grid.show(scalars="PORO", z_scale=5)
Technical Architecture
| Component | Implementation |
|---|---|
| Grid Operations | High-performance, vectorized array computations using NumPy |
| 2D Plotting | Visualization via Matplotlib |
| 3D Visualization | Interactive rendering and mesh handling via PyVista |
| Kriging Interpolation | Ordinary and Universal Kriging via PyKrige |
| RBF Interpolation | Multi-dimensional Radial Basis Function interpolation via SciPy |
| IDW Interpolation | In-house implementation of Inverse Distance Weighting |
Contact
For questions, bug reports, or collaboration opportunities contact via jamalbaylit@gmail.com or connect via LinkedIn.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file petres-0.1.2.tar.gz.
File metadata
- Download URL: petres-0.1.2.tar.gz
- Upload date:
- Size: 6.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec6b077a73651bb9e87e6d8c3595d895856050def4f6d50ec05b68110eff44bd
|
|
| MD5 |
d0a16ab68e74f2af36e3308e67e3dc0a
|
|
| BLAKE2b-256 |
2d23070080340709dcd61faaab8e6b538ae7bb1fd59ad8c8713c5c82a95be8d3
|
Provenance
The following attestation bundles were made for petres-0.1.2.tar.gz:
Publisher:
pypi.yml on jamalbaylit/petres
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
petres-0.1.2.tar.gz -
Subject digest:
ec6b077a73651bb9e87e6d8c3595d895856050def4f6d50ec05b68110eff44bd - Sigstore transparency entry: 1656712877
- Sigstore integration time:
-
Permalink:
jamalbaylit/petres@8268a027b598a77083880c9c014cb17b9356882a -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/jamalbaylit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@8268a027b598a77083880c9c014cb17b9356882a -
Trigger Event:
push
-
Statement type:
File details
Details for the file petres-0.1.2-py3-none-any.whl.
File metadata
- Download URL: petres-0.1.2-py3-none-any.whl
- Upload date:
- Size: 143.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83205e308a4ce4f22985412e01cc8d315d0e8766c80d9559fb52763f6f57d903
|
|
| MD5 |
e6028d1e7bb19471e3abec7390334c57
|
|
| BLAKE2b-256 |
3a23199746831348c28c4815179fb654ce8f390b0db49c4ab1ffeb0cae2804fd
|
Provenance
The following attestation bundles were made for petres-0.1.2-py3-none-any.whl:
Publisher:
pypi.yml on jamalbaylit/petres
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
petres-0.1.2-py3-none-any.whl -
Subject digest:
83205e308a4ce4f22985412e01cc8d315d0e8766c80d9559fb52763f6f57d903 - Sigstore transparency entry: 1656713026
- Sigstore integration time:
-
Permalink:
jamalbaylit/petres@8268a027b598a77083880c9c014cb17b9356882a -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/jamalbaylit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@8268a027b598a77083880c9c014cb17b9356882a -
Trigger Event:
push
-
Statement type: