A Python library for computing Coulomb Failure Stress Change.
Project description
Introduction
This Python package serves as the frontend for calculating and building a Green's function library for synthetic seismograms. The backend consists of Wang Rongjiang's program for calculating synthetic seismograms, including EDGRN/EDCMP, QSEIS_STRESS, SPGRN, and QSSP (Wang, 1999; Wang 2003; Wang and Wang 2007; Wang et al., 2017). The code includes two parallel modes: one using the multiprocessing library (single-node multi-process) and the other using MPI (multi-node).
Installation
- For user mode (with Python 3.12)
pip install pygrnwang
- For developer mode
conda create -n pygrnwang python=3.12
conda install gfortran obspy numpy scipy pandas matplotlib tqdm mpi4py -c conda-forge
git clone https://github.com/Zhou-Jiangcheng/pygrnwang.git
cd pygrnwang
pip install -e . --no-build-isolation
Usage
- An example for creating a Green's function library with qssp2020
from pygrnwang.create_qssp2020_bulk import *
if __name__ == '__main__':
wavelet_duration = 0
sampling_interval = 1
time_window = 4096 - sampling_interval
path_green = r'path\grns_qssp2020\ak135fc'
os.makedirs(path_green, exist_ok=True)
output_observables = [0 for _ in range(11)]
output_observables[0] = 1
output_observables[1] = 1
output_observables[2] = 1
pre_process_qssp2020(
processes_num=24,
path_green=path_green,
event_depth_list=[h for h in range(1, 41, 2)],
receiver_depth_list=[0],
dist_range=[3000, 12000],
delta_dist=10,
spec_time_window=time_window,
sampling_interval=sampling_interval,
max_frequency=0.2,
max_slowness=0.4,
anti_alias=0.01,
turning_point_filter=0,
turning_point_d1=0,
turning_point_d2=0,
free_surface_filter=1,
gravity_fc=0,
gravity_harmonic=0,
cal_sph=1,
cal_tor=1,
min_harmonic=4000,
max_harmonic=10000,
source_radius=0,
source_duration=wavelet_duration * sampling_interval,
output_observables=output_observables,
time_window=time_window,
time_reduction=-20,
path_nd=r'path\ak135fc.nd',
earth_model_layer_num=None,
physical_dispersion=0,
check_finished_tpts_table=False
)
create_grnlib_qssp2020_parallel(
path_green=path_green, check_finished=False, cal_spec=False
)
- An example for reading from a Green's function library created by qssp2020
from pygrnwang.read_qssp2020 import seek_qssp2020
if __name__ == "__main__":
seismograms, tpts_table, first_p, first_s, grn_dep, grn_receiver, green_dist = (
seek_qssp2020(
path_green="/e/grns_test/test_qssp",
event_depth_km=10,
receiver_depth_km=0,
az_deg=60,
dist_km=5000,
focal_mechanism=[30, 40, 50],
srate=1,
before_p=20,
pad_zeros=False,
shift=False,
rotate=True,
only_seismograms=False,
output_type='disp',
model_name=r"path\ak135fc.nd",
)
)
import matplotlib.pyplot as plt
fig, axs = plt.subplots(nrows=3, ncols=1)
axs[0].plot(seismograms[0])
axs[1].plot(seismograms[1])
axs[2].plot(seismograms[2])
plt.show()
Reference
Wang, R. (1999). A simple orthonormalization method for stable and efficient computation of Green’s functions. Bulletin of the Seismological Society of America , 89 (3), 733–741. https://doi.org/10.1785/BSSA0890030733
Wang, R. (2003). Computation of deformation induced by earthquakes in a multi-layered elastic crust—FORTRAN programs EDGRN/EDCMP. Computers & Geosciences, 29(2), 195–207. https://doi.org/10.1016/S0098-3004(02)00111-5
Wang, R., & Wang, H. (2007). A fast converging and anti-aliasing algorithm for green’s functions in terms of spherical or cylindrical harmonics. Geophysical Journal International, 170(1), 239–248. https://doi.org/10.1111/j.1365-246X.2007.03385.x
Wang, R., Heimann, S., Zhang, Y., Wang, H., & Dahm, T. (2017). Complete synthetic seismograms based on a spherical self-gravitating earth model with an atmosphere–ocean–mantle–core structure. Geophysical Journal International, 210(3), 1739–1764. https://doi.org/10.1093/gji/ggx259
Zhou, J., Wang, R., & Zhang, Y. (2026). DynCFS: a program for modeling dynamic coulomb failure stress changes in layered elastic media. Geophysical Journal International, ggaf534. https://doi.org/10.1093/gji/ggaf534
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pygrnwang-2.0.0.tar.gz.
File metadata
- Download URL: pygrnwang-2.0.0.tar.gz
- Upload date:
- Size: 282.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d740f5f9d16a41849d0fcf96b6bc465dd75893370af7fe9a14286186f5f4fb7a
|
|
| MD5 |
61a413ad1edd8cf6e2075c790c3073a0
|
|
| BLAKE2b-256 |
931aebc71724ff229ac8fa7f340fe4fedb2eb9022c94ce12a6499f25d9bf86a8
|
File details
Details for the file pygrnwang-2.0.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pygrnwang-2.0.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2139b825c26e71ed7d0b5d2b9baeda5412940014a58de70b8dede721570e63d0
|
|
| MD5 |
97e02224918095d38968f1829cb03f56
|
|
| BLAKE2b-256 |
81ddfc36e5fccf2a4a569053252e56e07fd085c5622ee6d1ed41db40053bdd43
|
File details
Details for the file pygrnwang-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pygrnwang-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 10.0 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54a518c53b8ac0f807540c06f086315d79d12a5f2b665c28f61c0544fc357f07
|
|
| MD5 |
25b314adf6c2680cb1dd19411a689e3d
|
|
| BLAKE2b-256 |
de7cb51c6549ed4d4a0bb34bec40468a7bf4144af2ddeae3a0352970745e0d6f
|