Seispy Documentation#

License GitHub code size in bytes GitHub repo size DOI

CRV test codecov Upload Python Package Seispy docs

Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge

PyPI PyPI - Python Version

GitHub stars

Seispy is a Python module for processing seismological data and calculating Receiver Functions. The advanced functions are available to improve the Obspy.

I have been writing Seispy when I was a master student. At first, I wanted to calculate Receiver Functions in Python, but there is no suitable toolkit. Fortunately, The Obspy provided mounts of APIs for processing seismic data, so I ported codes for calculating Receiver Functions from Matlab to Python. Today increased functions have been added to Seispy to further process seismic data over than Obspy.


Install via PyPI

pip install python-seispy

Install via conda

conda install seispy -c conda-forge

Further details are available in the Installation Guide.

Learning resources#

See also

Access here for video tutorial in Chinese


  • seispy.distaz: Calculate distance and azimuth credited by the lithospheric seismology program at USC, but numpy.ndarray operations are supported.

  • seispy.geo: Tiny codes of geophysics.

  • seispy.decon: Functions of deconvolution transferred from iwbailey/processRFmatlab including

    • Iterative time domain deconvolution method (Ligorría and Ammon 1999 BSSA).

    • Water level frequency domain deconvolution method (CJ. Ammon 1991 BSSA)

  • seispy.rf: Procedure for RF calculation. The functions of match_eq, search_eq invoked obspy.core.UTCDateTime and obspy.clients from the Obspy.

  • seispy.eq: RF processing for each event, which invoked, obspy.signal, obspy.taup and obspy.core.Stream from the Obspy.

  • H-k stacking for single station (Zhu and Kanamori 2000 JGR).

  • seispy.rfani: A joint method for crustal anisotropic calculation (Liu and Niu 2011 GJI).

  • seispy.slantstack: Slant stacking for single station (Tauzin et al., 2008)

  • seispy.rfcorrect: Subsequent process of RFs including moveout correction and time to depth conversion (1D and 3D) (see Xu et al., 2018 EPSL)

  • seispy.ccpprofile: CCP stacking along a profile.

  • seispy.ccp3d: 3-D CCP stacking with extracting depth D410 and D660.


Ammon C J. The isolation of receiver effects from teleseismic P waveforms[J]. Bulletin-Seismological Society of America, 1991, 81(6): 2504-2510.

Liu H, Niu F. Estimating crustal seismic anisotropy with a joint analysis of radial and transverse receiver function data[J]. Geophysical Journal International, 2012, 188(1): 144-164.

Krischer L, Megies T, Barsch R, et al. ObsPy: A bridge for seismology into the scientific Python ecosystem[J]. Computational Science & Discovery, 2015, 8(1): 014003.

Ligorría J P, Ammon C J. Iterative deconvolution and receiver-function estimation[J]. Bulletin of the seismological Society of America, 1999, 89(5): 1395-1400.

Tauzin B, Debayle E, Wittlinger G. The mantle transition zone as seen by global Pds phases: No clear evidence for a thin transition zone beneath hotspots[J]. Journal of Geophysical Research: Solid Earth, 2008, 113(B8).

Xu M, Huang H, Huang Z, et al. Insight into the subducted Indian slab and origin of the Tengchong volcano in SE Tibet from receiver function analysis[J]. Earth and Planetary Science Letters, 2018, 482: 567-579.

Zhu, L., and Kanamori, H. Moho depth variation in southern California from teleseismic receiver functions[J]. J. Geophys. Res., 2000, 105( B2), 2969– 2980, doi:10.1029/1999JB900322.