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