Skip to main content

Python interface for SpecFWAT (Full Waveform Adjoint Tomography)

Project description

PyFWAT

PyPI version Python License: GPL v3 Downloads GitHub stars

Python interface for SpecFWAT (Full Waveform Adjoint Tomography)

Overview

PyFWAT is a comprehensive Python toolkit designed for full waveform inversion (FWI) and adjoint tomography workflows. It provides a complete set of tools for preprocessing seismic data, running inversions, post-processing results, and visualizing various aspects of the tomographic models and data fits.

Features

  • Preprocessing Tools: Data preparation and model setup utilities
  • Plotting Utilities: Comprehensive visualization tools for velocity models, kernels, misfits, and data fits
  • Post-processing: Model updates, kernel operations, and optimization routines
  • Data I/O: Support for various seismic data formats and model representations
  • Interactive Picking: GUI-based phase picking interface for teleseismic data

Installation

Install from PyPI (recommended)

pip install pyfwat

Install from source

git clone https://github.com/xumi1993/pyfwat.git
cd pyfwat
pip install -e .

Requirements

  • Python >= 3.9
  • ObsPy >= 1.2.0
  • NumPy >= 1.19.0
  • SciPy >= 1.1.0
  • Matplotlib >= 3.2.0
  • pandas >= 1.0.0
  • PyGMT
  • h5py
  • pyproj
  • ruamel.yaml
  • PyQt5 (optional, for GUI tools)

Command-line Tools

PyFWAT provides numerous command-line utilities for various tasks:

Visualization Tools

  • fwat_plot_vel_sec - Plot velocity cross-sections
  • fwat_plot_dv_sec - Plot velocity perturbation cross-sections
  • fwat_plot_kernel_sec - Plot sensitivity kernel cross-sections
  • fwat_plot_residual - Visualize data residuals
  • fwat_plot_misfit - Plot misfit evolution
  • fwat_plot_misfit_multifreq - Plot misfit for multiple frequencies
  • fwat_plot_misfit_multistage - Plot misfit across multiple inversion stages
  • fwat_plot_misfit_linesearch - Visualize line search optimization
  • fwat_plot_stations - Display station distributions
  • fwat_plot_rf_evts - Plot receiver function events
  • fwat_plot_rf_fit - Show receiver function data fits
  • fwat_plot_waveform_fit - Visualize ambient noise / local earthquake data fits
  • fwat_plot_tele_fit - Display teleseismic waveform fits

Preprocessing Tools

  • fwat_gen_virt_fkevts - Generate virtual FK events
  • fwat_gen_gauss_stf - Generate Gaussian source time functions
  • fwat_ch_fkmodel - Modify FK models
  • fwat_cal_fk_times - Calculate FK travel times
  • fwat_checkerboard - Create checkerboard resolution tests
  • fwat_createmodel - Generate initial crustal models
  • fwat_setpar - Setup parameters of FWAT and Specfem3D

Post-processing Tools

  • fwat_optimize_ls - Perform line search optimization
  • fwat_clean - Clean up working directories
  • fwat_joint_kernel - Combine kernels from different data types
  • fwat_model_update - Update velocity models

Interactive Tools

  • fwat_pick_tele - Interactive GUI for teleseismic phase picking
  • fwat_pick_waveform - Interactive GUI for ambient noise / local earthquake waveform picking

Module Structure

pyfwat/
├── io/           # Input/output utilities
├── picker/       # Phase picking tools
├── plot/         # Visualization modules
├── postproc/     # Post-processing routines
├── preproc/      # Preprocessing utilities
├── utils/        # General utility functions
├── cpt/          # Color palette files
└── data/         # Data resources (e.g., CRUST1.0 model)

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

License

This project is licensed under the GNU General Public License v3.0 (GPLv3).

Author

Mijian Xu (mijian.xu@utoronto.ca)

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

pyfwat-0.2.3.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

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

pyfwat-0.2.3-py3-none-any.whl (2.4 MB view details)

Uploaded Python 3

File details

Details for the file pyfwat-0.2.3.tar.gz.

File metadata

  • Download URL: pyfwat-0.2.3.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfwat-0.2.3.tar.gz
Algorithm Hash digest
SHA256 1c7377f656627dbf34236ed548f6d81405129ebcf5b63f33fc2ee84620e38918
MD5 77b0e65d80b6b019f9366b616366db4f
BLAKE2b-256 e518fe5f612129017f1e0b7cb1e15279b2cc0ab2fabfa087120570d992fa4392

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfwat-0.2.3.tar.gz:

Publisher: publish-to-pypi.yml on xumi1993/pyfwat

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

File details

Details for the file pyfwat-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: pyfwat-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfwat-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f34ca81583f4f3e5a644f08c58283a47c9a7f8c1248a5eb061e2965cb13dc643
MD5 96540051af3fc278d65b9937a57af85d
BLAKE2b-256 2551e32814b97549e3fba91c432bf467972ccf214794f4a9e3c7ca78894c7ad9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfwat-0.2.3-py3-none-any.whl:

Publisher: publish-to-pypi.yml on xumi1993/pyfwat

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