Skip to main content

Pythonic Lithospheric Imaging using Earthquake Records

Project description

PyGLImER logo

Build Status Documentation Status License: EUPL v1.2 codecov


A workflow to create a global database for Ps and Sp receiver function imaging of crustal and upper mantle discontinuties

PyGLImER automates receiver function (RF) processing from download of raw waveform data to common conversion point (CCP) imaging with a minimum amount of user interference.

The implementation includes:

  • Functions to download raw waveform data from FDSN providers
  • Functions to feed in local waveform data
  • An adaptable preprocessing scheme, including various rotational algorithms
  • A variety of deconvolution algorithms (user-defined algorithms possible)
  • An implementation of the iasp91 and GyPSum velocity models for depth migration (user-defined models are accepted)
  • A new, particularly efficient Common Conversion Point Stacking algorithm
  • A variety of plotting tools to explore datasets and to create prublication ready figures
  • Efficient and fast processing and data management, support multi-processing, MPI, and HDF5

As developers, we are particularly concerned to create an automated, adaptable, efficient, and, yet, easy-to-use toolkit.

The project is largely based on the ObsPy project and can be seen as a more powerful and user-friendly successor of the GLImER project.

Installation of this package

Installation from PyPi

PyGLImER is now deployed on PyPi and can simply be installed using:

pip install pyglimer

Installation from source code

To obtain the latest updates, you can install PyGLImER from the source code, available on GitHub.

⚠️ Developers should download the dev branch

# Download via wget or web-browser
wget https://github.com/PyGLImER/PyGLImER/archive/refs/heads/master.zip

# For developers
wget https://github.com/PyGLImER/PyGLImER/archive/refs/heads/dev.zip

# unzip the package
unzip master.zip  # or dev.zip, depending on branch

# Change directory to the same directory that this repo is in (i.e., same directory as setup.py)
cd PyGLImER-master  # That's the standard name the folder should have

# Create the conda environment and install dependencies
conda env create -f environment.yml

# Activate the conda environment
conda activate pyglimer

# Install your package
pip install -e .

Optionally, you can test the package by running

pytest -p no:logging tests

Getting started

Access PyGLImER's documentation here.

PyGLImER comes with a few tutorials (Jupyter notebooks). You can find those in the examples/ directory.

What it looks like

With PyGLImER, we facilitate processing extremely large amounts of teleseismic data. This enables us to create large scale CCP sections as shown for P-to-S and S-to-P receiver function data in the plot below:

Map With CCP sections
FIG: Seismic broadband stations with available receiver functions are plotted as downward-pointing red triangles. The locations of the shown cross-sections are demarked as bold black lines. Cross-sections A, B, and D are created from S receiver functions stacked by common conversion point, whereas cross-section C shows a slice through a P receiver function common conversion point stack. Data begin to fade to grey if the respective gridpoint is hit by fewer than 25 rays. Note that the vertical exaggeration varies from panel to panel.

PyGLImER also comes with a toolset to create publication ready figures:

Combined Stack and Section
FIG: Single station stack and receiver functions sorted by epicentral distance from P receiver function for station GE.DAG.
Distribution of back-azimuth and rayparameters
FIG: Distribution of back-azimuth and rayparameter for the P receiver functions from GE.DAG as shown above.

Reporting Bugs / Contact the developers

This version is an early release. If you encounter any issues or unexpected behaviour, please open an issue here on GitHub.

Questions?

If you have any questions that do not require any changes in the source code, please use the discussions feature

Contributing

Thank you for contributing to PyGLImER! Have a look at our guidelines for contributors

Citing PyGLImER

If you use PyGLImER to produce content for your publication, please consider citing us. For the time being, please cite our AGU abstract.

Latest

We are happy to announced that PyGLImER has been awarded an ORFEUS software development grant and are looking forward to further develop this project.

Project details


Download files

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

Source Distribution

pyglimer-0.4.6.tar.gz (4.5 MB view details)

Uploaded Source

Built Distribution

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

pyglimer-0.4.6-py3-none-any.whl (4.6 MB view details)

Uploaded Python 3

File details

Details for the file pyglimer-0.4.6.tar.gz.

File metadata

  • Download URL: pyglimer-0.4.6.tar.gz
  • Upload date:
  • Size: 4.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pyglimer-0.4.6.tar.gz
Algorithm Hash digest
SHA256 8bc18ce01d1ebb26baf388c178aaf16df11039c7427dd3a5e9d0784fb52cfec0
MD5 b62b8bba901e5c2ff5fee47892aa2f5a
BLAKE2b-256 67e63ada666188da9f0c2814b870830da383ba8f85d3e226483f50413d42b689

See more details on using hashes here.

File details

Details for the file pyglimer-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: pyglimer-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pyglimer-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b18ef102b4049bcefe0b1f959f8dcfcc54e72acda5953073e062c8efc4dae4e6
MD5 364f3fa3bea43ed35485ece6f07e8c76
BLAKE2b-256 176ad1a1a28302ed7cf83869620a4b57de0a4e0a25e5231ac9795a52b3acad0a

See more details on using hashes here.

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