Borehole-log electrofacies interpretation and uncertainty study
A completed geology and petrophysics study comparing a transparent rule baseline with calibrated, uncertainty-aware electrofacies classification on public North Sea borehole logs.

Software compatibility
The completed workflow uses the checksummed FORCE 2020 archive, the retained 15-well derivative, and pinned Python 3.12 packages. A different facies mapping, well population, archive version, or Python environment requires a new validation run.
Project definition
Problem statement
Borehole-log facies interpretation must combine incomplete measurements, overlapping rock responses, depth context, class imbalance, and uncertain reference labels.
The geology problem is to produce a reviewable broad electrofacies baseline while preventing adjacent samples from the same well from leaking across evaluation partitions.
Project objectives
- Screen the complete public archive before model fitting and retain a compact, diverse 15-well study population.
- Map detailed source lithofacies into seven broad interpretation classes under one documented rule.
- Compare a transparent petrophysical rule baseline with a class-balanced multinomial classifier.
- Evaluate temperature calibration, depth smoothing, conformal prediction sets, and well-level bootstrap uncertainty.
- Retain exact data provenance, models, predictions, tables, figures, tests, references, and documentation.
Project structure
Project components
Archive screening
Reads all 118 LAS files, measures labelled rows, curve completeness, class diversity, and quality, then applies the declared pre-model selection rule.
Petrophysical preparation
Applies physical bounds, missingness indicators, borehole-quality flags, broad facies mapping, rolling medians, gradients, and log-resistivity transforms.
Interpretation models
Compares explicit gamma-ray and porosity rules with a class-balanced multinomial logistic model.
Uncertainty analysis
Applies temperature scaling, controlled depth smoothing, split-conformal prediction sets, selective review, and a 1,000-resample well bootstrap.
Evidence delivery
Retains the processed subset, source manifest, model, predictions, exact tables, figures, tests, references, and editable documentation.
Methodology
Project workflow
- 01Verify the source
The official archive checksum, licence, LAS inventory, and screening measurements are recorded before analysis.
- 02Prepare intervals
Measurements are cleaned under physical rules and ordered within each well without inventing missing values.
- 03Separate wells
Nine wells train the model, three calibrate it, and three remain untouched for final testing.
- 04Fit and quantify
The workflow fits the baseline and learned model, calibrates probabilities, smooths within well boundaries, and forms prediction sets.
- 05Evaluate honestly
Held-out-well results, class metrics, bootstrap intervals, calibration, review thresholds, and random-row optimism are retained and interpreted.
Demonstration scenario
The held-out wells produce 0.4035 accuracy and 0.2951 macro F1, compared with 0.2317 accuracy and 0.1412 macro F1 for the rule baseline. Random-row validation reaches 0.4562 macro F1, exposing a 0.1610 optimism gap. The 90 percent conformal target achieves 0.7881 empirical coverage with a mean set size of 2.87, so the undercoverage is retained as a result rather than hidden.
Engineering
Tools and method
- Tools
- The project uses Python 3.12, lasio, NumPy, Pandas, SciPy, scikit-learn, Matplotlib for subject analysis, simulation, and results.
- Feature layer
- Petrophysical responses are represented through raw curves, log-resistivity, density-neutron separation, missingness, rolling medians, gradients, and caliper quality.
- Model layer
- A scikit-learn pipeline combines median imputation, robust scaling, class balancing, and multinomial logistic probabilities.
- Uncertainty layer
- Temperature scaling, depth smoothing, split-conformal sets, selective review curves, and well-level resampling expose uncertainty.
- Verification
- Forty automated tests, 97.73 percent coverage, linting, package builds, dependency freshness checks, and vulnerability auditing verify the release.
Testing
Evaluation
Evaluation measures
- Accuracy, balanced accuracy, macro F1, weighted F1, and log loss on untouched wells
- Rule-baseline accuracy and macro F1 under the same test partition
- Per-class precision, recall, F1, support, and normalized confusion
- Calibration reliability and confidence distributions for correct and incorrect predictions
- Conformal empirical coverage, mean set size, and single-label fraction
- Well-bootstrap macro F1 interval and random-row optimism gap
Project boundaries
- The seven outputs are broad electrofacies classes and are not unique depositional facies or formation tops.
- The selected wells, mapping, measurements, and labels inherit limitations from the public FORCE 2020 archive.
- Rare classes have limited test support, and the reported conformal result does not meet its nominal coverage target.
- Operational or field interpretation requires local geology, core and image logs, formation context, additional wells, and qualified petrophysicists or geologists.
Included
- 01Complete Python source code
- 02Processed public-data subset with source provenance and screening records
- 03Trained electrofacies model and retained prediction evidence
- 04Well-level validation, rule baseline, calibration, and conformal uncertainty results
- 05Thirteen labelled report figures and sixteen report tables
- 06Sixty annotated references, including current 2026 work
- 07Forty automated tests with 97.73 percent branch-aware coverage
- 08Complete project files, calculations, results, and analysis material in a private GitHub repository
- 0975-page project documentation in PDF and editable Word formats
- 1014-page setup and usage guide in PDF and editable Word formats
Project record
No information is collected on this page.
- Permanent project ID
- GP-GE-19DUJV0
- Catalogued
- 21 Aug 2026
- Completed
- 29 Aug 2026
- Verified
- 29 Aug 2026
- Demonstration
- Included in repository
Handover
After purchase
- 01Payment is confirmed
The project is marked unavailable and cannot be purchased again.
- 02Repository access is granted
The buyer's submitted GitHub account receives access to the private repository.
- 03The purchase record is delivered
The certification sheet is prepared from the reviewed buyer details and sent privately by email.