This is a list of free and open-source software for geophysical data processing and interpretation. The list is split into broad categories, depending on the intended use of the software and its scope of functions.
Notice that 'free and open-source' requires that the source code is available. Simple being 'free of charge' is not sufficient—see gratis versus libre. The reader interested in freeware (just free of charge) software is referred to the list of freeware geophysics software.
These are full-featured reflection seismology processing packages, with support for modeling, imaging, and inversion. They are relatively low-level and in some cases have their own data formats and involve learning an extensive syntax or meta-language.
Name | Description | Originator | License | Platforms | Language | Notes |
---|---|---|---|---|---|---|
Madagascar[1] | Multidimensional data analysis including seismic processing | Sergey Fomel and others | GPL | Cross-platform | C, C++, Python | Programming Interfaces to Fortran 77, Fortran 90, Python, Java, MATLAB, Julia. |
FreeUSP[2] | Seismic processing | Amoco, BP | Custom | Unix, Linux | Fortran 77, C | Includes OBS Node Survey Simulator, BP Anisotropic Velocity-Analysis Benchmark |
FreeDDS[3] | Seismic processing | Amoco, BP | Custom | Unix, Linux | Fortran 77, C | Generic format (SEGY, SU, SEPlib, USP) |
PSEIS-OSS[4] | Parallel seismic processing | Randy Selzler | GPL | Unix, Linux | Fortran 77, C | Generic format (SEGY, SU, SEPlib, USP, Madagascar) |
CWP/SU (Seismic Unix)[5] | Seismic processing | Stanford, Colorado School of Mines | BSD-style | Unix, Linux, OS X, Cygwin 32 | C, some Fortran 77 | World's most widely used (82 countries and territories). |
CPSeis[6] | Seismic processing | ConocoPhillips | MIT | Cross-platform | Fortran 90, C++ | |
SPARC[7] | Seismic processing | ARCO | GPL | Cray | Fortran | |
SEPlib[8] | Seismic processing | Stanford University | Custom | Cross-platform | Fortran, C | |
GeBR[9] | Seismic processing | Various contributors, Brazil | GPL | Linux | C | Interfaces with SU, Madagascar, etc. |
OpenSeaSeis[10] | Seismic processing | Bjorn Olofsson, now property of the Colorado School of Mines | BSD-style | Linux, Windows, OS X | C, C++, Java | Interfaces with SU data. Reads most common SEGY and a subset of SEGD formats. |
These packages offer some subset of functionality of the full processing packages in the previous section.
Name | Description | Originator | License | Platforms | Language | Notes |
---|---|---|---|---|---|---|
BotoSeis[11] | Seismic processing | Williams Lima, Brazil | GPL | Cross-platform | Java | Workflow builder; interfaces with SU, Madagascar, etc. |
Delivery[12] | Bayesian inversion | CSIRO | GPL, BSD-style | Cross-platform | Java | |
GSEGYView[13] | Display SEG-Y files | Vladimir Bashkardin | GPL | Cross-platform | Fortran, C | |
GPLib++[14] | Seismic and magnetotelluric processing | Max Moorkamp, Dublin Inst. Adv. Studies | GPL | Unix, Linux | C++ | |
JavaSeis[15] | Pre-stack seismic I/O | ARCO | CPL | Cross-platform | Java | |
kogeo[16] | Geophysical analysis and visualization | University of Hamburg | GPL | Windows | C++ | |
Mines JTK[17] | Signal processing and display | Dave Hale, Colorado School of Mines | CPL | Cross-platform | Java | |
JRG-Viewmat[18] | Filtering, record visualization & animation, basic processing | John Louie, University of Nevada | CC By 3.0 | Cross-platform | Java | Menu-driven interface, reads and writes SEG-Y, some SEPlib |
Jive3D[19] | Modeling and tomographic inversion | James Hobro, University of Cambridge | Custom | Unix, Linux | Fortran | GMT and other libraries |
PySIT[20] | Imaging and inversion | Russell Hewett & Laurent Demanet, MIT | BSD 3-clause | Unix, Linux | Python | |
SegDSee[21] | Display SEG-D and SEG-B files | Sergey Pavlukhin | Custom | Cross-platform | C++, Qt | |
segyio[22] | Read and write SEG-Y files | Equinor | LGPL | Cross-platform | C, Python | |
Segpy[23] | Read and write SEG-Y files | Rob Smallshire, Thomas Mejer Hansen | LGPL | Cross-platform | Python | Fork of defunct SegyPY |
segy-py[24] | Read SEG-Y files | Kurt Schwehr, Google | Custom | Cross-platform | Python | Various FOSS packages |
SeismiGraphix[25] | Read and view SEG-Y, SEG-D, Seismic Unix and Javaseis. View and remap headers | Abel Surace | Custom | Cross-platform | Java | |
SIOSEIS[26] | Seismic reflection and refraction processing | Paul Henkart, SIO | BSD | Cross-platform | gfortran, gcc | |
SLIMpy[27] | Processing front end | Felix Herrmann, Univ. of British Columbia | LGPL | Cross-platform | Python | Interfaces with SU, Madagascar, etc. |
SEGY Scout[28] | Tool for reviewing key information and statistics of SEG-Y files | B. Man | Custom | Windows | C++ | Free; Other platforms can be made |
WaveletExtractor[29] | Well-ties | CSIRO | GPL, BSD-style | Cross-platform | Java |
Name | Description | Originator | License | Platforms | Language | Notes |
---|---|---|---|---|---|---|
ObsPy[30] | Seismology toolbox | Moritz Beyreuther et al. | LGPL | Cross-platform | Python | Uses Numpy and Cython |
PAMGUARD[31] | Passive acoustic monitoring for marine mammals | Multiple workers | GPL | Linux, Windows, OS X | Java | Plug-in-able |
SCEC Broadband Platform[32] | Ground Motion Simulation | SCEC Community Modeling Environment | Apache 2 | Linux | Python, C, Fortran | Uses Numpy and SciPy |
Sesarray[33] | Signal processing for ambient vibrations | Joseph Fourier University, University of Potsdam | GPL | Linux, Windows, OS X | C, C++ | Includes geopsy (signal processing) & dinver (inversion) |
Seismic Handler[34] | Signal processing for earthquakes | SZGRF | GPL | Linux, Solaris | C, Python | |
STK[35] | Signal processing for earthquakes | Dominique Reymond | GPL | Unix, Linux, Windows | C | |
TauP[36] | Travel-time & ray-path calculation | University of South Carolina | GPL | Cross-platform | Java | |
smartRefract[37] | Refraction seismic interpretation | Simone Pittaluga | GPL | Cross-platform | Java | Based on GRM (Palmer) |
Name | Description | Originator | License | Platforms | Language | Notes |
---|---|---|---|---|---|---|
devito[38] | Symbolic finite difference engine, including seismic modeling and inversion | Fabio Luporini, Matthias Louboutin, et al. | MIT | Cross-platform | Python | Uses Numpy and SymPy |
Fatiando a Terra[39] | Geophysical modeling and inversion | Leonardo Uieda et al. | BSD | Cross-platform | Python | Uses Numpy and Cython |
PyGMI[40] | 3D interpretation and modelling of magnetic and gravity data | Patrick Cole | GPL | Cross-platform | Python | |
SimPEG[41] | Simulation and Parameter Estimation in Geophysics | Rowan Cockett et al. | MIT | Cross-platform | Python | Uses Numpy and SciPy |
pyGIMLi[42] | Geophysical Inversion and Modelling Library | Carsten Rücker, Thomas Günther, and Florian Wagner | Apache 2 | Cross-platform | Python | Uses Numpy |
OCCAM1DCSEM[43] | An Inversion Program for Generating Smooth 1D Models from Controlled-Source Electromagnetic and Magnetotelluric Data. | Kerry Key, SEMC | GPL | Cross-platform | Fortran | Optional plotting and editing routines are in Matlab. |
2DMT[44] | Occam's inversion for 2D magnetotelluric (MT) modeling | Steven Constable et al., SEMC | Unclear | Cross-platform | Fortran | Optional plotting and editing routines are in Matlab. |
empymod[45] | Full 3D electromagnetic modeller for 1D VTI media | Dieter Werthmüller | Apache 2 | Cross-platform | Python | Uses Numpy and SciPy |
extrEMe[46] | Accurate and scalable 3-D MT forward solver based on a contracting integral equation method | M. Kruglyakov, A. Geraskin, A. Kuvshinov | modified GPL 2 | Cross-platform | C# | |
GIEM2G[47] | Gnu Integral Equation Modeling in ElectroMagnetic Geophysics | Mikhail Kruglyakov, Lidia Bloshanskaya | GPL 2 | Cross-platform | Fortran | |
gprMax[48] | Ground Penetrating Radar (GPR) 3D modelling | Antonis Giannopoulos, Craig Warren, et al. | GPL 3 | Cross-platform | Python, Cython |
Name | Description | Originator | License | Platforms | Language | Notes |
---|---|---|---|---|---|---|
Geoscience Analyst[49] | Import, visualize, annotate, save, and distribute 3D geoscientific data types and models | Mira Geoscience | QLM | Windows | C++, Python | Version 3.1 and above provides a Python API to connect to open source software and view results in a 3D visualization environment designed specifically for the geosciences and mining. |
OpendTect[50] | Geoscience interpretation and visualization | dGB Earth Sciences | GPL or custom | Cross-platform | C++ | Interfaces with Petrel, Madagascar, GMT, Google Earth/Maps |
GeoTriple for Oil&Gas Exploration[51] | Geoscience data management, display and analysis | Geoforge project | LGPL | Cross-platform | Java | Interfaces with WorldWind |
GeoCraft[52] | Geophysical analysis and visualization | ConocoPhillips | MIT | Cross-platform | Java | |
qiWorkBench[53] | Geophysical interpretation and visualization | BHP Billiton Petroleum | GPL, BSD | Cross-platform | Java | |
Generic Mapping Tools[54] | Map generation and analysis | Lamont–Doherty and University of Hawaii | GPL | Cross-platform | C | Implemented in OpendTect |
ParaViewGeo[55] | Geoscience extension of ParaView | Kitware ParaView, MIRARCO | BSD | Cross-platform | C++, Python | Oriented towards mining |
GI[56] | Geophysical interpretation and visualization | Unclear | Cross-platform | C++, Qt | Alpha version | |
FischerLab[57] | Fischer Plots and Sequence Stratigraphy | Adewale Amosu & Yuefeng Sun, Texas A&M University | Modified BSD | Cross-Platform | Matlab | Free to use |
EMP[58] | Processing of raw time series of MT/AMT/RMT and controlled source data. Visualization of MT data on map | Arseny Shlykov | MIT | Windows | C# | Free to use |
The following projects are not free and open-source. They have unknown licensing, licenses which place some restriction on use or redistribution, or depend on non-open-source software like MATLAB, and thus do not meet the Open Source Definition from the Open Source Initiative. (For example, the license may rule out use by certain people or for certain purposes, e.g., in a commercial context.) They are included here because they may be of interest for those in an academic environment or access to tools like MATLAB.
Name | Description | Originator | License | Platforms | Language | Notes |
---|---|---|---|---|---|---|
GeoFEST[59] | Fault and terrain visualization | Greg Lyzenga & Jay Parker, Jet Propulsion Laboratory | Unclear | Unix, Linux | C | Hosted by Open Channel Foundation[60] |
MSLT[61] | Finite element stress-strain modeling | Peggy Li & Herb Siegel, Jet Propulsion Laboratory | Unclear | Unix, Linux, OS X | C | |
GeoSeis[62] | Processing seismic refraction data | Muhammed Celik, Kocaeli University | Freeware | Windows | Visual Basic | Fully free after v. 1.3.8 |
MARE2DEM[63] | 2D Inversion of CSEM and MT Data | Kerry Key, Scripps Institution of Oceanography | Freeware, GNU open source | OS X, Linux, Windows | Fortran | Free to use, needs a valid MATLAB license to build models |
GPRSoft Lite[64] | GPR Data Visualization | Geoscanners AB | Freeware | Windows | GSF, DZT, RAD3, DT1, formats supported | |
GP Workbench[65] | GPR processing | USGS | Unclear | Windows | C++ | SU format |
Seismic Lab[66] | Seismic processing toolbox | Mauricio Sacchi, University of Alberta | GPL | Cross-platform | MATLAB | Needs MATLAB |
CREWES[67] | Seismic processing toolbox | Gary Margrave, University of Calgary | Custom, free for non-commercial use | Cross-platform | MATLAB | Needs MATLAB |
SegyMAT[68] | Read and write SEG-Y files | Thomas Mejer Hansen, Univ. of Copenhagen | LGPL | Cross-platform | MATLAB | Needs MATLAB |
IMAGE2SEGY[69] | Image converter | Marcel.lí Farran, Institut de Ciències del Mar | Creative Commons | Cross-platform | MATLAB | Needs MATLAB & SegyMAT |
SW3D[70] | Seismic processing | Vlastislav Cerveny, Charles University | Unclear | |||
rayinvr[71] | 2D traveltime inversion | Colin Zelt, Rice University | Custom, non-commercial use only | Unix, Linux | Fortran 77, C | |
fast[72] | 3D traveltime tomography | Colin Zelt, Rice University | Custom, non-commercial use only | Unix, Linux | Fortran 77, C | |
passeis[73] | Passive seismic analysis | Haishan Zheng, University of Saskatchewan | Unclear | Cross-platform | MATLAB | Needs MATLAB |
seismon[74] | Processing for earthquakes | Stefan Mertl | GPL | Cross-platform | MATLAB | Needs MATLAB |
PyShottab[75] | Processing for ocean-bottom seismic | Dalhousie University | Unclear | Cross-platform | Python | Windows binary |
IGeoS (formerly SIA)[76] | Geophysical processing and analysis | University of Saskatchewan | Custom, free for non-commercial use | Unix, Linux | C++ | Interfaces with SU, GMT |
Seizmo[77] | Global seismic analysis | Garrett Euler, Washington University in St. Louis | Unclear | Cross-platform | MATLAB | Octave-compatible |
GISMO[78] | Seismic waveform and earthquake catalog analysis | Glenn Thompson, University of South Florida | Freeware | Windows, MacOSX, Linux | Matlab | Fully free |
MVSPsoft[79] | Borehole Seismic Data Processing and Interpretation | Mohammed Farfour, Sultan Qaboos University | Freeware | Windows | Matlab | Fully free |
WheelerLab [80] | Sequence Stratigraphic Analysis and Chronostratigraphic Analysis (Wheeler Diagrams) | Adewale Amosu & Yuefeng Sun, Texas A&M University | Modified BSD | Cross-Platform | MATLAB | Needs Matlab and SegyMAT |
Name | Description | Originator | License | Platforms | Language | Notes |
---|---|---|---|---|---|---|
SEG Software Repo[81] | Open source codes that were made available together with published articles in the journal Geophysics by the Society of Exploration Geophysicists SEG. | Various authors | SEG license and others | Variable | Variable | Static repo. Maintained versions might be found on other places. |
P233 Suite[82] | Open source codes for EM data (1D, 2D, 3D) from 25 years of investigation by CSIRO, funded by AMIRA. | CSIRO | Public Domain | Cross-Platform | Fortran | |
Markku Pirttijärvi[83] | Free (but mostly not open-source) software by Markku Pirttijärvi; mostly EM, gravity and magnetic data. | Markku Pirttijärvi | Free to download | Windows | Fortran | Free, not open source |
Geoscience Australia's
Airborne Electromagnetic Inversion Software[84] |
Open source codes for inverting and forward modelling airborne electromagnetic (AEM) data:
GAFORWARDMODELTDEM - 1D forward modelling . GALEISBSTDEM - deterministic 1D sample by sample inversion. GARJMCMCTDEM - stochastic 1D sample by sample inversion |
Geoscience Australia
Ross C. Brodie |
Creative Commons 4.0 Attribution (BY). Free to download | Cross-Platform | C++, | Some third-party software dependencies. (Specified within). |
The following projects have seen very little activity for more than a year.
Name | Description | Originator | License | Platforms | Language | Notes |
---|---|---|---|---|---|---|
openGPR[85] | GPR processing and interpretation | Mats Schuh | GPL | Linux | Python | No longer in active development |
OpenICarre | Integrated interpretation system | IFP | ||||
MagIC-Py[86] | Magnetic data processing | Python | ||||
geoid[87] | Geological mapping | |||||
ART[88] | Ray tracing | |||||
GPCPP[89] | ||||||
Seismic Refraction Tomography[90] | GPL |