quick_pp: Integrated Petrophysical Evaluation & Subsurface Modeling¶
quick_pp is a comprehensive Python package and full-stack web platform for deterministic and probabilistic petrophysical evaluation, Special Core Analysis (SCAL) & relative permeability modeling, multi-well Free Water Level (FWL) & Formation Pressure Testing (FPT) contact analysis, stratigraphic log normalization, core-log calibration & depth matching, automated FDP report generation, and static-to-dynamic geomodeling upscaling.
Core Capabilities¶
- Multi-Mineral, Clastic & Thomas-Stieber Petrophysics (
quick_pp.lithology,quick_pp.porosity,quick_pp.saturation,quick_pp.permeability): Sand-Silt-Clay (modified Kuttan), Carbonate, optimization-based Multi-Mineral solver, and Thomas-Stieber laminated sand-shale evaluation (VSH_LAM,VSH_DISP,VSH_STR,PHIT_TS,PHIE_TS,PHISAND_TS) with Simandoux, Indonesian, Dual-Water, Waxman-Smits, Juhasz, and Archie saturation models. - Multi-Well Contact, Swirr & Formation Pressure Testing (FPT) (
quick_pp.saturation,quick_pp.fluid_type): Simultaneous multi-well Free Water Level (\(\text{FWL}\)), Oil-Water Contact (\(\text{OWC}\)), and Top of Transition Zone (\(\text{TTZ}\)) solver reconciling resistivity-derived \(S_w\), capillary pressure Saturation-Height Models (\(S_{w,\text{SHM}}\) via Leverett-\(J\), Skelt-Harrison, and Cuddy), multi-well irreducible water saturation (Swirrvia RQI, Semi-log \(k\), and Timur correlations), and wireline formation tester (MDT/RFT) pressure gradient regression (FormationPressureAnalyzerwith OLS/Huber/RANSAC, automatic supercharge/tight flagging, in-situ fluid density, and Monte Carlo P10/P50/P90 GOC/OWC/GWC contact intersections). - Rock Typing & Supervised Rock Flag Classification (
quick_pp.rock_type): Hydraulic Flow Unit (FZI,RQI,GHE), Winland \(R_{35}\), and Pittman pore-throat rock typing, plus standalone multi-wellRandomForestClassifierrock-type training, cross-validation, and uncored well prediction (train_and_validate_rock_type_classifier,predict_with_saved_rt_classifier) using both raw logs and calculated petrophysical curves (PHIT,VSAND,VSHALE,VSILT,VCLAY,VDL). - Special Core Analysis (SCAL), Core Calibration & Depth Matching (
quick_pp.scal,quick_pp.core_analysis): Laboratory-to-reservoir core plug corrections (hydrostatic/uniaxial overburden compaction, Klinkenberg gas slippage, and Dean-Stark clay-bound water reconciliation preserving ambientCPORE_AMB/CPERM_AIRlineage), interactive core-to-log depth shifting (piecewise linear anchor tables & automated cross-correlation shift suggestion), 1:1 Estimation vs. Core parity crossplots (PHITvsCPORE,PERMvsCPERM), capillary pressure scaling, two-phase relative permeability models (Corey, Brooks-Corey, and LET), automated SCAL curve fitting (fit_relperm), and Eclipse/IntersectSWOFtable generation (generate_swof_table). - Probabilistic Uncertainty & Monte Carlo Engine (
quick_pp.uncertainty): Vectorized Latin Hypercube Sampling (scipy.stats.qmc.LatinHypercube) for volumetric hydrocarbon in-place uncertainty (mc_volumetric_uncertainty), log-level CPI uncertainty propagation (run_cpi_uncertaintyproducingP10/P50/P90curves), and stochastic reservoir summaries (calc_stochastic_reservoir_summary). - Log Blocking & Static-to-Dynamic Upscaling (
quick_pp.upscaling): Petrophysically rigorous blocking (upscale_logs,block_logs) onto cellular geomodel grids with thickness-weighted arithmetic porosity/shale averaging, pore-volume weighted saturation averaging (preservingBVHC), directional & Cardwell-Parsons (1945) power-law permeability bounds (\(k_h, k_{\text{eff}}, k_v, k_v/k_h\)), and majority-vote facies upscaling. - Multi-Well QA/QC, Stratigraphic Normalization & Stick Plots (
quick_pp.qaqc): Zone-by-zone multi-well quantile and histogram log normalization (stratigraphic_normalization/normalize_by_zone), borehole environmental and invasion corrections (apply_environmental_corrections), neutron-density hydrocarbon corrections, automated washout/bad-hole flagging (badhole_flagging), and multi-well structural/stratigraphic Stick Plot cross-sections. - High-Throughput Multi-Format Log Import, Handover Packages & Automated FDP Reports (
quick_pp.las_handler,quick_pp.handover,quick_pp.plotter.report_plots): Fast hybrid LAS 2.0/3.0, DLIS, LIS79, CSV, and Parquet ingestion with mnemonic mapping, unit standardization, and multi-run splicing; zero-friction.ziphandover package generation (build_handover_archive_bytes) with LAS 2.0 exports (~Wellheaders +~ParameterCPI settings), Formation Tops, Fluid Contacts & Perforations (withTVDandTVDSS), Core RCA & MDT LAS point-sets, multi-tab Excel workbooks, EclipseSWOFdecks, and ready-to-run SLB Techlog (import_to_techlog.py) & Emerson Geolog (import_to_geolog.tcl) loader scripts; plus automated 10-section FDP & Single-Well CPI report generation with publication-grade figures and A4 PDF / print HTML export. - Physics-Informed ML & Conformal Prediction (
quick_pp.machine_learning): Domain physics features (RHOMA_APP,AI, Burke'sM_LITH&N_LITH), locally weighted split/cross-conformal intervals (ConformalRegressor,ConformalMultiOutputRegressor), and mineral volumetric closure (EnforceMineralSum).
Quick Installation¶
# Core petrophysics, SCAL, uncertainty & upscaling
uv pip install "quick-pp[core]"
# Machine learning & conformal prediction
uv pip install "quick-pp[ml]"
# Full-stack FastAPI backend, MCP server & database layer
uv pip install "quick-pp[app]"
# Everything (core + ml + app + Jupyter notebooks)
uv pip install "quick-pp[all]"