Geology - Professional Geological Model Reconstruction Toolkit
📦 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.
🧬 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
Option 1: PyPI Installation (Recommended)
# 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:
- Package Name:
geology-Marios-toolkit - Version: 1.0.0
- Test PyPI URL: https://test.pypi.org/project/geology-Marios-toolkit/
- Dependencies: Full scientific Python stack included
🌍 Advancing Geological Understanding Through Machine Learning 🌍
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)
| File | Size | Uploaded | |
|---|---|---|---|
| geology-1.0.0.tar.gz | 17.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|