pyprop8

pyprop8: A lightweight code to simulate seismic observables in a layered half-space - Published in JOSS (2022)

https://github.com/valentineap/pyprop8

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 17 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    3 of 8 committers (37.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Mathematics Computer Science - 84% confidence
Last synced: 6 months ago · JSON representation

Repository

A lightweight Python code to calculate the seismic response of a layered half-space (including static components), and derivatives of the wavefield wrt source components.

Basic Info
  • Host: GitHub
  • Owner: valentineap
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 34 MB
Statistics
  • Stars: 27
  • Watchers: 2
  • Forks: 5
  • Open Issues: 4
  • Releases: 9
Created over 5 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Contributing License Code of conduct

README.md

DOI PyPI version Binder

pyprop8

This package provides a lightweight Python implementation of the seismogram calculation algorithm set out in O'Toole & Woodhouse (2011), together with the source derivatives set out in O'Toole, Valentine & Woodhouse (2012). It is intended to provide a lightweight, easy-to-install seismological forward model suitable for use in teaching and research (in particular, to provide a computationally-cheap yet physically-realistic forward problem for use in the development and testing of inversion algorithms).

Full documentation is available here, and you can try the package out using Binder.

A list of projects that have made use of pyprop8 can be found here; please feel free to add your own.

Installation

The easiest way to get this package is through pip, e.g. pip install pyprop8 Alternatively, you can clone this repository and ensure that the contents of the src/ directory are placed somewhere where they can be found by your Python installation, e.g. by setting the $PYTHONPATH environment variable.

Dependencies

The core functions of this package depend only on: - numpy - scipy

pyprop8 will also use tqdm if it is available, to display progress bars.

Some of the examples found in examples/ may have additional dependencies and requirements, including Jupyter and matplotlib. Look for a requirements.txt file in the relevant example directory; you can install the necessary pacakges using the command pip install -r requirements.txt.

Citing this package

If you make use of this code, please acknowledge the work that went into developing it! In particular, if you are preparing a publication, we would appreciate it if you cite both the paper describing the general method, and this specific implementation:

  • O'Toole, T.B. & J.H. Woodhouse (2011), "Numerically stable computation of complete synthetic seismograms including the static displacement in plane layered media", Geophysical Journal International, 187, pp.1516-1536, doi:10.1111/j.1365-246X.2011.05210.x
  • Valentine, A.P. & M. Sambridge (2022), "pyprop8: A lightweight code to simulate seismic observables in a layered half-space", Journal of Open Source Software, 7, 4217, doi:10.21105/joss.04217.

If your work relies on being able to calculate the source parameter derivatives, you should also cite the paper describing how these are obtained:

  • O'Toole, Valentine & Woodhouse (2012), "Centroid–moment tensor inversions using high-rate GPS waveforms", Geophysical Journal International, 191, pp.257-270, doi:10.1111/j.1365-246X.2012.05608.x.

Acknowledgements

This package was developed at the Australian National University and Durham University by Andrew Valentine. It builds on earlier work by Tom O'Toole and John Woodhouse, and has benefited from sight of code written by those authors. In particular, the exponential rescaling of the propagator matrices is inspired by their implementation. However, the present code has been developed 'from scratch' based on the published algorithms.

This work has received support from the Australian Research Council under grants DE180100040 and DP200100053.

Owner

  • Name: Andrew Valentine
  • Login: valentineap
  • Kind: user
  • Location: Durham, UK
  • Company: Department of Earth Sciences, Durham University

JOSS Publication

pyprop8: A lightweight code to simulate seismic observables in a layered half-space
Published
August 26, 2022
Volume 7, Issue 76, Page 4217
Authors
Andrew P. Valentine ORCID
Department of Earth Sciences, Durham University.
Malcolm Sambridge ORCID
Research School of Earth Sciences, The Australian National University.
Editor
Leonardo Uieda ORCID
Tags
seismology earthquakes

GitHub Events

Total
  • Issues event: 3
  • Watch event: 3
  • Issue comment event: 2
Last Year
  • Issues event: 3
  • Watch event: 3
  • Issue comment event: 2

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 207
  • Total Committers: 8
  • Avg Commits per committer: 25.875
  • Development Distribution Score (DDS): 0.039
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Andrew Valentine a****e@d****k 199
Hannah Mark h****k@g****m 2
Thomas-Ulrich u****h@g****e 1
Malcolm Sambridge M****e@a****u 1
Leonardo Uieda l****a@g****m 1
Dominik Strutz 4****z 1
Malcolm Sambridge m****m@M****l 1
Malcolm Sambridge m****m@E****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 16
  • Total pull requests: 17
  • Average time to close issues: 2 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 6
  • Total pull request authors: 6
  • Average comments per issue: 1.94
  • Average comments per pull request: 0.24
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 0
  • Average time to close issues: about 1 hour
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 1.5
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • valentineap (10)
  • xichaoqiang (2)
  • hfmark (1)
  • Thomas-Ulrich (1)
  • 79seismo (1)
  • martijnende (1)
Pull Request Authors
  • valentineap (11)
  • msambridge (2)
  • Thomas-Ulrich (2)
  • leouieda (1)
  • hfmark (1)
  • dominik-strutz (1)
Top Labels
Issue Labels
joss-paper-reviewer-comment (9) documentation (2) enhancement (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 35 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 8
  • Total maintainers: 1
pypi.org: pyprop8

A lightweight package for synthetic seismograms

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 35 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 11.6%
Stargazers count: 12.7%
Forks count: 15.4%
Average: 15.4%
Downloads: 27.4%
Maintainers (1)
Last synced: 6 months ago

Dependencies

binder/requirements.txt pypi
  • matplotlib *
  • numpy *
  • pyprop8 *
  • tqdm *
docs/requirements.txt pypi
  • numpy *
  • scipy *
examples/otoole_papers/requirements.txt pypi
  • matplotlib *
  • numpy *
  • pyprop8 *
.github/workflows/python-publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
examples/idaho_wavefield_movie/requirements.txt pypi
  • PyQt5 *
  • mayavi *
  • numpy *
  • pyprop8 *
  • scipy *
  • tqdm *
examples/petrinja_wavefield_movie/requirements.txt pypi
  • PyQt5 *
  • mayavi *
  • numpy *
  • pyprop8 *
  • scipy *
  • tqdm *
pyproject.toml pypi