Seismic Data Downloading and Processing

Data Request Tools

Seismic Data Format Conversion

Seismic Data Processing

  • SAC: Seismic Analysis Code, the most commonly used seismic data processing software | Request
  • ObsPy: Data download, processing and visulization software written in Python
  • SeisIO.jl: Data download, processing and visulization software written in Julia
  • GISMO: Data download, processing and visulization software written in Matlab
  • hinet_decon: A Fortran 2003 code to deconvolve Hi-net velocity record by its seismometer response by using inverse filtering technique
  • Geopsy: An open source software for geophysical research and application written in C++

Plot

  • GMT: The most popular mapping tools in Earth Science
  • PyGMT: A Python interface for GMT (in the early stages of design and implementation)
  • GMT.jl: GMT Library Wrapper for Julia
  • matplotlib: a comprehensive library for creating static, animated, and interactive visualizations in Python
  • ObsPy: Data download, processing and visulization software written in Python
  • JPlotResp: Plot amplitude and phase of instrumental responses in RESP format | Chinese note
  • MoPad: Analysis and visulization of seismic moment tensor, focal mechanism | Chinese note
  • obspy-mopad: similar to MoPad, provided by ObsPy
  • EMC visualization tools
  • EMC-DesktopTools
    • EMC-ParaView: A set of Python programmable filters/sources to allow ParaView open-source, multi-platform data analysis and visualization application to display EMC netCDF/GeoCSV models along with other auxiliary Earth data
  • 3D Focal Mechanisms: View earthquake focal mechanism symbols three dimensionally
  • SeisTomoPy: Visulization of 3D tomography models and calculate traveltime in 3D model
  • SubMachine: Web-Based Tools for Exploring Seismic Tomography and Other Models of Earth’s Deep Interior
  • Tomoeye: a set of programs for tomographic model visualization written in MatLab 6.1 script

Traveltime Calculation/Ray Tracing

Surface-wave dispersion forward calculation

  • CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
    • pyfwrd: A forward modelling code for surface wave, receiver functions and shear wave splitting, given tilted hexagonal symmetric media
    • disba: Numba-accelerated computation of surface wave dispersion that implements a subset of codes from CPS330 written in Python
    • srfpython: compute, display, invert 1D depth models based on CPS330 written in Python
    • pysurf96: Python wrapper for modelling surface wave dispersion curves from surf96 in CPS330 written in Python
    • PyLayeredModel: Python wrappers for the CPS and Rftn libraries for layered models in seismology
  • MCMC_ANISO_FORWARD: Forward code to compute surface wave dispersion curves and receiver functions in anisotropic models with hexagonally symmetry
  • senskernel: Calculate sensitivity kernal of group velocity and phase velocity | github
  • Geopsy: An open source software for geophysical research and application written in C++
  • Vphase: A training code to calculation of phase velocity dispersion curves

Synthetic Receiver Function

  • hk: Receiver function package (synthetic RF, deconvolution, and H-k stacking) | Chinese note
  • CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
    • PyLayeredModel: Python wrappers for the CPS and Rftn libraries for layered models in seismology
  • RAYSUM: Ray-theoretical modelling of teleseismic waves in dipping, anisotropic structures
  • Charles J. Ammon’s codes: Receiver-Function Analysis
  • Jeffrey Park’s codes: Computes a receiver-function for a stack of anisotropic layers over an isotropic halfspace, via a reflectivity algorithm, assuming a plane wave incident from below | Receiver Function Analysis Manual | Some updates at JParkCodes
  • pyfwrd: A forward modelling code for surface wave, receiver functions and shear wave splitting, given tilted hexagonal symmetric media
  • RFtool: An interactive, GUI-based tool to simulate P or S receiver functions
  • PSV Hybrid RF: Calculating synthetic RF in two-dimensional localized hetergeneous structures based on PSV Hybrid method (GRT-FD)
  • MCMC_ANISO_FORWARD: Forward code to compute surface wave dispersion curves and receiver functions in anisotropic models with hexagonally symmetry

