Skip to main content

Geology - Professional Geological Model Reconstruction Toolkit

Python Version PyPI version PyPI - Downloads License: MIT Documentation Status Code style: black

📦 Package Status: Successfully published on Test PyPI as geology-Marios-toolkit
🚀 Installation: pip install --index-url https://test.pypi.org/simple/ geology-Marios-toolkit

A comprehensive Python toolkit for geological model reconstruction using advanced inpainting techniques and machine learning methods.

This repository contains a professional implementation for geological subsurface model reconstruction from sparse data using state-of-the-art computational methods. The toolkit combines biharmonic inpainting, machine learning classification, and uncertainty quantification to create robust geological models from incomplete datasets.

Geological Model

🧬 Scientific Overview

Geological subsurface characterization often faces the challenge of sparse and irregularly distributed data points. This toolkit addresses this fundamental problem by implementing advanced computational methods for geological model reconstruction:

  • 🔬 Biharmonic Inpainting: Smooth interpolation preserving geological boundaries and structural continuity
  • 🤖 Machine Learning Classification: One-vs-all and probabilistic classification for multi-class geological units
  • 📊 Weighted Interpolation: Anisotropic interpolation respecting geological fabric and preferential directions
  • 📈 Uncertainty Quantification: Comprehensive uncertainty analysis with confidence intervals and error propagation
  • 🎯 3D Visualization: Professional VTK-based visualization for geological models and validation

🚀 Key Features

Core Functionality

  • Advanced Inpainting Algorithms: Biharmonic PDE-based interpolation for geological boundaries
  • Multi-Class Classification: Sophisticated geological unit prediction with uncertainty estimates
  • Anisotropic Interpolation: Directional interpolation respecting geological structures
  • Memory-Efficient Processing: Batch processing for large geological datasets
  • Cross-Platform Compatibility: Windows, Linux, and macOS support

Data Integration

  • Multiple Data Formats: Support for borehole logs, geological surveys, and geophysical data
  • Geospatial Integration: Native support for coordinate systems and geospatial data formats
  • Quality Control: Automated data validation and outlier detection
  • Missing Data Handling: Robust algorithms for incomplete geological datasets

Visualization and Export

  • Professional 3D Visualization: High-quality geological model rendering
  • Publication-Ready Figures: Scientific plotting with geological colormaps and annotations
  • VTK Export: Compatible with ParaView, VisIt, and other professional visualization software
  • Interactive Dashboards: Jupyter notebook integration with interactive widgets

📁 Project Structure

Geology/
├── 📓 demo.ipynb                    # Main demonstration notebook with examples
├── 📋 requirements.txt              # Core dependencies
├── 🏗️ setup.py                     # Professional package configuration
├── 📖 README.md                     # This comprehensive guide
├── 📊 Data Files/
│   ├── geotop.npy                   # 3D geological model data
│   ├── top_layer.gpkg              # Geological layer (GeoPackage format)
│   ├── data_final.xlsx             # Processed geological dataset
│   └── real_model.npy              # Reference geological model
├── 🧮 gridder/                     # Geological gridding and inpainting
│   ├── __init__.py                 # Module initialization
│   └── gridder.py                  # Core geological algorithms
├── 🎨 geo_vtk/                     # Professional VTK visualization tools
│   ├── src/vtkclass/               # VTK conversion classes
│   ├── data/                       # Example geological datasets
│   └── README.md                   # VTK toolkit documentation
├── 🖼️ images/                      # Documentation figures and results
├── 📚 docs/                        # Comprehensive documentation
└── 🧪 tests/                       # Automated testing suite

📦 Installation

PyPI Package Available!

Geology is now available on the Python Package Index (PyPI), making installation as simple as:

pip install Geology

This command installs the complete geological toolkit with all core dependencies. For specialized applications, optional dependencies are available through extras (see installation options below).

🚀 Quick Start

