Petrophysical well log analysis with depth-weighted statistics, hierarchical filtering, and template-driven visualization
Project description
logSuite
Fast, intuitive Python library for petrophysical well log analysis. Load LAS files, filter by zones, compute depth-weighted statistics, and create publication-quality log displays—all in just a few lines.
Key Features
- Lazy Loading — Parse headers instantly, load data on demand
- Numpy-Style Operations —
well.HC_Volume = well.PHIE * (1 - well.SW) - Hierarchical Filtering — Chain filters:
well.PHIE.filter('Zone').filter('Facies').sums_avg() - Depth-Weighted Statistics — Proper averaging for irregular sampling
- Multi-Well Analytics — Cross-well statistics:
manager.PHIE.filter('Zone').percentile(50) - Professional Visualization — Customizable well log displays with templates
- Interactive Crossplots — Scatter plots with color/size/shape mapping by property
- Regression Analysis — Linear, polynomial, exponential, logarithmic, and power regression
- Project Persistence — Save/load entire projects with metadata and templates
Installation
pip install logsuite
Requirements: Python 3.10+, numpy, pandas, scipy, matplotlib
Quick Start
1-Minute Tutorial
from logsuite import WellDataManager
# Load and analyze
manager = WellDataManager()
manager.load_las('well.las')
well = manager.well_12_3_4_A
stats = well.PHIE.filter('Zone').sums_avg()
print(stats['Top_Brent']['mean']) # → 0.182 (depth-weighted)
Three lines to go from LAS file to zonal statistics.
5-Minute Quick Start
Load data:
from logsuite import WellDataManager
import pandas as pd
manager = WellDataManager()
manager.load_las('well_A.las')
manager.load_las('well_B.las')
# Load formation tops from DataFrame
tops_df = pd.DataFrame({
'Well': ['12/3-4 A', '12/3-4 A', '12/3-4 B'],
'Surface': ['Top_Brent', 'Top_Statfjord', 'Top_Brent'],
'MD': [2850.0, 3100.0, 2900.0]
})
manager.load_tops(tops_df, well_col='Well', discrete_col='Surface', depth_col='MD')
Access wells and properties:
well = manager.well_12_3_4_A
phie = well.PHIE
sw = well.SW
print(well.properties) # ['PHIE', 'SW', 'PERM', 'Zone', ...]
print(well.sources) # ['Petrophysics', 'Imported_Tops']
Compute statistics:
# Single filter — group by Zone
stats = well.PHIE.filter('Zone').sums_avg()
# Chain filters — hierarchical grouping
stats = well.PHIE.filter('Zone').filter('Facies').sums_avg()
Create computed properties:
well.HC_Volume = well.PHIE * (1 - well.SW)
well.Reservoir = (well.PHIE > 0.15) & (well.SW < 0.35)
# Apply to all wells at once
manager.PHIE_percent = manager.PHIE * 100
Visualize:
from logsuite import Template
template = Template("basic")
template.add_track(
track_type="continuous",
logs=[{"name": "GR", "x_range": [0, 150], "color": "green"}],
title="Gamma Ray"
)
template.add_track(track_type="depth", width=0.3)
view = well.WellView(depth_range=[2800, 3000], template=template)
view.show()
Save your work:
manager.save('my_project/')
manager = WellDataManager('my_project/') # Load later
Documentation
For detailed guides, API reference, and examples, visit the full documentation:
- Quick Start — Get up and running
- Loading Data — LAS files, tops, and data import
- Wells & Properties — Property types, filtering, computed logs
- Statistics — Depth-weighted statistics and sums/averages
- Visualization — Well log displays and templates
- Regression — Trend fitting and crossplots
- Multi-Well Analysis — Cross-well workflows
- API Reference — Complete class and method documentation
License
MIT — see LICENSE for details.
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
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 logsuite-0.2.2.tar.gz.
File metadata
- Download URL: logsuite-0.2.2.tar.gz
- Upload date:
- Size: 224.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30a47d2077e3136dfe3f5ecd31db35111473f408004d97b39c9af924f54f2477
|
|
| MD5 |
7c476680b3f2f9fbc9e6d9548ad20936
|
|
| BLAKE2b-256 |
1899ad87966cbc41d25d693edaccc76def9549f5db5824538ab5a66c15d28b50
|
File details
Details for the file logsuite-0.2.2-py3-none-any.whl.
File metadata
- Download URL: logsuite-0.2.2-py3-none-any.whl
- Upload date:
- Size: 156.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c5aea8ef5f411f2ba6cbca2f14ed7628ad25cbe94ec5d138b47413a60060a3c
|
|
| MD5 |
d0167defa82ac0f0f8fdc54693b75c09
|
|
| BLAKE2b-256 |
36d49addc2452a0eae35a532d966461db63bf846eddd37aba9344c54a48b2404
|