Skip to main content

An Efficient and Integrated Python Package for Computing Synthetic Seismograms in a Layered Half-Space Model

Project description

Image 2

GitHub code size in bytes GitHub Actions Workflow Status Github Tag GitHub License

Image 2

Like this project? Give it a Star!

中文文档 | English Document

Overview

PyGRT: An Efficient and Integrated C/Python Package for Computing Synthetic Seismograms, Strain, Rotation and Stress Tensor in a Layered Half-Space Model (Dynamic & Static Cases)

  • PyGRT now can compute following properties in both dynamic and static case.
    ✔️ Displacements and its spatial derivatives
    ✔️ Strain Tensor
    ✔️ Rotation Tensor
    ✔️ Stress Tensor

  • At present, PyGRT can run on
    ✔️ Linux
    ✔️ MacOS
    ✔️ Windows

  • PyGRT is extremely easy to install by distributing pre-built binary files.

  • PyGRT now supports the model with liquid layers.

  • PyGRT is still evolving, and more features will be released in the future.

  • Surface wave modules will be released soon.

Features

  • Dual-Language:
    To optimize performance, PyGRT uses C for its core computational tasks, while Python provides a user-friendly interface. Support script style and command line style to run the program.

  • Parallelization:
    Accelerated with OpenMP for parallel processing.

  • Integration:
    Built on the Generalized Reflection-Transmission matrix Method (GRTM) and the Discrete Wavenumber Method (DWM), PyGRT integrates the Peak-Trough Averaging Method (PTAM), Filon’s Integration Method (FIM) and Self-Adaptive Filon’s Integration Method (SAFIM) to handle diverse source-receiver distributions.

  • Modular Design:
    Clean and organized code structure, making it easy to extend and maintain.

  • Compatibility:
    PyGRT provides pre-built static files, ensuring ease of installation, usage, and portability across different systems.

Image 2

Pre-Requisite

  • For Thread-Level Parallel Computing
    • OpenMP

      • For Linux and macOS users: If the GNU compiler is installed on your system, the OpenMP library is usually included.
      • For Windows users: OpenMP has been statically linked.

      In general, you don't have to worry about it. However, if the program complains that "libgomp.so not found" or "needs more dependencies", you should install OpenMP.


  • For Python Script Style
    • Anaconda (recommend), to build your virtual environment.
    • Other dependencies are declared in setup.py, automatically handled by pip install.

  • For Command Line Style
    the output waveforms are binary files in SAC format, you need Seismic Analysis Code (SAC) to view and process.

Installation

In PyGRT, the C programs and libraries operate independently of Python (not CPython or Cython). If you are not familiar with Python and pip, and prefer the Command Line Style, you can quickly run the program by downloading the latest GitHub release for your machine. The necessary files are located in the pygrt/C_extension/bin and pygrt/C_extension/lib folders.


Two ways, choose one:

  1. PYPI (recommend)
    Run the following command in your virtual environment:

    pip install -v pygrt-kit
    
  2. Github release

    • Download the latest release for your machine, uncompress, and change the directory.

    • Run the following command in your virtual environment:

      pip install -v .
      
  3. *Build from Source Code.
    See 中文文档 | English Document

Setting

For Command Line Style, run

python -m pygrt.print

the outputs are

PyGRT installation directory: </path/to/installation>
PyGRT executable file directory: </path/to/installation/bin>
PyGRT library directory: </path/to/installation/lib>

and you can

  • add "executable file directory" to PATH environment variable.

Then you can run the command like grt in terminal.
For each command, use -h to see the help message.

Usage Example

example/ folder shows some examples in paper. More examples are coming soon.

multi traces lamb problem

static_dc static_sf static_exp

imag_G

imag_G

imag_G

Contact

If you have any questions or suggestions, feel free to reach out:

Citation

(Since PyGRT has been under continuous maintenance and expansion during the peer review, its functions have exceeded the scope described in this paper. For detailed usage of each function, please refer to the documentation.)

Zhu D., J. Wang*, J. Hao, S. Yao, Y. Xu, T. Xu and Z. Yao (2025). PyGRT: An Efficient and Integrated Python Package for Computing Synthetic Seismograms in a Layered Half-Space Model. Seismological Research Letters. (accepted)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pygrt_kit-0.12.0-py3-none-win_amd64.whl (9.0 MB view details)

Uploaded Python 3Windows x86-64

pygrt_kit-0.12.0-py3-none-manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded Python 3

pygrt_kit-0.12.0-py3-none-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

pygrt_kit-0.12.0-py3-none-macosx_10_9_x86_64.whl (5.7 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file pygrt_kit-0.12.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: pygrt_kit-0.12.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pygrt_kit-0.12.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 56ef1c46cb0bd1bb8e00fc3b5606a4abe6b8bdf8ddef9f1e13e3081ee87e7576
MD5 6f0d98b0b7f87a989185bcccc9cc51c2
BLAKE2b-256 2d4b95715a68ac54c68b50ea9a78e8c9bbf78e4608c2a129cb9eb6b05057f2d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygrt_kit-0.12.0-py3-none-win_amd64.whl:

Publisher: build.yml on Dengda98/PyGRT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pygrt_kit-0.12.0-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pygrt_kit-0.12.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 deb6fa0776e39044de0db2df2a64add7d3a2223517f4fe59faa54dab0fc47841
MD5 f305897dc68f7edf1038958a8990b3ab
BLAKE2b-256 a751d10be422c1c457f049a316cf3c8296bd88eda6708d36cb39f0d9ae2cd99a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygrt_kit-0.12.0-py3-none-manylinux2014_x86_64.whl:

Publisher: build.yml on Dengda98/PyGRT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pygrt_kit-0.12.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pygrt_kit-0.12.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a49caecc61e946da2114e449fdc3df4fe53e512409919d31f7f19fe9020804c0
MD5 1139f84a928312175e6a20b08bf82923
BLAKE2b-256 9d8dec637fbe98621d37f14c87b56015d8041153862c4505a3ce4c57523ff619

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygrt_kit-0.12.0-py3-none-macosx_11_0_arm64.whl:

Publisher: build.yml on Dengda98/PyGRT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pygrt_kit-0.12.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pygrt_kit-0.12.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ea65a63f9721665bbd16d02bbdfffa607e0ce0c8cb3ba05bdb7b705063b343fa
MD5 0539c9b78a8120d158a8d216801650df
BLAKE2b-256 ebf8610da531fb4233eaa73d11498fcc5fb7f76882bd8c56244b59e724fe10ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygrt_kit-0.12.0-py3-none-macosx_10_9_x86_64.whl:

Publisher: build.yml on Dengda98/PyGRT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page