Ground Motion Signal Processing
Overview
Implements short-time Fourier transform (STFT) based processing of strong-motion time series: time-grid regularisation, STFT-window and anti-alias-resampling strategy selection, edge tapering, and frequency-domain integration and differentiation, mapping a single input (acceleration, velocity, or displacement) to a consistent triplet under a chosen analysis bandwidth. Also provides intrinsic-mode-function decomposition via empirical mode decomposition (EMD), ensemble EMD (EEMD), and variational mode decomposition (VMD) with optional band-rule filtering; elastic single-degree-of-freedom (SDOF) domain-normalised acceleration, velocity, and displacement response spectra from their corresponding time-series domains by exact state-space integration; intensity measures including peak, root-mean-square (RMS), Arias intensity, significant-duration, cumulative absolute velocity, mean period, and the derived indices earthquake destructiveness potential (EPI) and power-of-input (PDI); and D50 and D100 horizontal response spectra. Methods: Huang et al. (1998) doi:10.1098/rspa.1998.0193, Wu and Huang (2009) doi:10.1142/S1793536909000047, Dragomiretskiy and Zosso (2014) doi:10.1109/TSP.2013.2288675, Boore (2010) doi:10.1785/0120090179. An optional indexing layer parses provider files in formats including 'PEER' 'NGA-West2' 'AT2', 'CESMD' 'V2'/'V2c', 'NWZ' 'V2A', Geological Survey of Canada 'TR', 'IGP'/'UCR' 'AC' variants, and generic two-column ASCII text, normalises components, writes per-record CSV (comma-separated values) and JSON (JavaScript Object Notation) pairs, and computes per-record intensity tables.
Corrected domain normalisation in TSL2PS()
TSL2PS()now applies the normalised SDOF operatoromega_n^2 H_dindependently to acceleration (AT), velocity (VT), and displacement (DT).PSA,PSV, andSDtherefore retain acceleration, velocity, and displacement units, respectively.- PSA is bit-for-bit unchanged. The positive-period PSV and SD ordinates are corrected incompatibly;
Tn = 0PGA/PGV/PGD anchors, table schemas, metadata, D50/D100, and scalar/vector damping interfaces are unchanged. - The spectral-matching selection, modal loss, and suite scaling continue to consume PSA only and therefore produce the same decisions and factors. Existing full
PSW.csvproducts must be regenerated before republishing PSV or SD values. No legacy mode or fallback is provided.
Show all changes in 0.7.1Hide the rest of the changes in 0.7.1
Spectral-match algorithm graduated to the exported API
- New
fitModalFactor(): per-record modal shaping (released modal amplitudes fitted against the target band, energy restoration after the modal objective) — the algorithm behindshape.modalFactorin the match JSON contract. - New
fitRecordFactor(): suite-level record scaling (bounded QP solve, one scale coefficient per record, global band-conditioned objective) — the algorithm behindshape.recordFactor. - New
matchCompatibility(): per-record and suite compatibility diagnostics of the scaled spectra against the target band. scripts/match/setup.Rnow delegates the algorithm core to these functions and keeps only orchestration and product materialization. Pipeline products are byte-identical to 0.6.0 (Tier-2 identity harness: per-record, suite, and full-pipeline stages).- No JSON contract change;
stage.csvkeeps its frozen product labels.
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK8 OK2026-06-19
Documentation
- Help pages
- 47 (2 internal)includes a package overview page
- Examples that run
- 91%41 run in a plain check · 4 never run
- Exported functions with examples
- 100%
- Documented parameters
- 98%
- Return-value docs
- 100%
- Help pages citing references
- 0%
- Batch runners for file-based workflows HTML
- Database / indexing layer HTML
- Elastic SDOF response spectra: TSL2PS HTML
- Getting started with gmsp HTML
- IMF decomposition: TS2IMF (EMD / EEMD / VMD) HTML
- Intensity measures: TSL2IM / getIntensity HTML
- Signal processing: AT2TS / VT2TS / DT2TS HTML
- Spectral matching workflow: selection, shaping, and suite scaling HTML
Downloads
Repository
Repository github.com/averrik/gmsp is linked, but repository-practices checks have not run for it yet.
Dependencies
Installing gmsp adds 37 packages (26 with compiled code, 44 MB of source tarballs). Heaviest: stringi 11 MB, data.table 5.7 MB, fields 3.9 MB.
Code & Tests
People & History
Pick two releases to compare their code metrics.
- 0.7.1Latest2026-06-18 · current release · diff ↗ ·
removed 2 exports
buildMaster, rotateComponentsadded 16 exports
TSL2AI, TSL2CAV, TSL2CAV5, fitModalFactor, fitRecordFactor, matchCompatibility, runExport, runGMSP, runIMF, runMatch, runPSA, runPlot, runProcess, runSelect, runStage0, runTrim - 0.4.62026-06-18
- RR 4.6.0 released · 2026-04-24
Package metadata
- First published
- 2026-06-18
- Total releases
- 2 / 1 yrs
- License
- MIT + file LICENSE OSI
- Minimum R
- ≥ 4.1.0
- Download size
- 369 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("gmsp")The package provides a citation file that builds its entry when R runs it. Run citation() to see it.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-22, which the citation names so these numbers can be found later. More on citing and the projects behind them.