Synthetic Seismograms

Ray theory in 1D layered Earth

Reflectivity method in 1D layered Earth

  • fk: Calculate synthetic seismograms in layered isotropic models, using frequency-wavenumber method | Chinese introduction | Intall fk
  • QSEIS: Calculating synthetic seismograms based on a layered viscoelastic half-space earth model
  • Reflectivity method: Calculating the response of a layered uniform solid layers to excitation by a point moment tensor source using the reflectivity method
  • telewavesim: Calculate teleseismic body-wave synthetics using the matrix propagator method written in Python and Fortran
  • RMATRIX: Calculate the frequency-dependent transmission coefficients written in Fortran
  • Syn_seis: compute synthetic seismograms for an incidence P or SV wave to 1-D layered structure
  • rf_respknt: Reflection matrix approach to computing the seismic response of a cylindrically symmetric medium
  • PyLayeredModel: Python wrappers for the CPS and Rftn libraries for layered models in seismology

Wavenumber integration (discrete wavenumber?) in 1D layered Earth

Reflectivity method in 1D spherical Earth

  • yaseis: Calculate synthetic seismograms in spherically layered isotropic models, using frequency-wavenumber method

Normal modes in 1D spherical Earth

  • CIG’s Mineos: Computes synthetic seismograms in a spherically symmetric non-rotating Earth by summing normal modes
  • Colleen Dalton’s Mineos: All the tools one should need to compile and run the MINEOS program, including MATLAB driver scripts.
    • Matlab to MINEOS: Wrapper scripts for running MINEOS through MATLAB.
    • MINEOS_synthetics: Calculate dispersion tables and synthetic seismograms for layered models using MINEOS and idagrn6 housed within MATLAB wrappers
  • QSSP: Calculating complete synthetic seismograms of a spherical earth using the normal mode theory
  • Normal modes: Normal-mode based computation of seismograms for spherically symmetric Earth models
  • DISPER80: Calculation of normal modes, which is a very old fortran code. You have to ask for it from someone who conducts surface-wave studies.
  • Normal-mode: A fortran program to compute normal mode eigenfunctions and eigenvalues for SNREI earth, and synthetic seismograph
  • Generalized Eigenproblem Spectral Collocation

Direct solution method in 1D spherical Earth

  • DSM: Computing synthetic seismograms in spherically symmetric transversely isotropic (TI) media using the Direct Solution Method | updated version
  • GEMINI: Calculation of synthetic seismograms for global, spherically symmetric media based in direct evaluation of Green’s functions (The files seem wrong)
  • DGRFN: Calculate synthetic seismograms on a radially stratified model

Finite Difference Methods

  • SOFI2D: 2D finite-difference seismic P-SV simulation | Chinese note
  • SOFI2D_sh: 2D finite-difference seismic SH-wave simulation
  • SOFI3D: 3D finite-difference seismic wave simulation
  • FD2D: A very simple training code for 2D finite difference
  • FD3S: 3D finite-difference seismic wave simulation in a spherical section
  • FD1D
    • 1DFD_DS: 1D finite-difference seismic simulation using the displacement-stress staggered-grid
    • 1DFD_DVS: 1D finite-difference seismic simulation using the displacement-velocity-stress staggered-grid
    • 1DFD_VS: 1D finite-difference seismic simulation using the velocity-stress staggered-grid
  • 2DFD_DVS: Computation of seismic wavefields in 2D heterogeneous structures with planar free surface due to linear double-couple source or linear single force or plane-wave incidence
  • FDSim3D: Computation of seismic wavefields in 3D heterogeneous surface geological structures with planar free surface due to surface and near-surface point double couple sources or by a vertically incident plane wave.
  • SEISMIC_CPML: 2D/3D Finite-Difference Seismic Wave Simulation + CPML
  • SW4: 3D Finite-Difference Seismic Wave Simulation (4th order)
  • OpenSWPC: 2D/3D Finite-Difference Seismic Wave Simulation
  • FD: 2-D P-SV elastic second-order finite difference

