Awesome Open Geoscience

Geoscience is awesome.

Awesome .github/workflows/link_checker.yml Contributions Commits Chat on slack License DOI

Open geoscience is even more awesome, so we made a list. This list is curated from repositories that make our lives as geoscientists, hackers and data wranglers easier or just more awesome. In accordance with the awesome manifesto, we add awesome repositories. We are open to contributions of course, this is a community effort after all. If you are interested in being a maintainer of this repository, leave the maintainer role file.

Contents

Related Awesome

Top

Open Books

Software

Awesome software projects sub-categorized by focus.

Seismic and Seismology

  • AuralibPython / Python package to support investigation of geoscience problems including geophysics, rock physics, petrophysics, and data read/write in common formats.
  • BrugesPython Various geophysical equations and tools.
  • MadagascarC Python Multi-dimensional data processing suite.
  • MDIOPython Open source chunked and compressed cloud storage for seismic data based on Zarr with fast seismic ingestion and export tools – Docs, Source.
  • ObsPyPython Framework for reading, writing and processing seismic and seismological data.
  • OpendTect-PluginsC++ open source plugins for the OpendTect seismic interpretation platform. See the docs for more information.
  • OpenSeaSeisC++ Seismic workflow generator and seismic viewer.
  • PastasPython Open-source Python framework for the analysis of groundwater time series.
  • PyrockoPython Seismology toolkit.
  • pyVDSPython Convenience wrapper around Bluware's OpenVDS+ Python bindings which enables reading of VDS files with a syntax familiar to users of segyio.
  • pyZGYPython Convenience wrapper around Schlumberger's OpenZGY Python package which enables reading of ZGY files with a syntax familiar to users of segyio.
  • RedPyPython Auto-clustering for seismic events.
  • rsudpPython Continuous ObsPy-based visual display, sudden motion monitoring, and historical replay of Raspberry Shake data.
  • SegyioPython / matlab Fast library for seismic SEGY files.
  • SeisCompPython C++ Seismic observatory automation toolkit. Autodetection, storage, sharing, processing data and more.
  • Seismic Un*xC Seismic data processing suite.
  • SeismicZFPPython Convert SEG-Y/ZGY files to compressed SGZ files & retrieve arbitrary sub-volumes from these, fast.
  • synthoseisPython Synthoseis is an open-source, Python-based tool used for generating pseudo-random seismic data.

Ground-penetrating radar

  • gprMaxPython CUDA Finite-difference time-domain electromagnetic wave propagation simulator (on CPU and GPU).
  • GPRPyPython Multi-format, GUI-based GPR processing and visualization.
  • RAGUPython Radar interpretation GUI compatible with multiple radar datasets.
  • readgssiPython Fast command line or console-based visualization, filtering, and translation of GSSI radar data.
  • RGPRR Reads, exports, processes, and plots ground-penetrating radar data.

Well Log

  • dlisioPython Parser for dlis and lis well log files.
  • lasioPython Reading and writing well data using Log ASCII Standard (LAS) files.
  • PetroPyPython – Petrophysics package for conventional and unconventional formation evaluation and includes basic well log visualization via matplotlib.
  • StriplogPython Display lithological and stratigraphic logs for wells and outcrop.
  • WelliovizJavaScript – Visualizes well logs using d3.js. Companion to Wellio.js.
  • WellpathpyPython – Light package to load well deviations.
  • WellyPython Analyzing and processing well log data.

Simulation and Modelling

  • Awesome Basic Model Interface (BMI)C C++ Fortran Python A standardized set of functions for model-model and model-data coupling.
  • bh_tomomatlab Borehole radar and seismic tomography package.
  • DevitoPython Finite-Difference computation from high-level symbolic problem definitions.
  • disbaPython Numba-accelerated computation of surface wave dispersion.
  • emsigPython Controlled-source electromagnetic modellers for layered (empymod) and three-dimensional (emg3d) anisotropic media.
  • Fatiando a TerraPython Modelling and inversion in geophysics.
  • GemPyPython 3-D structural geological modelling software with implicit modelling and support for stochastic modelling.
  • GeoPhyInv – Julia Toolbox for Geophysical Modeling and Inverse Problems.
  • HyVRPython 3-D anisotropic subsurface models based on geological concepts that can be used with groundwater flow simulators (e.g., ModFlow).
  • LandlabPython Simulate surface processes using a large suite of existing interoperable process components (landscape evolution, sediment dynamics, surface hydrology, ecohydrology), exensible by own modules.
  • LoopStructuralPython an open-source 3D structural geological modelling library.
  • modelr.ioPython Javascript Web app for simple synthetic seismic forward modelling.
  • ModFlowF90 Flow modelling software distributed by the USGS to simulate and predict groundwater conditions and groundwater/surface-water interactions with additional variants and add-ons.
  • OccamyPyPython an object-oriented optimization framework for small- and large-scale problems.
  • PyFWIPython C It can be used to perform full-waveform inversion (FWI) and time-lapse FWI of seismic data.
  • pyGeoPressurePython Pore pressure prediction using well log data and seismic velocity data.
  • pyGIMLiPython C++ Multi-method library for solving inverse and forward tasks related to geophysical problems.
  • PyGMIPython It is a modelling and interpretation suite aimed at magnetic, gravity and other datasets.
  • PyLopsPython Linear Operators with some geophysics/seismic modules (e.g., pre- and post-stack AVO inversion, deconvolution, Marchenko redatuming, Radon filtering).
  • Awesome PyMTPython Python toolkit for coupling models and datasets that expose the Basic Model Interface (BMI).
  • PySITPython A Toolbox for seismic inversion and seismic imaging.
  • ResIPyPython an intuitive open source software for complex geoelectrical inversion/modeling.
  • SimPEGPython Simulation and parameter estimation in geophysics.
  • ttcrpyPython C++ Traveltime computation and raytracing on 2D & 3D rectilinear grids and unstructured meshes.
  • XTgeoPython Python library with C backend to support manipulation of (oil industry) subsurface reservoir modelling.

