Skip to main content

The petek subsurface-modelling suite — installs the whole family (petektools, petekio, petekstatic, peteksim)

Project description

petekSuite

petekSuite is the umbrella for a subsurface-modelling ecosystem: a small family of Rust libraries (with Python bindings) that take raw subsurface data all the way to static volumes and dynamic forecasts. The suite root itself builds no code — it coordinates the peer libraries, keeps their seams coherent, and holds the shared conventions ("the petek house style") that make them a family rather than a monolith.

Dependencies flow one direction, downward only — no cycles, no sideways sharing of code. Libraries share conventions freely and share code only downward through the graph; each library stays usable standalone.

                          ┌─────────────────────────────────────────┐
   petekIO      DATA      │  ingest · normalize · validate ·         │
      │                   │  interpret → model-ready inputs          │
      ▼                   └─────────────────────────────────────────┘
   petekStatic  GEOMODEL   structural framework · grid · property
      │                    modelling · volumetrics + static uncertainty
      ▼
   petekSim     SIMULATION dynamic / engineering forecast · PVT ·
                           the `peteksim` Python product facade

   petekTools   TOOLKIT    horizontal · shared · domain-agnostic:
                           numeric kernels + units + container + viewer
                           (serves every layer)

The libraries

petekIO — the DATA layer

Ingests, normalizes, validates, and interprets subsurface data (wells, surfaces, logs, seismic) into clean, model-ready inputs. A standalone Rust data-model + IO library with optional PyO3 bindings — data only, no modelling framework. Composes mature crates (las_rs, geo/geozero, ndarray, rstar, giga-segy) behind its own IO traits.

petekStatic — the GEOMODEL layer

Turns model-ready inputs into a populated StaticModel: the structural framework (horizons + faults + zones), grid construction, and property modelling (facies/petrophysics, geostatistics, trend population, log upscaling). It owns volumetrics + static uncertainty — GRV / in-place volumes off the model itself, Monte-Carlo over model realizations, and tornado analysis — producing a StaticModel plus probabilistic (P90/P50/P10) curves.

petekSim — the SIMULATION layer

Dynamic and engineering simulation: recoverable volumes and forecasting (decline, p/z, material balance, and later full dynamic flow), plus PVT. It ships the productpeteksim, the Python-facing appraisal toolkit that presents the whole stack behind one façade.

petekTools — the horizontal TOOLKIT

Domain-agnostic, shared numerics that serve every layer: the scattered-data gridding / kriging / warm-start / geostatistics kernels Rust lacks, a units system, the liftable container format, and a generic bundle viewer. A pure leaf — it depends on none of the others; they build on it.

Install

The whole suite installs with one command:

pip install peteksuite     # the meta-package: pulls all four libraries

The umbrella package also exposes short notebook imports:

from peteksuite import pio, pto, pst, ps

Every library is also directly installable from both crates.io (Rust) and PyPI (Python) — one crate and one wheel per library:

Library version pip Status
petekTools 0.2.7 pip install petektools live
petekIO 0.3.8 pip install petekio live
petekStatic 0.1.11 pip install petekstatic live
petekSim 0.1.9 pip install peteksim live

Rust (crates.io)

cargo add petektools@0.2.7     # TOOLKIT — numeric kernels, units, container
cargo add petekio@0.3.8        # DATA    — ingest + model-ready inputs
cargo add petekstatic@0.1.11   # GEOMODEL — StaticModel build + volumetrics + MC
cargo add peteksim@0.1.9       # SIMULATION — the appraisal facade over the stack

Python (PyPI)

pip install petektools==0.2.7
pip install petekio==0.3.8
pip install petekstatic==0.1.11   # static workflow API, StaticModel, volumes + bundles
pip install peteksim==0.1.9       # the full appraisal facade over the whole stack

Dependencies resolve automatically in DAG order (peteksim pulls the stack; petekstatic pulls petekio + petektools).

License

The suite is split by layer:

Library License
petekTools Apache-2.0
petekIO Apache-2.0
petekStatic Business Source License 1.1 (converts to Apache-2.0)
petekSim Business Source License 1.1 (converts to Apache-2.0)

The horizontal toolkit and the data layer are permissively licensed (Apache-2.0). The geomodel and simulation layers ship under the Business Source License 1.1, each released version converting to Apache-2.0 on its change date. See each library's own LICENSE / NOTICE for the authoritative terms.

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

peteksuite-0.1.8.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

peteksuite-0.1.8-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file peteksuite-0.1.8.tar.gz.

File metadata

  • Download URL: peteksuite-0.1.8.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for peteksuite-0.1.8.tar.gz
Algorithm Hash digest
SHA256 04cb6b195711f7e9c194f6fdb198e2e744aa07f99ab62705eeec23787ca2a56e
MD5 07a59aa5f9f61bc54319a55a7e22b6b8
BLAKE2b-256 2a8f07e991c629a7f89bf0d6d2b30d9f7c6e3eee9fb4cea01788ff18b3890505

See more details on using hashes here.

Provenance

The following attestation bundles were made for peteksuite-0.1.8.tar.gz:

Publisher: release.yml on kkollsga/peteksuite

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

File details

Details for the file peteksuite-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: peteksuite-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for peteksuite-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 eb44cbcc02dbc21d682e55f480681288af4faa91d3320b1f5f7805c7864692d7
MD5 4b3a373aac06a069f595c3cbfdb51c02
BLAKE2b-256 9b1438ba1d79e0fdf17910beed7e3aa07c36e6b6c5e9ac0254f871c1016ad95e

See more details on using hashes here.

Provenance

The following attestation bundles were made for peteksuite-0.1.8-py3-none-any.whl:

Publisher: release.yml on kkollsga/peteksuite

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