PyRaysum: Software for Modeling Ray-theoretical Plane Body-wave Propagation in Dipping Anisotropic Media


  • Wasja Bloch Department of Earth, Atmospheric and Ocean Sciences, University of British Columbia, Vancouver, BC, Canada
  • Pascal Audet Department of Earth and Environmental Sciences, University of Ottawa, Ottawa, Ontario, Canada



This article introduces PyRaysum, a Python software for modeling ray-theoretical body-wave propagation in dipping and/or anisotropic layered media based on the popular Fortran code Raysum. We improve and expand upon Raysum in several ways: 1) we significantly reduce the overhead by avoiding I/O operations; 2) we implement automatic phase labeling to facilitate the interpretation of complex seismograms; 3) we provide the means to correct inaccuracies in the calculated amplitude of free surface reverberations. We take advantage of the modern, object-oriented Python environment to offer various classes and methods to perform receiver function calculation, filtering and plotting. PyRaysum also integrates well with NumPy and ObsPy, two standard libraries for numerical computing and seismology. PyRaysum is built in Python version 3 and requires a Fortran compiler, but otherwise runs on all platforms. The software offers a high-level, ease-of-use user interface and is equipped with complete documentation and testing as well as tutorials to reproduce published examples from the literature. Time-optimized post-processing functions allow for the straightforward and efficient incorporation of PyRaysum synthetic data into optimization or probabilistic parametric search approaches.


David A. Okaya (2002). Anisotropic effects of non-axial seismic wave propagation in foliated crustal rocks. Geophysical Research Letters, 29(11).

Ryan Porter, George Zandt, & Nadine McQuarrie (2011). Pervasive lower-crustal seismic anisotropy in Southern California: Evidence for underplated schists and active tectonics. Lithosphere, 3(3), 201–220.

Heather Folsom Sherrington, George Zandt, & Andrew Frederiksen (2004). Crustal fabric in the Tibetan Plateau based on waveform inversions for seismic anisotropy parameters. Journal of Geophysical Research: Solid Earth, 109(B2).

Vadim Levin, & Jeffrey Park (1997). P-SH conversions in a flat-layered medium with anisotropy of arbitrary orientation. Geophysical Journal International, 131(2), 253–266.

Joachim Saul, M. Ravi Kumar, & Dipankar Sarkar (2000). Lithospheric and upper mantle structure of the Indian Shield, from teleseismic receiver functions. Geophysical Research Letters, 27(16), 2357–2360.

A. W. Frederiksen, & M. G. Bostock (2000). Modelling teleseismic waves in dipping anisotropic structures. Geophysical Journal International, 141(2), 401–412.

John F. Cassidy, & Robert M. Ellis (1993). S-wave velocity structure of the Northern Cascadia Subduction Zone. Journal of Geophysical Research: Solid Earth, 98(B3), 4407–4421.

Pascal Audet, Colin Thomson, Michael Bostock, & Tom Eulenfeld (2019). Telewavesim: Python software for teleseismic body wave modeling. Journal of Open Source Software, 4(44), 1818.

C.J. Thomson (1997). Modelling surface waves in anisotropic structures I. Theory. Physics of the Earth and Planetary Interiors, 103(3-4), 195–206.

Brian Kennett (2009). Seismic Wave Propagation in Stratified Media. ANU Press.

Lupei Zhu, & Hiroo Kanamori (2000). Moho depth variation in southern California from teleseismic receiver functions. Journal of Geophysical Research: Solid Earth, 105(B2), 2969–2980.

Hunter, J. (2007). Matplotlib: A 2D graphics environment. Computing in Science & Engineering, 9(3), 90–95.

Caswell, T., Droettboom, M., Lee, A., Hunter, J., Firing, E., Stansby, D., Klymak, J., Hoffmann, T., Andrade, E., Varoquaux, N., Nielsen, J., Root, B., Elson, P., May, R., Dale, D., Jae-Joon Lee, Seppänen, J., McDougall, D., Straw, A., Hobson, P., Gohlke, C., Yu, T., Ma, E., Vincent, A., Silvester, S., Moad, C., Kniazev, N., Ivanov, P., Ernest, E., & Katins, J.. (2020). matplotlib/matplotlib v3.1.3.

Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, Robert Kern, Matti Picus, Stephan Hoyer, Marten H. van Kerkwijk, Matthew Brett, Allan Haldane, Jaime Fernández del Río, Mark Wiebe, Pearu Peterson, Pierre Gerard-Marchant, Kevin Sheppard, Tyler Reddy, Warren Weckesser, Hameer Abbasi, Christoph Gohlke, & Travis E. Oliphant (2020). Array programming with NumPy. Nature, 585(7825), 357–362.

