Skip to main content

GemGIS is a Python-based, open-source spatial data processing library. It is capable of preprocessing spatial data such as vector data raster data, data obtained from online services and many more data formats. GemGIS wraps and extends the functionality of packages known to the geo-community such as GeoPandas, Rasterio, OWSLib, Shapely, PyVista, Pandas, and NumPy.

Project description

Spatial data and information processing for geomodeling

PyPI PyPI 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 used libraries and to 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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemgis-0.1.13.tar.gz (181.9 kB view hashes)

Uploaded Source

Built Distribution

gemgis-0.1.13-py3-none-any.whl (189.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page