Reservoir Engineering

  • DuMuxC++ Simulator for flow and transport processes in porous media.
  • DeepField - Python A framework for reading and writing Eclipse reservoir data, reservoir preprocessing and interactive visualization.
  • eclPython Reading and writing Eclipse reservoir simulator files.
  • FesapiC++ C++ C++ Reading and writing RESQML2 files.
  • libresPython Tool for managing an ensemble of reservoir models.
  • MRSTmatlab Rapid prototyping and demonstration of new simulation methods in reservoir modelling and simulation.
  • ResInsightC++ Python ResInsight is a powerful open source, cross-platform 3D visualization, curve plotting, and post processing tool for reservoir models and simulations.
  • SHEMAT-SuiteFortran Simulator for flow, heat and species transport in porous media including stochastic and deterministic parameter estimation.

Geostatistics

  • GeostatsPyPython GSLIB reimplimented in Python.
  • GeoStats.jlJulia High-performance geostatistics in Julia.
  • GeoStat-FrameworkPython Framework for geostatistical simulations.
  • gstatPython Geostatistical modelling, prediction and simulation.
  • gstlearnPython R C++ Complete cross-platform library and packages for Geostatistics proposed by MINES PARIS – PSL University.
  • G2SPython matlab R C++ CUDA A free, flexible and multi-language multiple point (MPS) (geo)statistics framework including the state-of-the-art algorithm QuickSampling.
  • HPGLPython High perfomance geostatistics library.
  • PyGSLIBPython Mineral resource estimations.
  • PyinterpolatePython Kriging, Poisson Kriging, Semivariogram Deconvolution, Areal Kriging and other spatial interpolation methods in Python for Earth, Ecology and Social Sciences.
  • pyKrigingPython N-dimensional kriging.
  • pysgemsPython Use SGeMS (Stanford geostatistical modelling software) within Python.
  • SciKit-GStatPython SciPy-styled analysis module for geostatistics.
  • SGeMSCUDA Stanford geostatistical modelling software.
  • bm_geostat_process - Python open source workflow for geostatistics block models

Geospatial

  • Generic Mapping Tools (GMT)C About 80 command-line tools for manipulating geographic and Cartesian data sets.
  • geonotebookPython Jupyter notebook extension for geospatial visualization and analysis developed by NASA.
  • GeoPHPPHP Geospatial library that works with many formats.
  • GRASS-GIS – GIS platform, see Platforms.
  • QGIS – GIS platform, see Platforms.
  • Stress2Gridmatlab Two concepts to calculate the mean SHmax orientation.
  • VerdePython processing spatial data to regular grids.
  • vtk_triangulate_pointsPython Generate simplified topography surfaces from dense point clouds (lidar/radar/drone).
  • whitebox-toolsPython An advanced geospatial data analysis platform.
  • gemgisPython Spatial data processing for geomodeling
  • SamGISPython Image Segmentation machine learning based (Segment Anything by Meta - Facebook) applied to GIS and geo data. HuggingFace demo here.

Geochemistry

  • GeoPyToolPython Application with geochemical plotting capabilities.
  • PhreeQCC++ Reactions in water and between water and rocks and sediments (speciation, batch-reaction, one-dimensional transport, and inverse geochemical calculations).
  • pyrolitePython Geochemical transformation and visualisation.
  • ReaktoroC++ Python Unified framework for modelling chemically reactive systems.
  • ThermobarPython Thermobarometry, chemometry and mineral equilibrium tool.
  • CHNOSZR Thermodynamic calculations and diagrams for geochemistry, R Packages for Geochemistry: CHNOSZ and logKcalc
  • GeoChemical Data toolkit – GCDKitR System for handling and recalculation of whole-rock analyses from igneous rocks: Standard geochemical calculations and many of the common plots (binary, ternary, spider diagrams).

Geodynamics

  • Underworld - Python Computational tools for the geodynamics community.

Magnetotellurics

  • MATE - Python A Python program for interpreting magnetotelluric models of the mantle.
  • MTPy - Python A Python Toolbox for magnetotelluric data processing, analysis, modelling and visualization.
  • RazorbackPython An Python library for magnetotelluric robust processing.

