← Back to project catalogue
GP-GE-19DUJV0GeologyReady

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.

Borehole-log electrofacies interpretation and uncertainty study project visual
GP-GE-19DUJV0 · Geology
  • Python 3.12
  • lasio
  • NumPy
  • Pandas
  • SciPy
  • scikit-learn
  • Matplotlib

Software compatibility

Python 3.12 and the retained FORCE 2020 derivative only

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

01

Archive screening

Reads all 118 LAS files, measures labelled rows, curve completeness, class diversity, and quality, then applies the declared pre-model selection rule.

02

Petrophysical preparation

Applies physical bounds, missingness indicators, borehole-quality flags, broad facies mapping, rolling medians, gradients, and log-resistivity transforms.

03

Interpretation models

Compares explicit gamma-ray and porosity rules with a class-balanced multinomial logistic model.

04

Uncertainty analysis

Applies temperature scaling, controlled depth smoothing, split-conformal prediction sets, selective review, and a 1,000-resample well bootstrap.

05

Evidence delivery

Retains the processed subset, source manifest, model, predictions, exact tables, figures, tests, references, and editable documentation.

Methodology

Project workflow

  1. 01
    Verify the source

    The official archive checksum, licence, LAS inventory, and screening measurements are recorded before analysis.

  2. 02
    Prepare intervals

    Measurements are cleaned under physical rules and ordered within each well without inventing missing values.

  3. 03
    Separate wells

    Nine wells train the model, three calibrate it, and three remain untouched for final testing.

  4. 04
    Fit and quantify

    The workflow fits the baseline and learned model, calibrates probabilities, smooths within well boundaries, and forms prediction sets.

  5. 05
    Evaluate 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

  1. 01Complete Python source code
  2. 02Processed public-data subset with source provenance and screening records
  3. 03Trained electrofacies model and retained prediction evidence
  4. 04Well-level validation, rule baseline, calibration, and conformal uncertainty results
  5. 05Thirteen labelled report figures and sixteen report tables
  6. 06Sixty annotated references, including current 2026 work
  7. 07Forty automated tests with 97.73 percent branch-aware coverage
  8. 08Complete project files, calculations, results, and analysis material in a private GitHub repository
  9. 0975-page project documentation in PDF and editable Word formats
  10. 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

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.