Skip to main content

petekStatic — the geomodel layer: build a populated static reservoir model and read volumes (OOIP/OGIP) + view bundles from Python (Rust core).

Project description

petekStatic

GEOMODEL layer of the petek subsurface-modelling ecosystem — a Rust library that turns model-ready inputs into a populated StaticModel and owns the static-uncertainty stack over it:

  • Structural framework — horizons + zones (+ faults, planned).
  • Grid construction — the convergent corner-point grid the properties live on.
  • Property modelling — priors, property formulas, log upscaling, and the first PropertyPipeline lowering path; facies/geostatistics grow from there.
  • Volumetrics + static uncertainty — GRV / in-place (OOIP/OGIP) off the model itself, and Monte-Carlo regeneration over static-model realizations (StaticModelTemplate::realize(&RealizationDraw)).

→ a populated StaticModel with its own volumes/P-curve surface, which petekSim (dynamic/engineering simulation + the Python product facade) consumes across the seam.

Documentation

The canonical docs for the whole petek family live on the petekSuite site — petekStatic's pages there:

Where it sits (deps flow one way, downward)

petekIO      DATA       → model-ready inputs (ModelInputs / .pproj)      [upstream]
   ↓
petekStatic  GEOMODEL   → populated StaticModel + volumetrics/uncertainty [here]
   ↓
petekSim     SIMULATION → dynamic/engineering + the Python product        [downstream]

petekTools   TOOLKIT    → gridding/kriging/warm-start kernels + units + pproj  [horizontal]

Python workflow facade

petekStatic now owns the first Python slice of the canonical static workflow. The facade is deliberately small: declare the grid, assign properties, calculate formulas through petekTools, and run deterministic smoke volumes.

import petekstatic as pst

grid = (
    pst.Grid.from_project(project)
    .geometry(cell=(50.0, 50.0), orient=0.0, outline="ModelEdge")
    .horizons(["Top reservoir", "Base reservoir"], tie_to_tops=True)
    .zones({"Reservoir": ("Top reservoir", "Base reservoir")})
    .layers({"Reservoir": pst.Layering(n=4)})
)

p = grid.properties
p.ntg = 0.80                         # scalar assignment broadcasts to the grid
p.por = p.ntg * 0.85                 # assignment expression via petekTools
p.sw = 0.20
p["PermXY_BC"].set(100.0)
p["PorE_BC"].set(0.25)
p.calc(["RQI = $lambda * sqrt(PermXY_BC / PorE_BC)"], params={"lambda": 0.0314})

result = grid.volumes(ntg="NTG", por="POR", sw="Sw", fluid="oil", fvf=1.30).run(progress=True)

Property recipes use the same facade and lower to the Rust PropertyPipeline shape:

logs = project.logs
vgm = pst.Var("spherical", major=1500, minor=700, vertical=20, azimuth=35)

p.por = pst.upscale(logs.PHIE(logs.NetSand > 0.50)).sgs(
    variogram=vgm,
    distribution=pst.distributions.from_logs(),
    seed=12,
)

spec = p.pipelines("por")            # serialization-ready PropertyPipelineSpec

If the project or source resolves positioned wells, p.execute_pipeline("por") returns a Rust-backed pst.PropertyPipeline handle:

iso = pst.Var("spherical", major=1500, minor=1500, vertical=1500, azimuth=0)
p.ntg = pst.upscale(logs.NetSand).sgs(
    variogram=iso,
    distribution=pst.distributions.from_logs(),
    seed=11,
)
pipe = p.execute_pipeline("ntg")
smoke_model = pipe.apply_to_flat_model()

Applying that handle to an arbitrary production grid is not exposed yet; PropertyPipeline.apply_to_flat_model(...) is the current smoke execution path. Lazy logs, cokriging/trend binding, non-from_logs distributions, and anisotropic Rust execution are guarded explicitly. Anisotropic pst.Var(...) specs are still preserved and can be lowered to the petekTools anisotropic variogram object.

Status — built and green

A single crate, petekstatic (0.1.2), whose modules preserve the historical layer boundaries and one-directional imports: petekstatic::{error, wireframe, grid, petro, gridder, volumetrics, uncertainty, data, spill, model} — with the top-of-DAG model surface (the StaticModel aggregate + the ratified MC-regeneration seam) re-exported at the crate root. Consolidated from the former ten-crate workspace on 2026-07-05 (owner ruling; the former srs-* and petekstatic-error package names are retired). The volumetrics/uncertainty code relocated here from petekSim on 2026-07-03 (the layer-charter re-scope). Design constitution: SPEC.md; public contract: API.md. Working folders: dev-docs/README.md, inbox/README.md.

