Comparison of free geophysics software
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.
Reflection seismic processing packages
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 |
|
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 Un*x)[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. |
Reflection seismic processing utilities
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[18] |
Modeling and basic processing |
John Louie, University of Nevada |
Custom |
Cross-platform |
Java |
|
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 |
|
Segpy[22] |
Read and write SEG-Y files |
Rob Smallshire, Thomas Mejer Hansen |
LGPL |
Cross-platform |
Python |
Fork of defunct SegyPY |
segy-py[23] |
Read SEG-Y files |
Kurt Schwehr, Google |
Custom |
Cross-platform |
Python |
Various FOSS packages |
SesimiGraphix[24] |
Read and view SEG-Y, SEG-D, Seismic Unix and Javaseis. View and remap headers |
Abel Surace |
Custom |
Cross-platform |
Java |
|
SIOSEIS[25] |
Seismic reflection and refraction processing |
Paul Henkart, SIO |
BSD |
Cross-platform |
gfortran, gcc |
|
SLIMpy[26] |
Processing front end |
Felix Herrmann, Univ. of British Columbia |
LGPL |
Cross-platform |
Python |
Interfaces with SU, Madagascar, etc. |
WaveletExtractor[27] |
Well-ties |
CSIRO |
GPL, BSD-style |
Cross-platform |
Java |
|
Nonreflection seismic processing utilities
Name |
Description |
Originator |
License |
Platforms |
Language |
Notes |
Fatiando a Terra[28] |
Geophysical modeling and inversion |
Leonardo Uieda et al. |
BSD |
Cross-platform |
Python |
Uses Numpy and Cython |
ObsPy[29] |
Seismology toolbox |
Moritz Beyreuther et al. |
LGPL |
Cross-platform |
Python |
Uses Numpy and Cython |
PAMGUARD[30] |
Passive acoustic monitoring for marine mammals |
Multiple workers |
GPL |
Linux, Windows, OS X |
Java |
Plug-in-able |
PyGMI[31] |
3D interpretation and modelling of magnetic and gravity data |
Patrick Cole |
GPL |
Cross-platform |
Python |
|
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 |
|
SimPEG[35] |
Simulation and Parameter Estimation in Geophysics |
Rowan Cockett et al. |
MIT |
Cross-platform |
Python |
Uses Numpy and SciPy |
STK[36] |
Signal processing for earthquakes |
Dominique Reymond |
GPL |
Unix, Linux, Windows |
C |
|
TauP[37] |
Travel-time & ray-path calculation |
University of South Carolina |
GPL |
Cross-platform |
Java |
|
smartRefract[38] |
Refraction seismic interpretation |
Simone Pittaluga |
GPL |
Cross-platform |
Java |
Based on GRM (Palmer) |
Visualization, interpretation, analysis packages
Not true free and open-source projects
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[46] |
Fault and terrain visualization |
Greg Lyzenga & Jay Parker, Jet Propulsion Laboratory |
Unclear |
Unix, Linux |
C |
Hosted by Open Channel Foundation[47] |
MSLT[48] |
Finite element stress-strain modeling |
Peggy Li & Herb Siegel, Jet Propulsion Laboratory |
Unclear |
Unix, Linux, OS X |
C |
|
GeoSeis[49] |
Processing seismic refraction data |
Muhammed Celik, Kocaeli University |
Freeware |
Windows |
Visual Basic |
Fully free after v. 1.3.8 |
MARE2DEM[50] |
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[51] |
GPR Data Visualization |
Geoscanners AB |
Freeware |
Windows |
|
GSF, DZT, RAD3, DT1, formats supported |
GP Workbench[52] |
GPR processing |
USGS |
Unclear |
Windows |
C++ |
SU format |
Seismic Lab[53] |
Seismic processing toolbox |
Mauricio Sacchi, University of Alberta |
GPL |
Cross-platform |
MATLAB |
Needs MATLAB |
CREWES[54] |
Seismic processing toolbox |
Gary Margrave, University of Calgary |
Custom, free for non-commercial use |
Cross-platform |
MATLAB |
Needs MATLAB |
SegyMAT[55] |
Read and write SEG-Y files |
Thomas Mejer Hansen, Univ. of Copenhagen |
LGPL |
Cross-platform |
MATLAB |
Needs MATLAB |
IMAGE2SEGY[56] |
Image converter |
Marcel.lí Farran, Institut de Ciències del Mar |
Creative Commons |
Cross-platform |
MATLAB |
Needs MATLAB & SegyMAT |
SW3D[57] |
Seismic processing |
Vlastislav Cerveny, Charles University |
Unclear |
|
|
|
rayinvr[58] |
2D traveltime inversion |
Colin Zelt, Rice University |
Custom, non-commercial use only |
Unix, Linux |
Fortran 77, C |
|
fast[59] |
3D traveltime tomography |
Colin Zelt, Rice University |
Custom, non-commercial use only |
Unix, Linux |
Fortran 77, C |
|
passeis[60] |
Passive seismic analysis |
Haishan Zheng, University of Saskatchewan |
Unclear |
Cross-platform |
MATLAB |
Needs MATLAB |
seismon[61] |
Processing for earthquakes |
Stefan Mertl |
GPL |
Cross-platform |
MATLAB |
Needs MATLAB |
PyShottab[62] |
Processing for ocean-bottom seismic |
Dalhousie University |
Unclear |
Cross-platform |
Python |
Windows binary |
IGeoS (formerly SIA)[63] |
Geophysical processing and analysis |
University of Saskatchewan |
Custom, free for non-commercial use |
Unix, Linux |
C++ |
Interfaces with SU, GMT |
Seizmo[64] |
Global seismic analysis |
Garrett Euler, Washington University in St. Louis |
Unclear |
Cross-platform |
MATLAB |
Octave-compatible |
Probably defunct projects
The following projects have seen very little activity for more than a year.
Name |
Description |
Originator |
License |
Platforms |
Language |
Notes |
openGPR[65] |
GPR processing and interpretation |
Mats Schuh |
GPL |
Linux |
Python |
No longer in active development |
OpenICarre |
Integrated interpretation system |
IFP |
|
|
|
|
MagIC-Py[66] |
Magnetic data processing |
|
|
|
Python |
|
geoid[67] |
Geological mapping |
|
|
|
|
|
ART[68] |
Ray tracing |
|
|
|
|
|
GPCPP[69] |
|
|
|
|
|
|
Seismic Refraction Tomography[70] |
|
|
GPL |
|
|
|
References