Skip to contents

Given a long time-series table with columns for the record identifier, OCID, ID, t, and s, converts amplitudes to units.target and computes standard intensity measures grouped by record x OCID x ID. Valid ID content is either AT only, or a complete time-series set with AT, VT, and DT.

Usage

TSL2IM(.x, units.source, units.target = "mm", output = c("IML", "IMW"))

Arguments

.x

data.table. Long-format TSL with at least OCID, ID, t, s columns plus optional record-identifier metadata columns.

units.source

character. Source units of the s column ("mm", "cm", "m", "gal", "g").

units.target

character. Target units for the returned intensities. Default "mm".

output

character. "IML" returns long intensity rows; "IMW" returns one row per metadata and OCID, with intensity measures as columns.

Value

A data.table. output = "IML" returns long rows with columns <metadata cols>, OCID, ID, IM, value, units; output = "IMW" returns wide intensity columns.

Examples

t <- seq(0, 1, by = 0.01)
tsl <- data.table::rbindlist(list(
  data.table::data.table(t = t, s = sin(2 * pi * t),
                         ID = "AT", OCID = "H1"),
  data.table::data.table(t = t, s = cos(2 * pi * t),
                         ID = "VT", OCID = "H1"),
  data.table::data.table(t = t, s = sin(pi * t),
                         ID = "DT", OCID = "H1")
))
im <- TSL2IM(tsl, units.source = "mm")
head(im)
#>      OCID     ID     IM        value  units
#>    <char> <char> <char>        <num> <char>
#> 1:     H1     AT     AI 8.008832e-05  mm /s
#> 2:     H1     AT    AIu 4.004416e-05  mm /s
#> 3:     H1     AT    AId 4.004416e-05  mm /s
#> 4:     H1     AT    PGA 1.000000e+00 mm /s2
#> 5:     H1     AT   ARMS 7.035975e-01 mm /s2
#> 6:     H1     AT    AZC 1.000000e+00      -