Licensing

petekStatic is licensed under the Business Source License 1.1 — see LICENSE. Non-production use is freely granted; production use is permitted by the Additional Use Grant except as a competing commercial "as-a-service" offering of the Licensed Work's functionality. Each released version converts to the Change License (Apache-2.0) four years after its first publication. For alternative licensing, contact kkollsg@gmail.com. (The {VERSION} / Change Date parameters are filled in at each release cut.)

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

petekstatic-0.1.4.tar.gz (387.4 kB view details)

Uploaded Source

Built Distributions

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

petekstatic-0.1.4-cp310-abi3-win_amd64.whl (558.9 kB view details)

Uploaded CPython 3.10+Windows x86-64

petekstatic-0.1.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (689.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

petekstatic-0.1.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (650.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

petekstatic-0.1.4-cp310-abi3-macosx_11_0_arm64.whl (628.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

petekstatic-0.1.4-cp310-abi3-macosx_10_12_x86_64.whl (669.5 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file petekstatic-0.1.4.tar.gz.

File metadata

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

File hashes

Hashes for petekstatic-0.1.4.tar.gz
Algorithm Hash digest
SHA256 03b58d64ef0b2bc718ddec43808c83a1d9f1cd9639614945491e5d2d5e64b6bf
MD5 2331648a9abad6d4fe6cb13671770da5
BLAKE2b-256 5d1e497126d5e701708e442e518a883d25e6a2c3d092651f3f38e412f862a665

See more details on using hashes here.

Provenance

The following attestation bundles were made for petekstatic-0.1.4.tar.gz:

Publisher: release.yml on kkollsga/petekstatic

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

File details

Details for the file petekstatic-0.1.4-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: petekstatic-0.1.4-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 558.9 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for petekstatic-0.1.4-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4c01ad695fbb5a4bf356da3afe63b3829f946e3dd15cbe894358e77e09c5afbf
MD5 7a95747d13358592aa0c25849328c269
BLAKE2b-256 6fbd8b09b0ce97b63248391fbf0a759e8fe3c812918d3e74c7e89ff82d81b0af

See more details on using hashes here.

Provenance

The following attestation bundles were made for petekstatic-0.1.4-cp310-abi3-win_amd64.whl:

Publisher: release.yml on kkollsga/petekstatic

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

File details

Details for the file petekstatic-0.1.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for petekstatic-0.1.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 65c7b043dde3bcdd41bffc2e89086466b503b2115fba8e1a3eea276e534e90cb
MD5 d158501627bbf8b4e1b9f5d3a40db059
BLAKE2b-256 0a72c4c96c4019eb1fdd4fcdc320ed141e7e594c9095f7b923e3744752ae6669

See more details on using hashes here.

Provenance

The following attestation bundles were made for petekstatic-0.1.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on kkollsga/petekstatic

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

File details

Details for the file petekstatic-0.1.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for petekstatic-0.1.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fddc1e4d2f80bce52175a7e7ad82f92bc9ce0d1a014f4319bbacbb58750c8ec4
MD5 2e97194d04efb60c624ac3bc6957abb8
BLAKE2b-256 9d94bc6d5a9e60b5e29d72c8c8a7b9bad93056724184688a9aaf01abf67f36c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for petekstatic-0.1.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on kkollsga/petekstatic

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

File details

Details for the file petekstatic-0.1.4-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for petekstatic-0.1.4-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48abae377dd35de815e8befd24bd1d1bc2f0dd7b0c97894cde419baa59376b9c
MD5 c3959b76f7d7534e6df940954944af16
BLAKE2b-256 20b36e2bf112ec1addd6724d895696071388b25a55292dd786330bf753bef32f

See more details on using hashes here.

Provenance

The following attestation bundles were made for petekstatic-0.1.4-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on kkollsga/petekstatic

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

File details

Details for the file petekstatic-0.1.4-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for petekstatic-0.1.4-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c29185f685651461d6fc080342b717554b7d770474fc7025d925d675dfd531dd
MD5 b635ad19190b9ad99ed38b7235852411
BLAKE2b-256 f46cb088d68677f762b75ec46c3ec5e253b08b510c6c2e1b2d1690c97177edfa

See more details on using hashes here.

Provenance

The following attestation bundles were made for petekstatic-0.1.4-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on kkollsga/petekstatic

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