Finite Element Methods

Boundary Element Methods

  • AstroSeis: MATLAB codes for asteroid seismic wavefield modeling

Pseudo-Spectral Methods

  • Ps2D: A very simple code for elastic wave simulation in 2D using a Pseudo-Spectral Fourier method

Spectral Element Methods

  • SPECFEM1D: A small code that allows users to learn how a spectral-element program is written
  • Specfem1d: An implementation of Spectrum Element Method for 1-D wave equation
  • SPECFEM2D: Simulates seismic wave propagation in a 2D heterogeneous medium, using spectral element method (spherical coordinate system)
    • FK-2DSEM can be requested from Ping Tong. Is the 2D SEM in spherical coordinate?
  • SPECFEM3D: Simulates seismic wave propagation in a 3D heterogeneous medium, using spectral element method (Cartesian coordinate system)
    • DSM-SEM & AxiSEM-SEM can be found in EXTERNAL_PACKAGES_coupled_with_SPECFEM3D
    • FK is not an external code, it is now called internally
    • The coulping can be found in specfem3D/couple_with_injection.f90
  • SPECFEM3D_GLOBE: Simulates seismic wave propagation in a 3D heterogeneous medium, using spectral element method (spherical coordinate system)
  • SEM_DSM_hybrid: A hybrid method to efficiently compute teleseismic synthetics with 3D seismic strucure at source side (SEM) and 1D strucure outside the source region (DSM).
  • RegSEM: Simulates seismic wave propagation in a 3D heterogeneous media, using spectral element method at the regional scale. Regional scale means distances ranging from about 1 km (local scale) to 90 degree (continental scale).
  • AxiSEM: A parallel spectral-element method to solve 3D wave propagation in a sphere with axisymmetric or spherically symmetric visco-elastic, acoustic, anisotropic structures.
  • Instaseis: The Python interface of AxiSEM
  • AxiSEM3D
  • NEXD: Nodal Discontinuous Galerkin Method | 1D | 2D | 3D
  • 2DSPEC: A parallel/serial 2d spectral element code for wave propagation and rupture dynamics
  • sem2dpack: A spectral element method for 2D wave propagation and fracture dynamics, with emphasis on computational seismology and earthquake source dynamics.

Discontinuous Galerkin Method

  • SeisSol: a scientific software for the numerical simulation of seismic wave phenomena and earthquake dynamics

Surface waves in 3D structures

  • Couplage: Modelling of propagation of surface waves in 3D structures by mode coupling method

Other hybrid methods

  • PSV Hybrid: Calculating synthetic seismograms involving two-dimensional localized hetergeneous structures based on GRT-FD hybrid method.

Other forward modelling


Seismic Source

Earthquake Detection

  • REAL: Rapid Earthquake Association and Location
  • Match&Locate: Template detecting and locating of small earthquakes
  • GPU-MatchLocate1.0: A GPU version of Match&Locate
  • FastMatchedFilter: An efficient seismic matched-filter search for both CPU and GPU architectures.
  • FAST: End-to-end earthquake detection pipeline via efficient time series similarity search
  • SEC-C: Super-Efficient Cross-Correlation
  • EQcorrscan: A python package for the detection and analysis of repeating and near-repeating earthquakes
  • RT_EQcorrscan: Real-Time implementation of EQcorrscan methods
  • REDPy: Repeating Earthquake Detector, written in Python
  • repeating-earthquake: Search repeating earthquakes based on cross-correlation of seismic waveforms of event pairs at same stations.

