ground-motion-lib
Overview
ground-motion-lib is a Rust library for seismic ground motion prediction
using state-of-the-art Ground Motion Prediction Equations (GMPEs), including
the Morikawa & Fujiwara (2013) models. It supports efficient, vectorized
computations over site grids, configurable earthquake scenarios, and provides
tools for loading site data, performing parallelized calculations, and
exporting results.
Designed for researchers, engineers, and seismologists, this library enables robust and scalable seismic hazard modeling workflows in Rust.
Features
- Comprehensive GMPE models: Morikawa & Fujiwara (2013) with crustal, interplate, and intraplate tectonic settings.
- Vectorized & parallelized prediction: Leverages Rayon for efficient computation across large site datasets.
- Flexible site input loading: CSV reading for VS30 and site-specific parameters.
- Statistical summary tools: Compute mean, median, standard deviation, min, and max of ground motion outputs.
- Configurable models: Supports loading GMPE configurations for flexible modeling.
- Robust CSV output: Export computed ground motion points for visualization or downstream use.
- Modular design: Clear separation of data models, computation, IO, and config handling.
Installation
Add this to your Cargo.toml:
[]
= "0.1"
Quick Start Example
use ;
use MF2013;
use get_mf2013_lib_configs;
use calc_gmpe_vec;
Documentation
Full API documentation is available on docs.rs.
Contributing
Contributions, bug reports, and feature requests are welcome! Please open an issue or submit a pull request.
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Citation
If you use this library in academic work, please cite:
@article{konovalov2022new,
title={New Tools for Rapid Assessment of Felt Reports and a Case Study on Sakhalin Island},
author={Konovalov, AV and Stepnov, AA and Bogdanov, ES and Dmitrienko, R Yu and Orlin, ID and Sychev, AS and Gavrilov, AV and Manaychev, KA and Tsoy, AT and Stepnova, Yu A},
journal={Seismic Instruments},
volume={58},
number={6},
pages={676--693},
year={2022},
publisher={Springer}
}