Skip to content

maurelia/gemgis

 
 

Repository files navigation

Spatial data and information processing for geomodeling

PyPI PyPI Conda GitHub Binder Read the Docs DOI

Overview

We attempt to simplify the access to open-source spatial data processing for geological modeling with the development of GemGIS, a Python-based open-source library.

GemGIS wraps and extends the functionality of packages known to the geo-community such as GeoPandas, rasterio, OWSLib, Shapely, PyGEOS, PyVista, Pandas, NumPy and the geomodeling package GemPy.

The aim of GemGIS, as indicated by the name, is to become a bridge between conventional geoinformation systems (GIS) such as ArcGIS and QGIS, and geomodeling tools such as GemPy, allowing simpler and more automated workflows from one environment to the other.

Resources

Find the documentation of GemGIS here. It includes introductions to the main libraries used and to introductory topics like "What is vector data?" or "What is raster data?".

In addition, tutorial notebooks provide an overview of the different features of GemGIS. The notebooks can also be downloaded directly from here.

Installation

It is recommended to use GemGIS with python==3.9 in a separated environment. The main packages and its dependencies can be installed via the conda-forge channel. GemGIS is then available through PyPi.

  1. conda install -c conda-forge pygeos
  2. conda install -c conda-forge geopandas
  3. conda install -c conda-forge rasterio
  4. conda install -c conda-forge pyvista
  5. pip install gemgis / conda install -c conda-forge gemgis

Check out the Installation Page for more detailed instructions.

References

  • Jüstel, A., Endlein Correira, A., Wellmann, F. and Pischke, M.: GemGIS – GemPy Geographic: Open-Source Spatial Data Processing for Geological Modeling. EGU General Assembly 2021, https://doi.org/10.5194/egusphere-egu21-4613, 2021
  • Jüstel, A.: 3D Probabilistic Modeling and Data Analysis of the Aachen-Weisweiler Area: Implications for Deep Geothermal Energy Exploration, unpublished Master Thesis at RWTH Aachen University, 2020
  • de la Varga, M., Schaaf, A., and Wellmann, F.: GemPy 1.0: open-source stochastic geological modeling and inversion, Geosci. Model Dev., 12, 1-32, https://doi.org/10.5194/gmd-12-1-2019, 2019
  • Powell, D.: Interpretation of Geological Structures Through Maps: An Introductory Practical Manual, Longman, pp. 192, 1992
  • Bennison, G.M.: An Introduction to Geological Structures and Maps, Hodder Education Publication, pp. 78, 1990

Gallery

Working with Vector Data

Extracting XY values from Vector Data Extracting XYZ values from Vector Data
extracting vertices from vector data extracting vertices from vector data

Exploding Geometries/Vector Data Clipping/Cropping Vector Data
exploding geometries clipping vector dataa

Interpolating Vector Data to Rasters Removing Interface Points within Fault Buffers
interpolating vector data interpolating vector data

Extracting Interface Points and Orientations from Geological Cross Sections Extracting Interface Points from Geological Maps
extracting points from cross sections extracting interface points from geological map

Creating Orientations from Isolines on maps Calculating Orientations from Strike Lines
creating orientations from isolines on maps calculating orientations from strike lines

Delaunay triangulation for isoline maps Delaunay triangulation of Shapely MultiPoints
delaunay triangulation maps delaunay triangulation multipoints

Working with Raster Data

Sampling from Rasters Sampling Interfaces and Orientations from Rasters
sampling from rasters sampling interface points and orientations from rasters

Calculating Raster Properties Additional Raster Operations in GemGIS
calculating raster properties raster operations in gemgis

Working with PolyData and Grids/Meshes in PyVista

Visualizing Spatial Data with PyVista Visualizing Topography and Maps with PyVista
visualizing spatial data visualizing topography and maps

Visualizing Geological Cross Sections with PyVista Creating Depth Maps from GemPy Models
visualizing cross sections creating depth maps from gempy

Creating Temperature Maps from GemPy Models Calculating Thickness Maps from GemPy Models
creating temperature maps creating thickness maps

Visualizing Borehole Data Draping Vector Data over Elevation Model
visualizing borehole data draping vector data over elevation model

Working with Online Services

Working with Web Map Services - WMS Working with Web Feature Services - WFS
web map services web feature services

Working with Web Feature Services - WFS
web coverage services

Parsing data formats

Opening Leapfrog Meshes and GoCad TSurfaces Opening OBJ and DXF Files with PyVista in GemGIS
parsing leapfrog and gocad files parsing obj and dxf files

Opening GeoDataBases for GemGIS Parsing Leapfrog Wells
opening geodatabases opening geodatabases

Working with GPX Data Working with KML Data
working with gpx data working with kml data

Opening ESRI ASC Grids and ZMAP Grids Working with HGT Files
opening asc and zmap files opening hgt files

Additional Functionality

Plotting Orientations with mplstereonet Plotting Hypocenters of Earthquakes with PyVista
plotting orientations plotting earthquake hypocenters

Working with Well Data from the Geological Survey NRW Parsing QGIS Style File to GemGIS
working with nrw well data parsing qgis style files

Obtaining City Locations Creating proj.crs.crs.CRS Objects for GemGIS
obtaining city locations creating pyproj crs object

Fitting plane through earthquake hypocenters Georeferencing Rasters using Rasterio
fitting plane through earthquake hypocenters georeferencing rasters

Slicing GemPy Lith Blocks Assigning physical properties to lith block
slicing gempy lith blocks assigning physical properties to lith block

Creating LineStrings from PyVista Contour Lines
creating linestrings from contour lines

Examples

Example 1 - Planar Dipping Layers Example 2 - Planar Dipping Layers
Example 1 Example 2

Example 3 - Planar Dipping Layers Example 4 - Unconformably Dipping Layers
Example 3 Example 4

Example 5 - Folded Layers Example 6 - Unconformably Folded Layers
Example 5 Example 6

Example 7 - Folded Layers Example 8 - Faulted Dipping Layers
Example 7 Example 8

Example 9 - Faulted Dipping Layers Example 10 - Faulted Folded Layers
Example 9 Example 10

Example 11 - Horizontal Layers Layers Example 12 - Three Point Problem
Example 11 Example 12

Example 13 - Three Point Problem Example 14 - Three Point Problem
Example 13 Example 14

Example 15 - Three Point Problem Example 16 - All features
Example 15 Example 16

Example 17 - Three Point Problem Example 18 - Faulted Folded Layers
Example 17 Example 18

Example 19 - Faulted Folded Layers Example 20 - Sill
Example 19 Example 20

Example 21 - Coal Seam Mining Example 22 - Coal Measures
Example 21 Example 22

About

Spatial data processing for geomodeling

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.6%
  • TeX 0.4%