Earthquake Location

  • GrowClust: Relative relocation for earthquake hypocenters
  • HypoDD: Double-difference earthquake location
  • HypoRelocate: High-resolution earthquake relocation method
  • HYPOINVERSE2000: Locate earthquakes and determine magnitudes in a local or regional seismic network
  • NonLinLoc: Probabilistic, Non-Linear, Global-Search Earthquake Location in 3D Media.
  • PhaseLink: A deep learning approach to seismic phase association
  • REAL: Rapid Earthquake Association and Location
  • Velest: 1-D inversion of velocities and hypocenter locations
    • This code is modified to be used in REAL
  • location-pt: Multiple earthquake location via parallel tempering and principal component sampling.

Focal Mechanism

  • gCAP: Focal mechanism inversion using cut and paste method | Chinese note
    • oh-my-cap: some experiences in using gCAP by Liang Wang
  • CAPjoint: earthquake source parameter inversion
    • capjoint: some experiences in using CAPjoint by Liang Wang
  • gCAPjoint: earthquake source parameter inversion with seismic waves
  • CAPsf: invert source mechanisms for single‐force events
  • CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
  • Moment-Tensor Inversion
  • W Phase: Moment tensor inversion using W phase
  • focmec: Package for determining and displaying double-couple earthquake focal mechanisms based on polarities and amplitude ratios
  • HASH: Determine double-couple earthquake focal mechanisms based on P-wave polarity and S/P amplitude ratios
  • FPFIT: Calculate and plot fault-plane solutions from first-motion data
  • ISOLA: Retrieve isolated asperities from regional or local waveforms based on multiple-point source representation and iterative deconvolution
  • MTfit: Bayesian Moment Tensor Fitting
  • pyTDMT: time-domain focal mechanism inversion, written in Python
  • hybridMT: MATLAB package for moment tensor inversion and refinement
    • fociMT: A stand-alone command line application for seismic moment tensor inversion, which is an integral part of hybridMT package
  • FOCI: A stand-alone Windows GUI application for performing the seismic moment tensor inversion and source parameters assessment
  • RPGEN: Radiation of P/S/SH/SV waves from shear-tensile source model
  • MT_DECOMPOSITION: A Matlab software package for the moment tensor decomposition
  • PCA-DECOMPOSITION: A Matlab software package for the Principal Component Decomposition of seismic traces for extracting the common wavelet

Seismicity

  • CLUSTER2000: Identify clusters (e.g., aftershocks) in an earthquake catalog
  • ZMAP: A software package to analyze seismicity
  • GR_EST: An OCTAVE/MATLAB Toolbox to Estimate Gutenberg–Richter Law Parameters and Their Uncertainties

Stress/Strain

  • Coulomb 3: Investigate Coulomb stress changes on mapped faults and earthquake nodal planes
  • DC3D0/DC3D: Calculate displacement, strain and tilt at depth due to a point/rectangular strike/dip/tensile source in a half-space
  • SATSI: Spatially and/or temporally varying stress field from focal mechanisms
  • MSATSI: MATLAB package for stress tensor inversion
  • STRESSINVERSE: A Matlab or Python software package for an iterative joint inversion for stress and fault orientations from focal mechanisms

Source Spectrum


Seismic Imaging

Body-wave tomography

Earthquake surface-wave phase/group velocity dispersion

