Compute intensity measures from a canonical long time-series table.
TSL2IM.RdGiven 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 leastOCID,ID,t,scolumns plus optional record-identifier metadata columns.- units.source
character. Source units of the
scolumn ("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 andOCID, 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 -