GemPy structural geology uncertainty modeller
A GemPy 3 project for constructing a three-dimensional structural geological model and testing how contact and orientation uncertainty changes the interpretation.
Software compatibility
The geomodel, uncertainty scripts, and visualisation workflow are delivered for a pinned GemPy 3 environment. Leapfrog Geo, Micromine, Surpac, and Datamine project files are not included.
Project definition
Problem statement
Sparse contacts and orientations can support multiple plausible subsurface geometries, especially near faults, folds, unconformities, and areas without observations.
Project objectives
- Build a selected stratigraphic and fault framework from prepared observations.
- Validate coordinates, formations, orientations, ordering, and structural relationships.
- Generate an implicit three-dimensional geological model and sections.
- Perturb contact and orientation inputs within documented uncertainty ranges.
- Map where model geometry and unit assignment are stable or uncertain.
System design
System modules
Input registry
Stores contact points, orientations, formations, faults, topography, source, and confidence.
Structural framework
Defines series, stratigraphic order, faults, unconformities, and their relationships.
GemPy model
Builds the implicit scalar fields, surfaces, volumes, and sections.
Uncertainty runner
Creates controlled input perturbations and repeated geological realisations.
Model analyser
Compares unit probabilities, surfaces, topology, volumes, and sections.
Methodology
System workflow
- 01Validate observations
Coordinates, labels, dips, azimuths, and geological relationships are checked.
- 02Build baseline
A deterministic structural model is calculated and reviewed in map and section.
- 03Define uncertainty
Permitted positional and orientation ranges are assigned by data source.
- 04Generate realisations
Repeated models sample the documented uncertainties.
- 05Compare
Stable and uncertain units, contacts, faults, and volumes are mapped.
Demonstration scenario
A folded stratigraphic sequence with one fault is modelled from sparse contacts and orientations. Repeated realisations show a stable shallow contact but high uncertainty in a deeper faulted unit, visible in sections and probability volumes.
Engineering
Technical architecture
- Environment
- Pinned GemPy 3 and Python environment with PyVista visualisation.
- Model
- Implicit interpolation from contact and orientation data with documented structural relations.
- Uncertainty
- Seeded perturbation or probabilistic sampling with saved input realisations.
- Verification
- Input reconstruction, section checks, topology review, and synthetic known-geometry cases.
Testing
Evaluation
Evaluation measures
- Input reconstruction and formation-order correctness
- Surface and unit agreement in synthetic reference cases
- Topology consistency across realisations
- Contact-position and unit-volume uncertainty
- Sensitivity to observation density and orientation error
- Runtime and memory across grid and realisation counts
System boundaries
- Only the pinned GemPy 3 environment is delivered.
- The model is an interpretation of the supplied observations, not a direct image of the subsurface.
- No proprietary geomodelling project formats are included.
- Drilling, resources, hazards, and construction decisions require qualified geologists and additional field and subsurface evidence.
Included
- 01Versioned contacts, orientations, topography, and model extent
- 02GemPy structural model and uncertainty scripts
- 033D surfaces, sections, topology, and uncertainty visualisations
- 04Prepared geological inputs, scenarios, and results
- 05Complete source code in a private GitHub repository
- 06Complete project documentation with synopsis, abstract, methodology, geological sections, uncertainty results, screenshots, and conclusion
- 07Setup and usage guide
Project record
No buyer information is collected on this page.
- Permanent project ID
- GP-GE-09TN3PB
- Catalogued
- 22 Aug 2026
- Completed
- Pending
- Verified
- Pending
- Demonstration
- Added when ready
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.