Structural Geology

  • apsgPython Advanced structural geology analysis and visualisation based on Matplotlib.
  • mplStereonetPython Stereonets on python based on Matplotlib.
  • OpenStereoPython An open source, cross-platform structural geology analysis software.
  • Stress_state_plotPython An open source structural geology package for visualisation of a given stess-state via matplotlib.

Visualization

  • cmoceanPython MatPlotLib collection of perceptual colormaps for oceanography.
  • ColorcetPython Perceptual colormaps.
  • Geologic Patterns – Entire FGDC pattern library extracted to SVG and PNG for use in geologic maps and stratigraphic columns.
  • ipyleafletPython 2D interactive maps and GIS visualization in the Jupyter Notebook.
  • localtileserverPython A Python package for serving tiles from large raster files in the Slippy Maps standard (i.e., /zoom/x/y.png) for visualization in Jupyter with ipyleaflet or folium.
  • omfvistaPython PyVista interface for the Open Mining Format (omf) package.
  • PyVistaPython 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK).
  • PVGeoPython ParaView Data and model visualization in ParaView and Visualization Toolkit (VTK) via PyVista.
  • GeoVistaPython Cartographic rendering and mesh analytics powered by PyVista.
  • Digitize Heatmap – Get numerical data from a heatmap from a PDF format.

Platforms

  • GRASS-GIS – GIS platform for vector and raster geospatial data management, geoprocessing, spatial modelling and visualization, C C++ source code available at github.
  • OpendTect – Seismic interpretation package, C++ source code available at github.
  • OpenGeodeC++ Python Representation and manipulation of geological models.
  • PangeoPython A community platform for Big Data geoscience built on top of the open source scientific python ecosystem.
  • QGIS – GIS platform to visualize, manage, edit, analyse data, and compose printable maps.
  • WebvizPython Webviz is a wrapper on top of Dash from Plotly which encourages making reusable data visualisation components and dashboards.
  • Webviz-subsurfacePython Webviz-subsurface contains subsurface specific standard webviz containers, which are used as plugins in webviz-config.

Natural Language Processing

  • geoVecPython "Word embeddings for application in geosciences: development, evaluation and examples of soil-related concepts" and an implementation.

Geochronology

  • IsoplotRR A free and open-source substitute for Kenneth Ludwig's popular Isoplot add-in to Microsoft Excel.
  • pychronPython Data acquisition and processing framework for Ar-Ar geochronology and noble gas mass spectrometry.
Top

Data Repositories

  • Athabasca Oil Sands Well Dataset McMurray/Wabiskaw – Well logs and stratigraphic picks for 2193 wells, including 750 with lithofacies, from Alberta, Canada.
  • Digital Rocks Portal – Powerful data portal for images of varied porous micro-structures.
  • Geoscience Australia Portal – Comprehensive map-based Australian data portal across multiple geoscience domains.
  • GSQ Open Data Portal – Petroleum, coal, and mineral geoscience data from the Queensland resource industry and government, with supporting information from GSQ GitHub Repository for Data Models, RDF Vocabularies, and system design. Use of VPN may result in 403 error.
  • ICGEM – Hosts gravity field spherical harmonic models and provides a webservice for generating grids of gravity functionals (geoid, gravity anomaly, vertical derivatives, etc).
  • NOPIMS – Open petroleum geoscience data from Western Australia made available by the Australian Government.
  • Poseidon NW Australia – Interpreted 3D seismic (32bit) including reports and well logs.
  • Quantarctica – User-configurable QGIS basemap for Antarctica with high-quality, peer-reviewed, free and open Antarctic scientific data.
  • SARIG – South Australian Resources and Information Gateway providing map-based statewide geoscientific and geospatial data with over 600 datasets.
  • SEG Open Data Catalog – Catalog of "geophysical data that is readily available for download from the internet, via mail, or through special request", maintained by the Society of Exploration Geophysicists.
  • TerraNubis – The new Open Seismic Repository, includes the classic F3 and Penobscot seismic volumes (which both also have wells and other data assets).
  • UK National Data Repository – Open petroleum geoscience data from the UK Government (free registration required).
  • Volve data village - A complete set of data from a North Sea oil field available for research, study and development purposes.
  • World Stress Map – A global compilation of information on the crustal present-day stress field.
  • Volve data village - A complete set of data from a North Sea oil field available for research, study and development purposes.
  • Macrostrat - A multiscale, harmonized, and globally-defined geologic map dataset and stratigraphic API.
  • Costa Model – A hierarchical carbonate reservoir benchmarking case study.
  • EarthChem – Community-driven preservation, discovery, access, and visualization of geochemical, geochronological, and petrological data.
Top

Tutorials and Cheat Sheets

Top

Miscellaneous

Top

How to Contribute

Contributions welcome! Read the contribution guidelines first.

Top

License

CC0

To the extent possible under law, all contributors have waived all copyright and related or neighboring rights to this work.