Ambient noise surface-wave phase/group velocity dispersion

  • Research Products from CU-Boulder
    • ancc: Ambient noise data processing code and database for processing in C | github
    • Seed2Cor: Seismic Ambient Noise Cross-Correlation in Parallel written in C
    • AFTAN: Automatic Frequency-Time Analysis (AFTAN) of cros-correlogram of ambient seismic noise in Fortran | github | Python package of AFTAN
  • Huajian Yao’s Lab: 2020 USTC seismic training: bilibili vedio & linkresearcher
    • NoiseCorr : Ambient noise cross-correlation codes for daily long SAC format data in Matlab
    • EGFAnalysisTimeFreq : Dispersion Analysis GUI software for ambient noise cross-correlation functions in Matalb
  • NoisePy: Fast and easy computation of ambient noise cross-correlation functions written in Python, with noise monitoring and surface wave dispersion analysis
  • SeisNoise: Fast and easy ambient noise cross-correlation in Julia, with noise monitoring and surface wave dispersion analysis
  • Martin Schimmel’s codes
    • Corr_stack: Ambient Noise Processing Tools for Phase Cross Correlation and time-frequency Phase Weighted Stack written in Fortran | IRIS Webinar
    • PCC: Fast and efficient phase cross-correlation written in C
    • PCC2: Fast and efficient phase cross-correlation written in Python
  • Lapo Boschi’s codes: Ambient-noise cross-correlation and dispersion-curve measurement in the frequency domain written in Python
  • MATnoise: Calculate ambient noise cross-correlations, measure phase velocities, and invert for phase velocity maps in MATLAB.

Inverting 2D surface-wave phase/group velocity maps

  • tomo_sp_cu_s: Surface wave tomography based on ray theory | github
  • FMST: traveltime tomography code in 2-D spherical shell coordinates based on fast marching method | FMST at iEarth
  • rj-TOMO: 2-D transdimensional travel time tomography based on Reversible jump Markov chain Monte Carlo algorithm
  • ASWMS: Automated Surface Wave Phase Velocity Measuring System, measuring two-station phase delay and then 2D phase velocity maps at each period using Eikonal and Helmhotza tomography | code in GitHub
  • SurfwaveTomoPrograms: finite frequency Rayleigh wave tomography programs (Two-plane wave with 2D sensitivity kernel; Yang & Forsythn, 2006, GJI, Yang & Forsythn, 2006, JGR)
  • MATnoise: Calculate ambient noise cross-correlations, measure phase velocities, and invert for phase velocity maps in MATLAB.

Other methods to measure surface-wave dispersion data & phase/group velocity maps

  • NoisePy: Some simple methods for seismic surface wave analysis written in Python
  • mat-LRTdisp: Measuring multi-mode surface wave dispersion using the Linear Radon Transform (LRT) written in Matlab

Inversion from phase/group velocities

  • CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
    • srfpython: compute, display, invert 1D depth models based on CPS330 written in Python
  • MCDisp: Surface wave dispersion inversion using Monte Carlo methohd written in Python
  • dispinversion: Surface wave dispersion inversion code written in Matlab

Direct inversion of surface-wave dispersion data

  • DSurfTomo: Direct inversion of 3-D Vs structure from dispersion data based on period-dependent ray tracing in Fortran written in Fortran
  • DSurfRTomo: Direct Surface Wave Radial Anisotropy Tomography written in Fortran | zenodo
  • DAzimSurfTomo: Direct inversion of Rayleigh wave dispersion data for 3-D azimuthal anisotropy based on ray tracing written in Fortran
  • 3D Monte Carlo Direct Inversion: 3D Monte Carlo tomography using both body and surface wave data | GitHub

Workflows for surface-wave tomography

Rayleigh-wave HV

  • DOP-E: Rayleigh wave ellipticity, measurement and inversion from ambient noise written in Fortran and Python
  • Quake-E: Measure Rayleigh wave ellipticity from earthquake data written in Python

Noise HVSR

  • Geopsy: An open source software for geophysical research and application written in C++
  • IRIS HVSR: A set of Python scripts to compute and plot HVSR curves using MUSTANG PDF-PSD web service from IRIS | IRIS website
  • hvsrpy: A Python package for horizontal-to-vertical spectral ratio processing
  • H/V Toolbox: A toolbox to calculate surface-wave HVSR
  • HV-Inv: Inversion of HVSR and SW dispersion
  • OpenHVSR: Measurement and Inversion of HVSR written in Matlab
  • HV-TEST: A tool for the verification of the reliability and clarity of the H/V peak according to the SESAME criteria
  • HVResPy: An open-source Python tool for Geopsy HVSR post-processing

Receiver Function Measurements and Inversion

