Codes
文章目录
Seismic Data Downloading and Processing
Data Request Tools
- FDSN Web Services | Chinese note
- IRIS DMC: IRIS Data Management Center
- Web Services: clients
- FDSNWS: Chinese note of IRIS Fetch scripts
- IRISWS: e.g., fedcatalog & sacpz
- MUSTANG: data quality analysis services
- PH5WS: provide PH5 data and metadata | Accessing PH5 Archive with FetchData | wiki
- ROVER: A command line tool to robustly retrieve geophysical timeseries data from data centers
- BREQ_FAST: Seismic data request by sending email | Chinese note
- IRIS Wilber 3: A web GUI to request waveform data of individual seismic events | Chinese note
- jweed: Data request client written in Java
- Web Services: clients
- SOD: a very powerful seismic data request tool | Chinese tutorial | SeisMan’s recipes | coreman’s recipes
- ObsPy: Data download, processing and visulization software written in Python
- Retrieving Data from Data Centers: e.g.,
FDSN Web Services
&IRIS Web Services
- Some scripts
- Live Jupyter Notebooks for Seismology: Workshops - ORFEUS_lisbon_2017_EIDA_webservices
- ObsPy Teaching Material: Workshops / Posters / Presentations
- EIDA’s examples:
using direct HTTP requests
andObsPy FDSN Client
- AusPass’s examples: Access AusPass data with ObsPy
- fetch_Events: Download event data from IRIS-DMC
- fetch_NOISE: Download daily seismograms from the IRIS-DMC
- Retrieving Data from Data Centers: e.g.,
- SAC: Seismic Analysis Code, the most commonly used seismic data processing software | Request
- Data Access
- Chinese manual (better) | Zhigang Peng’s tutorial | IRIS’s manual | An intro video
- SeisIO.jl: Data download, processing and visulization software written in Julia
- GISMO: Data download, processing and visulization software written in Matlab
- HinetPy: Request data from Hi-net server, written in Python | Hinet notes
- FnetPy: A Python package to request seismic waveform data from F-net
- StrongMotion Fetch: download and/or process strong motion data from various networks
Seismic Data Format Conversion
- ObsPy: Data download, processing and visulization software written in Python
- Waveform Import/Export Plug-ins | Supported Formats
- r16: ObsPy plugin to read data in the format of Receiver Gather 1.6-1, which is used to store data recorded by Farfield Nodal’s Zland product line (no longer needed)
- rdseed: Convert seismic data from SEED format to other common format, e.g., SAC
- Data extraction has some problems with the sources. We have to use the binary instead, which can be found in IRIS. | Chinese install manual | Chinese note
- mseed2sac: Convert miniSEED format to SAC format
- msmod: A small program to modify miniSEED header values
- dataselect: Selection and sorting for data in miniSEED format
- sac2mseed: Convert SAC format to minniSEED format
- SAC: Seismic Analysis Code, the most commonly used seismic data processing software | Request
- SAC不同格式间的转换 | SAC Tools
- Chinese manual (better) | Zhigang Peng’s tutorial | IRIS’s manual | An intro video
- GIPP softwares: a collection of software utilities for initial pre-processing of recorded data
- CubeTools: Data Format conversion software for CUBE data
- win32tools: Convert WIN32 format used by Hi-net, to SAC format
Seismic Data Processing
- SAC: Seismic Analysis Code, the most commonly used seismic data processing software | Request
- SAC Tools: A collection of SAC tools written in C
- Chinese manual (better) | Zhigang Peng’s tutorial | IRIS’s manual | An intro video
- 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
- GMT China | GMT Chinese Manual
- GMT gallery | GMT中文图库
- GMT-plotting: Collection of GMT scripts
- try-GMT: Try
GMT
,PyGMT
, andGMT.jl
online! All in one place! - pssac: GMT-style SAC trace plotting for GMT4 | pssac notes | pssac2 notes
- 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
- TauP: Calculate travel times, ray paths, pierce and turning points etc. | Chinese introduction
- obspy.taup: TauP, rewritten in Python
- iaspei-tau traveltime table package
- Arthur Snoke’s version: Traveltime calculator for iasp91 and AK135 models | IASPEI | IRIS code
- B.L.N. Kennett and Ray Buland’s version: Calculation of travel times and ellipticity corrections for iasp91 and AK135 models | Some revisions to compile the codes
- George Helffrich’s version: Traveltime calculator for iasp91, AK135, PREM etc.
- Cake: Traveltime calculation software, written in Python
- fast_methods: N-Dimensional Fast Methods: Fast Marching, Fast Sweeping, Group Marching, Fast Iterative, etc. in Cartesian coordinate written in C++
- FM3D: 3D traveltime calculation using Fast Marching Method in spherical coordinates written in Fortran | FM3D at iEarth
- pykonal: 2D/3D traveltime calculator using Fast Marching Method for eikonal equation in Cartesian and spherical coordinates
- scikit-fmm: Fast marching method in Cartesian coordinates written in Python
- pySeismicFMM: Python based travel time calculation in regular 2D and 3D grids in Cartesian and geographic coordinates using Fast Marching Method
- RSTT: Regional Seismic Travel Time
- ANISOtime: Traveltime calculation for transversely isotropic (TI) spherically symmetric models
- Surface Wave Ray Tracing with Azimuthal Anisotropy: Surface Wave Ray Tracing with Azimuthal Anisotropy | Lapo Boschi’s homepage
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
- aser: Calculate synthetic seismograms based on Generalized Ray Theory
- Ray theory: Ray-theoretical approach to the calculation of synthetic seismograms in global Earth models
- Generalized ray in CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
- Asymptotic ray theory in CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
- WKBJ method in seisan: Seismology at GEUS
- CRT: Complete ray tracing subroutine package
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
- Wavenumber integration method in CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
- Discrete wavenumber method in seisan: Seismology at GEUS
Modal Summation in 1D layered Earth
- Modal Summation in CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
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
- 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
- DSM-SEM & AxiSEM-SEM can be found in
- 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
- Waveform modelling of fault zone: Yehuda Ben-Zion’s codes used to model point/line dislocation in fault zone layers.
- CPSPy: Python interface for CPS330
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
- Multitaper Spectrum Estimation Library
- mtspec: Python (ctypes) wrapper for the Multitaper Spectrum Estimation Library
Seismic Imaging
Body-wave tomography
- Nick Rawlinson’s softwares
- FMTOMO: 3-D traveltime tomography based on fast marching method | FMTOMO at iEarth
- FMTT: Teleseismic tomography based on fast marching method | FMTT at iEarth
- SIMUL2000: Traveltime tomography
- RAYINVR: 2-D traveltime inversion and amplitude modeling programs | A modified version
- FAST: 3-D First Arrival Seismic Tomography programs
- tomoDD: double-difference tomography | bilibili vedio & linkresearcher
Earthquake surface-wave phase/group velocity dispersion
- Huajian Yao’s Lab
- Auto_TAnaylsis_GUI: Automatic Surface Wave Two-station Dispersion Analysis (Matlab GUI)
- 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
- CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
- Surface Waves: CPS330’s tutorial on surface wave
- two-station technique to obtain phase velocities
- SurfaceWaveMFA: Surface Wave Multiple Filter Analysis
Ambient noise surface-wave phase/group velocity dispersion
- Research Products from CU-Boulder
- Huajian Yao’s Lab: 2020 USTC seismic training: bilibili vedio & linkresearcher
NoiseCorr
: Ambient noise cross-correlation codes for daily long SAC format data in MatlabEGFAnalysisTimeFreq
: 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
- seismic-noise-tomography: Python framework for seismic noise 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
- hk: Receiver function package (deconvolution and H-k stacking) | Chinese note
- h-k c: Generalized H-k after harmonic correction on receiver functions | 2020 USTC seismic training: bilibili vedio | linkresearcher
- CCP: Common-Conversion-Point (CCP) stacking of receiver functions | Chinses note
- psdm: A wave equation migration method for receiver function imaging | bilibili vedio & linkresearcher
- CPS330: Collection of programs for calculating theorectical seismogram, receiver function, surface wave dispersion curve et al. | Chinese install introduction and Chinese introdution
- Jeffrey Park’s codes: recfunk09_pick | recfunk_ascii | manual | some updates at JParkCodes
- Charles J. Ammon’s codes: Receiver-Function Analysis
- Collection of some group codes for RF analysis
- Charles Ammon’s codes
- Cheng’s codes: including Qingju Wu’s method (maximum entrop deconvolution),
burgays
- RfPy: Receiver function caculcation written in Python, along with post-processing (e.g., hk, harmonic decompositino, CCP).
- rf: Receiver function calculation written in Python
- RF_INV: Receiver function inversion by reversible-jump Markov-chain Monte Carlo in Fortran
- rj-RF: Inversion of Receiver Functions using Reversible jump Markov chain Monte Carlo algorithm
- IRFFM: Interactive Receiver Functions Forward Modeller written in Java
- CrazySeismic: A MATLAB GUI-based package to process single channel seismic data (picking, McCC, PCA, Deconvolution) | 2020 USTC seismic training: bilibili vedio | linkresearcher
- FuncLab: a Matlab based GUI for handling receiver functions (link does work) | revised FuncLab
- processRFmatlab: matlab functions and scripts for working with receiver functions
- SplitRFLab: A Matlab toolbox of processing receiver functions and shear wave spliting modified from Splitlab and processRFmatlab
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
- inter_source_interferometry: Inter-source interferometry by cross-correlation of coda waves written in Python
- ThreeStation: Three-station 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
- Noise Toolkit
- PDF-PSD: Computing Power Spectral Densities (PSD) of waveform data
- microseism energy: Performing microseism energy computations from PSDs
- Polarization attributes: Performing frequency dependent polarization analysis of seismograms
- Noise Toolkit
- 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
- MATLAB for Analyzing and Visualizing Geospatial Data: IRIS webinar
- Ghostscript: an interpreter for the PostScript language and PDF files | Download & Old releases
Thermodynamics
- Perple_X: calculating and displaying phase diagrams, phase equilibria, and thermodynamic data | Documentation | Thermodynamic Data Files | Glossary | Chinese tutorial at bilibili
- THERMOCALC: calculates model phase equilibria involving the HPx-eos and/or individual end-members from the Holland & Powell dataset
- BurnMan: A thermodynamic and geophysics toolkit for the Earth and planetary sciences
Inversion
Inversion theory and methods
- Parameter Estimation and Inverse Problems Example Code and Associated Subroutines: a compilation of inverse and parameter estimation code that accompanies the second edition of the textbook “Parameter Estimation and Inverse Problems”
Monte Carlo methods
- MCMC codes: some MCMC codes written by Marko Laine
- Delayed Rejection Adaptive Metropolis (DRAM) in Fortran: A simple teaching code in Fortran of the DRAM method
- rj-MCMC: A library providing routines for running Reversible Jump Monte-Carlo Markov chains for 1-D and 2-D spatial regression problems
- rjmcmc: Reversible-Jump MCMC Using Post-Processing written in R
- emcee: Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler
- Malcolm Sambridge’s softwares
- Neighborhood-Algorithm: A simple NA implementation in c++
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
- uOttawa Geophysics: Some seismic softwares by geophysics group at University of Ottawa
- GPIAG-Software: Software developed in the working group: applied geophysics at the geophysical institut of the KIT (Karlsruhe Institute of Technology)
- William Menke’s codes
- Live Jupyter Notebooks for Seismology: Some python scripts used in seismology
- Seismic waves in complex 3D structures
- pyrocko: an open source seismology toolbox and library written in the Python
- seisan: SeisAn Earthquake analysis software
- libmseed: A miniSEED library that provides a framework for manipulation of SEED data records
- CREWES Matlab Toolbox: Numerical Methods of Exploration Seismology
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.
- Looking for the below
- softwares in UNAVCO: softwares used in Geodesy studies.
Computation and Mathmatical Library
- Netlib: a collection of mathematical software, papers, and databases
- GNU Scientific Library: a numerical library for C and C++ programmers | doc
- SHTOOLS: Spherical Harmonic Tools
- Shansyn: Spherical Harmonic ANalysis and SYNthesis
- SEISCOPE TOOLBOX: Seiscope optimization toolbox
- The Computational Geometry Algorithms Library
- The Comprehensive R Archive Network
Computer Library
Earth Science Software Centers
- IRIS SeisCode
- CIG Software
- iEarth
- Seismology & Mathematical Geophysics Research Group Software (In the Australian National University)
- GFZ software
- USC Software
- ETH Seismology and Geodynamics
- USGS Software | Old website
- SPICE Software
- QUEST Software
- NuQuake Software
- GPIAG-Software
- EarthByte software
- MTNet: source codes in electromagnetic community
Revision history
- 2019-12-25: update some links,commit to SeisMan
- 2019-11-07: initial draft, reference to SeisMan’s links
文章作者 core-man
上次更新 2020-03-15