Skip to content

jpvantassel/swprocess

Repository files navigation

swprocess - A Python Package for Surface Wave Processing

Joseph P. Vantassel, jpvantassel.com

DOI PyPI - License CircleCI Documentation Status PyPI - Python Version Codacy Badge codecov

Table of Contents

About swprocess

swprocess is a Python package for surface wave processing. swprocess was developed by Joseph P. Vantassel under the supervision of Professor Brady R. Cox at The University of Texas at Austin. swprocess continues to be developed and maintained by Joseph P. Vantassel and his research group at Virginia Tech.

If you use swprocess in your research or consulting, we ask you please cite the following:

Vantassel, J. P. (2021). jpvantassel/swprocess: latest (Concept). Zenodo. https://doi.org/10.5281/zenodo.4584128

Vantassel, J. P. & Cox, B. R. (2022). "SWprocess: a workflow for developing robust estimates of surface wave dispersion uncertainty". Journal of Seismology. https://doi.org/10.1007/s10950-021-10035-y

Note: For software, version specific citations should be preferred to general concept citations, such as that listed above. To generate a version specific citation for swprocess, please use the citation tool on the swprocess archive.

Why use swprocess

swprocess contains features not currently available in any other open-source software, including:

  • Multiple pre-processing workflows for active-source [i.e., Multichannel Analysis of Surface Waves (MASW)] measurements including:
    • time-domain muting,
    • frequency-domain stacking, and
    • time-domain stacking.
  • Multiple wavefield transformations for active-source (i.e., MASW) measurements including:
    • frequency-wavenumber (Nolet and Panza, 1976),
    • phase-shift (Park, 1998),
    • slant-stack (McMechan and Yedlin, 1981), and
    • frequency domain beamformer (Zywicki 1999).
  • Post-processing of active-source and passive-wavefield [i.e., microtremor array measurements (MAM)] data from swprocess and Geopsy, respectively.
  • Interactive trimming to remove low quality dispersion data.
  • Rigorous calculation of dispersion statistics to quantify epistemic and aleatory uncertainty in surface wave measurements.

Examples

Active-source processing

Interactive trimming

Calculation of dispersion statistics

Getting Started

Installing or Upgrading swprocess

  1. If you do not have Python 3.8 or later installed, you will need to do so. A detailed set of instructions can be found here.

  2. If you have not installed swprocess previously use pip install swprocess. If you are not familiar with pip, a useful tutorial can be found here. If you have an earlier version and would like to upgrade to the latest version of swprocess use pip install swprocess --upgrade.

  3. Confirm that swprocess has installed/updated successfully by examining the last few lines of the text displayed in the console.

Using swprocess

  1. Download the contents of the examples directory to any location of your choice.

  2. Start by processing the provided active-source data using the Jupyter notebook (masw.ipynb). If you have not installed Jupyter, detailed instructions can be found here.

  3. Post-process the provided passive-wavefield data using the Jupyter notebook (mam_fk.ipynb).

  4. Perform interactive trimming and calculate dispersion statistics for the example data using the Jupyter notebook (stats.ipynb). Compare your results to those shown in the figure above.

  5. Enjoy!