Inversion of teleseismic waveforms

  • MC3deconv: Bayeisan inversion to recover Green’s functions of receiver-side structures from teleseismic waveforms

Joint Inversion of Seismological Data

  • BayHunter: McMC transdimensional Bayesian inversion of surface wave dispersion and receiver functions in Python
  • Huajian Yao’s Lab: Inversion of Vs, Vp/Vs, and interface depth using (multimode, Rayleigh and/or Love, phase and/or) dispersion data and Rayleigh wave fundamental mode ZH data (ellipticity) based on the Neighborhood Algorithm in Fortran
  • Weisen Shen’s MCMC inversion code for a workshop in Peking University in 2017: joint inversion of surface-wave dispersion data and receiver function
  • SEIS_FILO: SEISmological inversion tools for Flat and Isotropic Layered structure in the Ocean (Transdimensional inversion of surface wave and receiver functions)
  • RfSurfHmc: Joint inversion of Receiver Function and Surface Wave Disperion by Hamilton Monte Carlo Method
  • jointBSVpVs: Joint inversion of body and surface wave data for Vp/Vs
  • LitMod_seis: A joint inversion code for inverting Vs and anisotropy data (Rayleigh and Love phase and/or group velocities, ellipticity (Z/H ratio) and receiver functions) with a Markov Chain Monte Carlo method. (Released soon)

Multi-observable Modelling and Inversion of Geophysical Data

  • LitMod: Multi-observable modelling of geophysical data
    • LitMod_2D: An interactive software to perform multi-observable forward modelling of geophysical data for 2D whole lithospheric structure of the Earth and/or other terrestrial planets | new version in Github
    • LitMod_T: the “transient” equivalent of LitMod_2D
    • LitMod_3D: 3D integrated geophysical-petrological interactive forward modelling of the lithosphere and underlying upper mantle | new version in Github
    • LitMod_4INV: A fully nonlinear probabilistic inversion code in spherical coordinates for the compositional and thermal structure of the lithosphere and upper mantle, simultaneously inverting gravity gradients, gravity anomalies, geoid height, surface heat flow, magnetotelluric data, receiver functions, surface-wave data, absolute elevation (including both static and dynamic effects) and body-wave data, together with petrological information.
  • JDSurfG: Joint Inversion of Direct Surface Wave Tomography and Bouguer Gravity

Full Waveform Inversion

  • IFOS2D: 2D elastic full waveform inversion
  • IFOS3D: 3D elastic full waveform inversion
  • DENISE-SH: 2D SH-wave full waveform modeling and inversion
  • DENISE: 2D PSV-wave full waveform modeling and inversion
  • 2DNoise_Adjoint_tomography: 2D ambient noise adjoint tomography and joint inversion of ambient noise and teleseismic body-wave
  • 2DZH_Adjoint_tomography: 2D ZH Amplitude Ratios adjoint tomography
  • SeisElastic2D: An open-source package for multiparameter FWI in isotropic-, anisotropic- and visco-elastic media
  • seisDD: Double-difference adjoint seismic tomography
  • Salvus: Full waveform modelling and inversion
  • SAVA: 3D seismic modelling, FWI and RTM code for wave propagation in isotropic (visco)-acoustic/elastic and anisotropic orthorhombic/triclinic elastic media
  • ASKI: Modularized program suite for sensitivity analysis and iterative full waveform inversion
  • LASIF: Framework for large scale full waveform inversion
  • SES3D: Simulation of elastic wave propagation and waveform inversion in a spherical section
  • FWI.jl: 2D/3D acoustic FWI in Julia
  • GERMAINE: 2D Acoustic frequency-domain Full Waveform modeling and inversion code.
  • TOY2DAC: 2D Acoustic frequency-domain Full Waveform modeling and inversion code
  • travel time and waveform modelling near fault zone: bilibili vedio & linkresearcher

