Package: gmsp 0.4.6

Alejandro Verri Kozlowski

gmsp: Ground Motion Signal Processing

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) response spectra (pseudo-spectral acceleration, velocity, and displacement) 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 assembles a master record table.

Authors:Alejandro Verri Kozlowski [aut, cre, cph]

gmsp_0.4.6.tar.gz
gmsp_0.4.6.tar.gz(r-4.7-any)gmsp_0.4.6.tar.gz(r-4.6-any)
gmsp_0.4.6.tgz(r-4.6-emscripten)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
gmsp/json (API)

# Install 'gmsp' in R:
install.packages('gmsp', repos = c('https://cran.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/averrik/gmsp/issues

Pkgdown/docs site:https://averrik.github.io

On CRAN:

Conda:

3.48 score 2 scripts 40 exports 40 dependencies

Last updated from:4006d4e849. Checks:4 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-x86_64OK148
source / vignettesOK194
linux-release-x86_64OK154
wasm-releaseOK128

Exports:alignComponentsarchiveRawOwnerAT2TSauditDistancesauditParsersauditSitebuildMasterbuildRawFileTablebuildRawIntensityTablebuildRawRecordTableDT2TSextractRecordgetIntensitygetRawIntensitiesIML2IMWmapComponentsnormalizeTSparseRecordPSL2PSWPSW2PSLreadACreadATreadAT2readDTreadISEEreadTRreadTSreadTwoColreadV2readV2AreadVTrotateComponentsselectRecordsTS2IMFTSL2IMTSL2PSTSL2TSWTSW2TSLVT2TSwriteSelection

Dependencies:askpassclidata.tabledigestdotCall64EMDexpmfieldsgluehhtjsonlitelatticelifecyclelocfitmagrittrmapsMASSMatrixopensslpbapplyplotrixpracmapurrrrasterImageRColorBrewerRcppRcppArmadilloRhpcBLASctlrlangseewavesignalspamspectralstringistringrsystuneRvctrsviridisLiteVMDecomp

Database / indexing layer
Expected file layout | Provider formats supported | Extraction pipeline | Indexing tables | Master record catalog | Composing with the processing core | Audit helpers | Maintenance | Notes

Last update: 2026-06-18
Started: 2026-06-18

Elastic SDOF response spectra: TSL2PS
Input and output | Input | Output | SDOF model | Discretisation via matrix exponential | How PSA / PSV / SD are built | D50 and D100 horizontal spectra | Notes (limitations and corner cases) | References

Last update: 2026-06-18
Started: 2026-06-18

Getting started with gmsp
Synthetic input | Run AT2TS | Intensity measures | Response spectrum | IMF decomposition | Where to go next

Last update: 2026-06-18
Started: 2026-06-18

IMF decomposition: TS2IMF (EMD / EEMD / VMD)
What is an IMF? | Input and grouping | Available engines | VMD (method = "vmd", default) | EMD (method = "emd") | EEMD (method = "eemd") | Output | Per-IMF metrics | Reconstruction filters | Composing with AT2TS / VT2TS / DT2TS | References

Last update: 2026-06-18
Started: 2026-06-18

Intensity measures: TSL2IM / getIntensity
Expected input | Units | Internal unit conventions | Implemented measures | Long and wide output | Acceleration (ID = "AT") | Velocity (ID = "VT") | Displacement (ID = "DT") | What it does not compute | References

Last update: 2026-06-18
Started: 2026-06-18

Signal processing: AT2TS / VT2TS / DT2TS
Data formats | Input (wide) | Outputs | Time regularisation | Internal STFT Strategy Selection | STFT audit: auditSTFT() | STFT / OLA filtering: .ffilter() | Integration: .integrate() | Differentiation: .derivate() | Anti-alias resampling: .resample() | Edge tapering: .taperA() | Notes (parameter audit) | References

Last update: 2026-06-18
Started: 2026-06-18

Readme and manuals

Help Manual

Help pageTopics
Equalize NP across components of a parsed record.alignComponents
Compress raw.owner/ to 'raw.owner.tar.gz' and delete the directory.archiveRawOwner
Convert acceleration time series into AT/VT/DT bundlesAT2TS
Audit distances in the master table - sanity v1.auditDistances
Audit parsers: dry-run 'parseRecord' on every record of an owner.auditParsers
Audit site / station information in the master table - sanity v1.auditSite
Build the master record table.buildMaster
Build the per-owner RawFileTable CSV (provider file inventory, post-archive safe).buildRawFileTable
Build the canonical RawIntensityTable for one or more owners (WIDE).buildRawIntensityTable
Build the canonical RawRecordTable for one or more owners.buildRawRecordTable
Convert displacement time series into AT/VT/DT bundlesDT2TS
Extract one record to raw/<KIND>.<RecordID>.csv + <KIND>.<RecordID>.json.extractRecord
Compute intensity measures from a long time-series table.getIntensity
Compute KIND-derivable intensities for one raw record.getRawIntensities
Convert long intensity tables to wide form.IML2IMW
Map provider components to canonical processed components.mapComponents
Normalize a long time-series table to unit amplitude per channel.normalizeTS
Parse one record (event x station x owner) into a LONG time-series table.parseRecord
Convert long response spectra to wide form.PSL2PSW
Convert wide response spectra to long form.PSW2PSL
Read a 3D-COL acceleration record (ACA, ACB, LIS).readAC
Read acceleration records via 'readTS()' with 'kind = "AT"'.readAT
Read a PEER NGA-West2 AT2 acceleration record.readAT2
Read displacement records via 'readTS()' with 'kind = "DT"'.readDT
Read a Micromate ISEE blasting record.readISEE
Read a TRA/TRZ/TRB/TRC acceleration record (GSC and SGC families).readTR
Read parsed time-series records into the shape 'AT2TS()' / 'VT2TS()' / 'DT2TS()' expect.readTS
Read a 2-column whitespace-delimited ASCII record.readTwoCol
Read a CESMD V2 acceleration record (multi-channel V2 or single-channel V2c).readV2
Read a NWZ V2A acceleration record (3D-BLOCK, 1 file = 3 components).readV2A
Read velocity records via 'readTS()' with 'kind = "VT"'.readVT
Rotate horizontal components to principal axes.rotateComponents
Select records from the master, keyed at the record level.selectRecords
Decompose one time series into intrinsic mode functions.TS2IMF
Compute intensity measures from a canonical long time-series table.TSL2IM
Convert canonical long time series to response spectra.TSL2PS
Convert canonical long time-series tables to wide form.TSL2TSW
Convert wide time-series tables to canonical long form.TSW2TSL
Convert velocity time series into AT/VT/DT bundlesVT2TS
Write a selection (subset of master) to selection/<name>.csv / '.json'.writeSelection