Prerequisites

  • Python 3.8+: Modern Python with scientific computing support
  • Jupyter Notebook: For interactive geological modeling workflows

Installation Options

# Install from PyPI (simplest method)
pip install Geology

# Launch interactive notebook
jupyter notebook demo.ipynb

Option 2: PyPI with Enhanced Features

# Install with visualization enhancements
pip install Geology[visualization]

# Install with geospatial capabilities  
pip install Geology[geospatial]

# Install with development tools
pip install Geology[dev]

# Install complete toolkit with all features
pip install Geology[all]

Option 3: Test PyPI Installation (For Testing)

# Install from Test PyPI (currently available)
pip install --index-url https://test.pypi.org/simple/ geology-Marios-toolkit

# Note: Test PyPI installation may have dependency issues
# as not all dependencies are available on Test PyPI

Option 4: Development Installation from Source

# Clone the repository
git clone https://github.com/mariosgeo/Geology.git
cd Geology

# Install in development mode
pip install -e .

# Or install with development tools
pip install -e .[dev]

Option 5: Manual Installation from Source

# Clone and set up from source
git clone https://github.com/mariosgeo/Geology.git
cd Geology

# Install core dependencies
pip install -r requirements.txt

# Install package
pip install .

Quick Example

import geology
import numpy as np

# Create geological gridder
geo_model = geology.create_geological_model()

# Set up geological grid
geo_model.make_grid(dx=1.0, dy=1.0)  # 1m resolution

# Load borehole data and perform gridding
geo_model.gridder()

# Perform geological inpainting
geo_model.one_vs_all(x_weight=1.0, y_weight=3.0)  # Anisotropic weights

# Create 3D visualization
vtk_converter = geology.create_vtk_converter()
vtk_converter.make_3d_grid_to_vtk('geological_model.vtk', 
                                  geo_model.prediction_data,
                                  x_coords, y_coords, z_coords)

print(f"Geology package version: {geology.get_version()}")
print(f"Geological model created with {geo_model.uncertainty:.2%} average uncertainty")

🛠️ Package Development Status

✅ COMPLETED (Package is Built and Available):

  • ✅ Package configuration (setup.py, pyproject.toml)
  • ✅ Distribution files created and tested
  • ✅ Successfully uploaded to Test PyPI
  • ✅ Package name: geology-Marios-toolkit

🚀 Current Package Access:

Test PyPI (Available Now):

pip install --index-url https://test.pypi.org/simple/ geology-Marios-toolkit

Production PyPI (Coming Soon):

pip install geology-Marios-toolkit

📝 Package Information:


🌍 Advancing Geological Understanding Through Machine Learning 🌍

Made with ❤️ for Geoscience Python Test PyPI VTK Open Science

Now available on Test PyPI: pip install --index-url https://test.pypi.org/simple/ geology-Marios-toolkit

Metadata

Release files for Geology 1.0.0

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

Source distribution (sdist)

Source distribution for Geology 1.0.0
File Size Uploaded
geology-1.0.0.tar.gz 17.8 MB Details

Built distribution (wheel)

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

Total release size: 33.9 MB

Release files / geology-1.0.0.tar.gz

Download URL geology-1.0.0.tar.gz
Size 17.8 MB
Tags Source
SHA-256 checksum
How to use checksums
89425dd4588bcc5f281070df098735e581cf1eb9c778167bd877a86b96ca1c8c
BLAKE2b-256 checksum
How to use checksums
1d9c9d2a62c3735c7a0188d121eccddbf0bd2af03db7a9dee2139c8382b32425
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / geology-1.0.0-py3-none-any.whl

Download URL geology-1.0.0-py3-none-any.whl
Size 16.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
53af9eb0c3e3cbfe7bbeb0997ea8ecf7701ff663d8c4bd650617d151a9e0c547
BLAKE2b-256 checksum
How to use checksums
a0d8c2c53158bc276fcb0743b86c0e509245fd51787119628c209075fd5f968c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

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