Intrinsic Attenuation and Scattering

  • CodaNorm: a software package for the body-wave attenuation calculation by coda-normalization method
  • MuRAT: a Matlab Package for Seismic Attenuation Tomography at multiple Earth scales using Body and Coda Waves
  • qopen: Separation of intrinsic and scattering Q by envelope inversion
  • usattenuation: Intrinsic attenuation, scattering attenuation and site amplification for the contiguous U.S.
  • psphoton: Monte Carlo simulation of elastic-wave scattering processes in Earth’s interior
  • PSPHOTON_POSO: Code in development to model Po/So envelopes

Shear Wave Splitting

  • SplitLab: Shear-wave birefringence analysis code, written in Matlab | An updated version
  • MFAST: Multiple Filter Automatic Splitting Technique written in Fortran
  • MSAT: MATLAB Seismic Anisotropy Toolkit
  • multisplit: Shear-wave birefringence analysis code
  • SHEBA: Shear-wave birefringence analysis code
  • SplitRacer: Shear-wave splitting analysis written in Matlab
  • SplitPy: Teleseismic shear-wave (SKS) Splitting Toolbox written in Python
  • pyfwrd: A forward modelling code for surface wave, receiver functions and shear wave splitting, given tilted hexagonal symmetric media

Ambient Noise Inversion

  • MSNoise: A Python Package for Monitoring seismic velocity changes using ambient seismic noise
  • yam: Yet another monitoring tool using correlations of ambient noise written in Python
  • NoisePy: Fast and easy computation of ambient noise cross-correlation functions written in Python, with noise monitoring and surface wave dispersion analysis
  • SeisNoise: Fast and easy ambient noise cross-correlation in Julia, with noise monitoring and surface wave dispersion analysis

Imaging of Earth interior

  • PKPprecursor: Locating seismic scatterers in the lower mantle, using PKP precursor onsets
  • ss-precursors: SS Precursor Workflow by Nicholas Mancinelli

Seismic Data Analysis

Phase Picking

  • Adaptive Stacking: Adaptive stacking to estimating traveltime residual patterns across a network of seismic stations | Adaptive stacking at iEarth
  • AIMBAT: A Python/Matplotlib Tool for Measuring Teleseismic Arrival Times
  • CrazySeismic: A MATLAB GUI-based package to process single channel seismic data (picking, McCC, PCA, Deconvolution)
  • CrazyTremor: A MATLAB GUI-based package to display and picking multi-channel seismic data
  • mccc: Determines optimum relative delay times for seismograms by multi-channel cross-correlation
  • generalized-phase-detection: Generalized Seismic Phase Detection with Deep Learning
  • PhaseNet: A Deep-Neural-Network-Based Seismic Arrival Time Picking Method
  • PhasePApy: Seismic Phase Picker and Associator, written in Python
  • P-Phase Picker: Detecting P-phase onset written in Java and Matlab

Seismic interferometry

Single Station Signal Analysis

  • Polfre: Time-Frequency Dependent Polarization written in Fortran
  • Station Analysis Tools: A set of c routines for computation of power spectral densities, coherence, probability density functions, and a handful of other tools for monitoring the health of a station | iris code site
  • MUSTANG: A quality assurance system at the IRIS DMC that provides metrics pertaining to seismic data quality | Tutorial
  • IRIS DMC Noise Toolkit Products
  • PQLX: An open-source software system for evaluating seismic station performance and data quality
  • Est_noise: Analyze time-series data to quantify temporal correlations and simultaneously estimate rates, offsets, and other functional dependencies.
  • Time-frequency analysis
    • TF-SIGNAL: Computation and visualization of time-frequency representations of time signals using one or more of seven alternative methods of time-frequency analysis
  • BCseis: a MatLab GUI and set of inline functions for performing various non-linear thresholding operations using the Continuous Wavelet Transform

Array Seismology

  • ObsPy: Data download, processing and visulization software written in Python
  • Geopsy: An open source software for geophysical research and application written in C++
  • ts-PWS: Time-scale phase weighted stacking written in C