Virtanen, P., Gommers, R., Oliphant, T., Haberland, M., Reddy, T., Cournapeau, D., Burovski, E., Peterson, P., Weckesser, W., Bright, J., Walt, S., Brett, M., Wilson, J., Millman, K., Mayorov, N., Nelson, A., Jones, E., Kern, R., Larson, E., Carey, C., Polat, ., Feng, Y., Moore, E., VanderPlas, J., Laxalde, D., Perktold, J., Cimrman, R., Henriksen, I., Quintero, E., Harris, C., Archibald, A., Ribeiro, A., Pedregosa, F., van Mulbregt, P., & SciPy 1.0 Contributors (2020). SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nature Methods, 17, 261–272.

Lion Krischer, Tobias Megies, Robert Barsch, Moritz Beyreuther, Thomas Lecocq, Corentin Caudron, & Joachim Wassermann (2015). ObsPy: a bridge for seismology into the scientific Python ecosystem. Computational Science & Discovery, 8(1), 014003.

Vera Schulte-Pelkum, Gaspar Monsalve, Anne Sheehan, M. R. Pandey, Som Sapkota, Roger Bilham, & Francis Wu (2005). Imaging the Indian subcontinent beneath the Himalaya. Nature, 435(7046), 1222–1225.

F.M. Schneider, X. Yuan, B. Schurr, J. Mechie, C. Sippl, C. Haberland, V. Minaev, I. Oimahmadov, M. Gadoev, N. Radjabov, U. Abdybachaev, S. Orunbaev, & S. Negmatullaev (2013). Seismic imaging of subducting continental lower crust beneath the Pamir. Earth and Planetary Science Letters, 375, 101–112.

Kate Selway, Heather Ford, & Peter Kelemen (2015). The seismic mid-lithosphere discontinuity. Earth and Planetary Science Letters, 414, 45–57.

Prakash Kumar, Xiaohui Yuan, M. Ravi Kumar, Rainer Kind, Xueqing Li, & R. K. Chadha (2007). The rapid drift of the Indian tectonic plate. Nature, 449(7164), 894–897.

D. Lombardi, J. Braunmiller, E. Kissling, & D. Giardini (2008). Moho depth and Poisson′s ratio in the Western-Central Alps from receiver functions. Geophysical Journal International, 173(1), 249–264.

F.M. Schneider, X. Yuan, B. Schurr, J. Mechie, C. Sippl, S.-K. Kufner, L. Ratschbacher, F. Tilmann, I. Oimahmadov, M. Gadoev, V. Minaev, U. Abdybachaev, S. Orunbaev, A. Ischuk, & S. Murodkulov (2019). The Crust in the Pamir: Insights From Receiver Functions. Journal of Geophysical Research: Solid Earth, 124(8), 9313–9331.

Pascal Audet, & Roland Bürgmann (2014). Possible control of subduction zone slow-earthquake periodicity by silica enrichment. Nature, 510(7505), 389–392.

A. Arda Ozacar, & George Zandt (2004). Crustal seismic anisotropy in central Tibet: Implications for deformational style and flow in the crust. Geophysical Research Letters, 31(23).

T. Nicholson, M. Bostock, & J. F. Cassidy (2005). New constraints on subduction zone structure in northern Cascadia. Geophysical Journal International, 161(3), 849–859.

F. Sodoudi, X. Yuan, R. Kind, B. Heit, & A. Sadidkhouy (2009). Evidence for a missing crustal root and a thin lithosphere beneath the Central Alborz by receiver function studies. Geophysical Journal International, 177(2), 733–742.

Sarah J. Brownlee, Vera Schulte-Pelkum, Anissha Raju, Kevin Mahan, Cailey Condit, & Omero Felipe Orlandini (2017). Characteristics of deep crustal seismic anisotropy from a compilation of rock elasticity tensors and their expression in receiver functions. Tectonics, 36(9), 1835–1857.

Heimann, S., Kriegerowski, M., Isken, M., Cesca, S., Daout, S., Grigoli, F., Juretzek, C., Megies, T., Nooshiri, N., Steinberg, A., Sudhaus, H., Vasyura-Bathke, H., Willey, T., & Dahm, T.. (2017). Pyrocko - An open-source seismology toolbox and library.

B. L. N. Kennett (1991). The Removal of Free Surface Interactions From Three-Component Seismograms. Geophysical Journal International, 104(1), 153–154.


Additional Files



How to Cite

Bloch, W., & Audet, P. (2023). PyRaysum: Software for Modeling Ray-theoretical Plane Body-wave Propagation in Dipping Anisotropic Media. Seismica, 2(1).