Skip to main content

logSuite

Petrophysical well-log analysis in Python. Load LAS files, set a project palette once, fit per-facies regressions, and export deliverable-ready SVGs — without writing matplotlib glue.

PyPI version Python CI License Documentation

Why logSuite

The library aims to stop you from writing the boilerplate that usually surrounds a reservoir-engineering notebook:

  • No per-well loops. manager.PHIE.filter("Facies").data(weighted=True) returns one DataFrame across every well, with depth-interval weights for pooled percentiles.
  • No monkey-patching. xplot.add_regression_per("Facies", "exponential") fits one line per facies; the line colours come from manager.Facies.colors automatically.
  • No matplotlib glue. xplot.add_table_panel(stats); xplot.save("deliverable.svg") produces the SCAL/DG3 figure as one file.
  • No equation rewriting. equation_format="petrel" renders fitted exponentials as pow(10, c1*x + c0) — paste straight into Petrel.

Installation

pip install logsuite

Requires Python 3.10+, numpy, pandas, scipy, matplotlib.

Quick start

from logsuite import Crossplot, WellDataManager, set_quiet

set_quiet(True)                                    # silence broadcast prints
manager = WellDataManager()
manager.load_las("12_3-2_B.las").load_las("12_3-2_C.las")
manager.Facies.colors = {0: "#999999", 1: "#3b82f6", 2: "#10b981"}

xplot = Crossplot(manager, x="PHIE", y="PERM", color="Facies", y_log=True,
                  equation_format="petrel", decimals=3)
xplot.add_regression_per("Facies", "exponential", legend_loc="upper left")
xplot.save("poroperm.svg")

Seven lines. One regression line per facies in the manager palette, legend equations in Petrel syntax, ready for Word.

What's in the box

Class Role
WellDataManager Load and orchestrate wells; the data substrate every consumer reads from.
ManagerView Read-only filtered subset of a manager (manager.filter(wells=, where=)).
Property, Well Domain objects with depth-aligned arithmetic and chained filtering.
Crossplot 2D scatter with .add_regression(...), .add_regression_per(...), .add(...), .add_table_panel(...).
WellView, Template Single-well log display configured via a track template.
RegressionFit, Artifact Renderable result objects added to consumers via .add(). Equations available in natural / log10 / Petrel form.

Common workflows

Each is a runnable script in story_tests/ and a how-to guide in the docs:

Task How-to Script
One regression per facies / zone / well fit-regressions-per-group story_1_regression_subset.py, story_5_per_group_regressions.py
Project palette flowing into every plot set-discrete-colors story_2_property_colors.py
Pooled raw-data DataFrame across wells pool-data-across-wells story_3_pooled_data.py, story_6_pooled_extraction.py
Petrel-syntax regression equations export-petrel-equations story_4_petrel_equations.py
Crossplot + stats table in one SVG build-scal-deliverable story_7_scal_deliverable.py
Single-well log display display-well-logs story_8_log_plot.py

Documentation

logsuite.readthedocs.io

Architecture

The library follows a strict layered-dependency rule documented in ARCHITECTURE.md. Lower layers do not know consumers exist; data flows up — never down. The design exists to keep the API small and predictable as features are added.

License

MIT — see LICENSE.

Metadata

Release files for logsuite 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for logsuite 0.2.4
File Size Uploaded Provenance
logsuite-0.2.4.tar.gz 265.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for logsuite 0.2.4
File Interpreter ABI Platform
logsuite-0.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 447.0 kB

Release files / logsuite-0.2.4.tar.gz

Download URL logsuite-0.2.4.tar.gz
Size 265.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9baec72586d50dbca5ef0209bed5b4c9faf37d1500e5daf74c0a43d9c6dbef11
BLAKE2b-256 checksum
How to use checksums
686c8e5baf4fd0e43e037dcbbc75712eecf4e87277ac6678c50738cf1ff2cfe6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / logsuite-0.2.4-py3-none-any.whl

Download URL logsuite-0.2.4-py3-none-any.whl
Size 181.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
75d93535683ee0806f5ca3232993a2d9df9d5411c8e027167409287a63a3d110
BLAKE2b-256 checksum
How to use checksums
ce7b5a50f39f09dd3eb6d1c1fe27e696a688eaba034bf6f79c76a1d77a1bee0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Security for logsuite 0.2.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page