Seismic data digitization

  • DigitSeis: A Digitization Software for Analog Seismograms, written in Matlab

Seismograph problem detection and correction

  • OrientPy: Estimate seismometer orientation written in Python
  • DLOPy: Calculate OBS horizontal orientations based on Raleigh-wave arrival angle written in Python
  • CWPAR: Clipped Waveform Pickup and Restoration written in Matlab
  • Automatic-detection-of-clipped-seismic-waveform: in Matlab
  • ATacR: Automated Tilt and Compliance Removal (for ocean bottoms seismometers) written in Matlab
  • OBStools: Removing vertical component noise from tilt and compliance effects written in Python

Pattern Recognition and Machine Learning

  • scikit-learn: Machine Learning in Python
  • Detex: A Python package for subspace detection and waveform similarity clustering
  • dbscan1d: An efficient 1D implementation of the DBSCAN clustering algorithm in Python
  • Sequencer: An algorithm that detects one-dimensional sequences in complex datasets in Python

Signal processing

  • FFTW: a C subroutine library for computing the discrete Fourier transform (DFT)
  • SeisSound: The Audio/Video Seismic Waveform Visualization
  • datamovies: a couple of demo codes for sonifying data

Geosciences

Tectonics

  • GPlates: A desktop software for the interactive visualisation of plate-tectonics

Gravity

  • Harmonica: Forward modeling, inversion, and processing gravity and magnetic data
  • Moho inversion: Fast non-linear gravity inversion in spherical coordinates with application to the South American Moho.
  • GRAV3D: Forward modelling and inversion of surface, borehole, and airborne gravity data in 3D
  • Gravity modelling and inversion in 2D: A very simple matlab code to illustrate the basics of gravity modelling and inversion
  • SphGraGLQ: A fast and adaptive gravity forward computation method by Gauss-Legendre Quadrature in spherical coordinates in C

GPS & InSAR

  • GMTSAR: An InSAR processing system based on GMT
  • SDM: Geodetic finite-fault slip inversion based on co-seismic surface deformation data (GPS, InSAR, etc.)

Geophysics

  • distaz: Classic codes to calculate distance, azimuth and back-azimuth of any two points at the Earth’s surface | Chinese note
  • AFAT: Solving the Christoffel equation: phase and group velocities
  • PlateFlex: Estimate lithosphere elstatic thickness written in Python and Fortran

Analyzing and Visualization

Thermodynamics

Inversion

Inversion theory and methods

Monte Carlo methods

Gradient methods

  • Systems Optimization Laboratory
    • Iterative solvers for sparse Ax = b: SYMMLQ, MINRES, MINRES-QLP, cgLanczos, CRAIG
    • Iterative solvers for sparse least-squares problems: LSQR, LSMR, LSLQ, LNLQ, CGLS, covLSQR, LSRN
    • Sparse and dense LU factorization (direct methods): LUSOL, LUMOD
  • LSQR: Modern Fortran sparse linear systems solve

Linear Algebra

  • LAPACK: Linear Algebra PACKage | LAPACK Working Notes | GitHub
  • BLAS: Basic Linear Algebra Subprograms
  • LINPACK: a collection of Fortran subroutines that analyze and solve linear equations and linear least-squares problems, which has been largely superceded by LAPACK

Software Library

Seismic Library

Geophysical Library

  • Fatiando: Open-source Python tools for geophysics
    • Looking for the below fatiando package? Please check the last paragarphy
    • fatiando package: An open-source Python library for modeling and inversion in geophysics. Its development has been stoped in favor of new libraries.
  • softwares in UNAVCO: softwares used in Geodesy studies.

Computation and Mathmatical Library

Computer Library


Earth Science Software Centers

Revision history

  • 2019-12-25: update some links,commit to SeisMan
  • 2019-11-07: initial draft, reference to SeisMan’s links