Skip to main content

Lightweight library for corner-point reservoir grid modeling, visualization and property modeling.

Project description

Banner

Lightweight Python Library for Static Reservoir Modeling

DocumentationInstallationQuick Start

License Python Version Documentation

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 .GRDECL file 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

petres-0.1.2.tar.gz (6.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

petres-0.1.2-py3-none-any.whl (143.5 kB view details)

Uploaded Python 3

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

Hashes for petres-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ec6b077a73651bb9e87e6d8c3595d895856050def4f6d50ec05b68110eff44bd
MD5 d0a16ab68e74f2af36e3308e67e3dc0a
BLAKE2b-256 2d23070080340709dcd61faaab8e6b538ae7bb1fd59ad8c8713c5c82a95be8d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for petres-0.1.2.tar.gz:

Publisher: pypi.yml on jamalbaylit/petres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for petres-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 83205e308a4ce4f22985412e01cc8d315d0e8766c80d9559fb52763f6f57d903
MD5 e6028d1e7bb19471e3abec7390334c57
BLAKE2b-256 3a23199746831348c28c4815179fb654ce8f390b0db49c4ab1ffeb0cae2804fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for petres-0.1.2-py3-none-any.whl:

Publisher: pypi.yml on jamalbaylit/petres

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page